PCB topology routing
Go to file
Mikolaj Wielgus 684d0be641 geometry,primitive: move more code and narrow typing further
We replace all instances of `NodeIndex<usize>` in public interfaces of
`Geometry` except for `.first_rail()`, for which we make a dirty
exception.

We also improve terminology a bit:

- "joint" is renamed to "connection",
- "end" is renamed to "joint",
- "leg" is renamed to "limb".
2024-01-29 01:34:06 +00:00
.githooks githooks: add pre-commit hook with dry `cargo fmt` 2023-12-25 01:58:58 +01:00
assets readme: add NLnet and NGI0 banners 2024-01-12 11:52:57 +00:00
src geometry,primitive: move more code and narrow typing further 2024-01-29 01:34:06 +00:00
vendor/contracts contracts: Put contract-bound function body in a `try` block if needed 2023-10-29 15:24:41 +00:00
.gitignore Initial commit 2023-07-12 01:01:25 +02:00
Cargo.toml deps,graph: split out to new geometry and connectivity graph modules 2024-01-13 20:36:25 +00:00
LICENSE Initial commit 2023-07-12 01:01:25 +02:00
README.md readme: add NLnet and NGI0 banners 2024-01-12 11:52:57 +00:00

README.md

Topola

Work-in-progress interactive topological router in Rust.

The project is funded by the NLnet Foundation through the NGI0 Entrust fund.

NGI0 Entrust banner NLnet Foundation banner

Chat

Join the official Matrix chatroom or IRC channel to talk with the developers. Both chatrooms are bridged, so it does not matter which one you join.

Contributing

Official repository on Codeberg

Mirror repository on GitHub

Animation. There's a rubber band-like trace following cursor, navigating a very simple maze. The maze and the trace are red, the background is solid black but also very slightly white and dark blue

Animation showing a trace, behaving like a rubber band, routed around obstacles step by step. Attempted alternative paths and a guiding mesh are shown.

Animation. There are two upward barriers, with some space between tem, around which four rubberband traces, one over another, are wrapped. Enter mouse cursor. The cursor begins to stretch the left barrier to the right. As it's stretched, the traces cease to be wrapped around the right barrier, becoming "free". The traces and the barrier are two-dimensional and all solid red. The background is black but also very slightly white and blue.

This animation shows four traces wrapped around a vertical barrier like rubberbands. Computercursor appears and starts dragging the barrier's top end left and right, up and down, elasticallystretching the barrier and having the traces continue being wrapped on the barrier regardless ofits position. The traces and the barrier are all solid red. The background is black but also veryslightly white and blue.

Animation. There is an upward barrier in the middle and dots on the left and right of it, four each. A trace is drawn from the leftmost dot on the left to the rightmost dot on the right. Then a trace is drawn from the second leftmost dot on the left to the second rightmost dot on the right, displacing the previous trace so that there's space for the new one. Same happens for the remaining dots. The dots, traces and barrier are all solid red. The background is black but also very slightly white and blue.

Animation showing three red-colored traces pass around a barrier. Trace bends are not aligned to a grid unlike most PCB layouts these days (this is called "topological routing"). The traces and the barrier are all solid red. The background is black but also veryslightly white and blue.

Animation showing a trace zigzagging around two barriers. The trace and the barriers are all solid red. The background is black but also very slightly white and blue.