PCB topology routing
Go to file
Ellen Emilia Anna Zscheile f2969decd0 feat/debug: make core::fmt::Debug output easier to read 2025-02-02 22:01:25 +01:00
.woodpecker ci: remove `-j4` from `cargo binstall` since it doesn't understand it 2025-01-09 23:17:17 +01:00
LICENSES chore(licensing): license assets, translations, tests, flake.lock via `REUSE.toml` 2024-12-30 00:18:54 +01:00
assets chore: fix some mistakes from latest changes to assets and readme 2025-01-09 02:26:35 +01:00
crates feat/debug: make core::fmt::Debug output easier to read 2025-02-02 22:01:25 +01:00
examples chore(licensing): add REUSE license headers to `**.{rs,md,toml}` files 2024-12-29 22:47:00 +01:00
locales Translated using Weblate (Turkish) 2025-02-01 00:21:02 +00:00
src feat/debug: make core::fmt::Debug output easier to read 2025-02-02 22:01:25 +01:00
tests chore(tests): update reference number of navvertices to make CI pass 2025-01-09 03:59:57 +01:00
.gitignore chore(licensing): add REUSE headers to hidden files, `flake.nix`, `index.html` 2024-12-30 00:18:38 +01:00
.pre-commit-config.yaml chore(pre-commit): add `reuse lint` check to pre-commit for REUSE compliance 2024-12-30 00:55:34 +01:00
.rustfmt.toml chore(licensing): add REUSE headers to hidden files, `flake.nix`, `index.html` 2024-12-30 00:18:38 +01:00
CONTRIBUTING.md chore(licensing): add REUSE license headers to `**.{rs,md,toml}` files 2024-12-29 22:47:00 +01:00
Cargo.toml feat(graph): make indices serializable 2025-01-03 00:49:00 +01:00
INSTALL.md docs(install): copyedit a very minor nit 2025-01-01 21:38:50 +01:00
README.md chore: fix some mistakes from latest changes to assets and readme 2025-01-09 02:26:35 +01:00
REUSE.toml chore(licensing): license assets, translations, tests, flake.lock via `REUSE.toml` 2024-12-30 00:18:54 +01:00
flake.lock add nix flake 2024-10-07 20:53:10 +00:00
flake.nix chore(licensing): add REUSE headers to hidden files, `flake.nix`, `index.html` 2024-12-30 00:18:38 +01:00
index.html chore(assets): store all project's assets in main repository 2025-01-09 00:57:18 +01:00

README.md

Topola

Topola is a work-in-progress interactive topological router in Rust.

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

NLnet Foundation banner NGI0 Entrust 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.

Installation

To install Topola, follow our Installation guide.

Contributing

Anyone can contribute to Topola, including you. If you want to help us out, please follow our Contribution guide.

The easiest way to contribute is by reporting issues on our issue tracker. If you know any language other than English, you can help by translating Topola on Weblate.

Our official repository is on Codeberg. We also have a mirror repository on GitHub.

Licence

Topola is licensed under the MIT licence. Files present in the assets/ directory are dual-licensed as under MIT or Creative Commons Attribution 4.0 International licence.

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

Animation showing a trace, behaving like a rubber band, routed aroundobstacles step by step. Attempted alternative paths and a guiding meshare 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 theright. As it's stretched, the traces cease to be wrapped around theright barrier, becoming "free". The traces and the barrier aretwo-dimensional and all solid red. The background is black but also veryslightly white and blue.

This animation shows four traces wrapped around a vertical barrierlike rubberbands. Computer cursor appears and starts dragging thebarrier's top end left and right, up and down, elastically stretchingthe barrier and having the traces continue being wrapped on the barrierregardless of its position. The traces and the barrier are all solidred. The background is black but also very slightly white andblue.

Animation. There is an upward barrier in the middle and dots on theleft and right of it, four each. A trace is drawn from the leftmost doton the left to the rightmost dot on the right. Then a trace is drawnfrom the second leftmost dot on the left to the second rightmost dot onthe right, displacing the previous trace so that there's space for thenew one. Same happens for the remaining dots. The dots, traces andbarrier are all solid red. The background is black but also veryslightly 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 areall solid red. The background is black but also very slightly white andblue.

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