PCB topology routing
Go to file
Alain Emilia Anna Zscheile 5e54453433 refactor(specctra-core/read): accept multiple possible names anywhere
Previously, some methods handled items/lists with multiple allowed names,
and some only allowed a single name. As the overhead of always handling
multiple names isn't that large, do that everywhere and make the overall
API more streamlined in the process.
2024-12-12 06:59:03 +00:00
.woodpecker build: put egui and cli into separate crates 2024-11-20 15:44:02 +01:00
assets egui: make the WASM port actually work 2024-03-02 16:09:01 +00:00
crates refactor(specctra-core/read): accept multiple possible names anywhere 2024-12-12 06:59:03 +00:00
examples feat(board,layout,drawing): implement edit recording 2024-11-13 00:00:56 +00:00
locales Translated using Weblate (Portuguese) 2024-11-13 00:01:00 +00:00
src chore: fix deprecation warnings about geo::EuclideanDistance 2024-12-12 06:54:37 +00:00
tests feat: improve Selection API (BREAKS HISTORY) 2024-12-08 16:20:05 +00:00
.gitignore chore(gitignore): ignore KiCad lockfiles and `fp-info-cache` 2024-12-04 23:49:45 +01:00
.pre-commit-config.yaml chore(pre-commit): comment out cargo clippy, until we resolve all warnings 2024-10-06 16:59:46 +02:00
.rustfmt.toml cargo: add .rustfmt.toml file to have the same autoformatting 2024-10-04 03:04:48 +02:00
CONTRIBUTING.md docs(contributing): add information about contributing by labeling 2024-12-10 05:09:11 +01:00
Cargo.toml refactor: various further refactorings (#128) 2024-12-11 14:13:21 +00:00
INSTALL.md Docs: fixed minor typo in installation guide 2024-12-03 16:08:27 +01:00
LICENSE license: fill out years and copyright holders 2024-02-19 16:43:20 +00:00
README.md readme,contributing: info about NLnet funding and some more 2024-08-27 00:28:28 +02:00
flake.lock add nix flake 2024-10-07 20:53:10 +00:00
flake.nix add nix flake 2024-10-07 20:53:10 +00:00
index.html build/trunk: fix WASM build 2024-11-22 17:24:03 +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.

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.