yapnr documentation

yapnr (“yet another place and route”) places components and routes copper for KiCad printed circuit boards. It uses a mechanical, Monte-Carlo-driven search:

  • hierarchical block synthesis: blocks become macros, with a library of trials per template;

  • power-first placement: power tiers, trunks and hot loops are derived from the design;

  • native KiCad routing and design-rule checks (DRC) in the loop, with KiCad’s own DRC as the judge;

  • electrical contracts (current, differential pairs, plane access) declared next to the design.

The engine grew inside the Splanc repository, where it laid out the Splanc Mini board. It is being migrated here in reviewable pull requests; until that is done, this repository holds the project scaffolding (build, CI, documentation) and the plan.

Status

Alpha. The engine’s committed history (PR1) and its newer, never committed state (PR2) are imported from Splanc at their original paths under hardware/ (see the history import manifest); the package restructuring follows. The command line currently offers yapnr --version and a yapnr doctor stub; the live viewer (PR4) runs with bazel run //:viewer. Progress is tracked in WORKLOG.md and in GitHub issues.

Start here

  • Container images: run yapnr with Docker and nothing else (KiCad included).

  • The live viewer: watch experiments in a browser; its configuration, optional services and the cost and security of the (off by default) Ask agent.

  • The atopile toolchain: build atopile projects offline, without Nix.

  • The part cache: where part data lives instead of the repository.

  • Releases and versioning: version numbers, image tags, what a release publishes.

  • Regression ladder: eight boards of rising complexity, up to a TLC555 + CD4017B LED chaser, with an animation of each board’s place and route.

  • Constraints and hierarchy: a line of LEDs, parts held on the board edge and a board built from reused blocks, each animated from the engine’s own record.

  • Architecture: the planned layout of the package, the test tiers and the pipeline.

  • Migration plan: how the engine moves out of Splanc, PR by PR.

  • Decisions: the owner’s decisions and the pinned tool versions.

  • History import manifest: what PR1 and PR2 imported from Splanc, and how it was rewritten and checked.

  • About the name: “yet another place and route”, and the circuit tree.

For contributors and agents:

License

yapnr is free software under the GNU Affero General Public License, version 3 or (at your option) any later version (AGPL-3.0-or-later). See LICENSE.