main
Download ZIP Propose a change
Name Last commit message Last updated
assets 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
bin Publish 1.1.0 · Colby Knox 4d ago
docs board-to-molecule 1.0.0: Rust source, six before/after examples (KiCad, Fusion, Altium), Adom 3D viewer readme · Colby Knox 4d ago
examples 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
gallery 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
rs 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
samples board-to-molecule 1.0.0: Rust source, six before/after examples (KiCad, Fusion, Altium), Adom 3D viewer readme · Colby Knox 4d ago
screenshots hero: Hero Studio generated · Colby Knox 4d ago
scripts 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
skills 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
tests 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
viewer 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
Cargo.lock 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
Cargo.toml 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
install.sh Publish 1.1.0 · Colby Knox 4d ago
package.json 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
page.json 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
readme.html 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
README.md 1.1.0: every molecule gets large machine pins on the 32 mm grid; gallery rebuilt; corrected notes on kicad-to-molecule · Colby Knox 4d ago
uninstall.sh Publish 1.1.0 · Colby Knox 4d ago

board-to-molecule

Turn any KiCad, Fusion/EAGLE, or Altium board into an Adom molecule: wings around the board and four corner machine pins (MP1-MP4), written back in the board's own format. Replaces kicad-to-molecule (the old command still works as a shim).

Source Reads Writes Pins
KiCad 7, 8, 9, 10 .kicad_pcb .molecule.kicad_pcb generated in the board's dialect; STEP embedded on KiCad 9+
Fusion / EAGLE 6+ .brd (XML) .molecule.brd MACH_PIN_*_SHORT from Adom_Library_Master
Altium .PcbDoc (OLE2) .molecule.PcbDoc pad record cloned from the board, streams patched in place

The original board never moves. Every component, track, via, and pour stays byte-for-byte; only the outer outline is replaced and the pins are added.

Use

board-to-molecule convert board.kicad_pcb        # or .brd / .PcbDoc
board-to-molecule plan board.brd                 # the EDA-neutral plan as JSON
board-to-molecule convert board.PcbDoc --vcut    # V-cut score lines along the original outline
board-to-molecule inspect board.PcbDoc           # reader summary + placement self-check
board-to-molecule showcase board.PcbDoc -o out/b # molecule, SVGs, before/after GLBs via step2glb
board-to-molecule serve out/                     # before/after viewer (Adom 3D viewer), port 8857
board-to-molecule install                        # install the skill

How it works

Like adom-lbr for parts, there is one EDA-neutral hub in the middle, rs/src/plan.rs: readers turn a board into a molecule plan (millimeters, Y up, MP1 front-left then counterclockwise), and writers patch the plan back into each format by byte span.

Every molecule gets large machine pins (5.2 mm pad, 3.45 mm drill, MACH_PIN_LRG_SHORT) with the pin-to-pin span on the 32 mm grid: each span rounds up to a whole number of 32 mm steps (at least one), and the board edge sits 3 mm outside each pin center. A 10 x 10 mm board becomes 38 x 38 mm; a 35 x 85 mm board becomes 70 x 102 mm.

rs/src/plan.rs       the hub: sizing rules, pins, plan JSON
rs/src/model.rs      preview board model (outline, copper, parts, embedded models)
rs/src/kicad.rs      KiCad reader + writer (dialects, embedded pin STEP)
rs/src/eagle.rs      Fusion/EAGLE reader + writer
rs/src/altium/       Altium reader + writer (OLE2 streams, records, embedded models)
rs/src/embed.rs      KiCad embedded files (zstd frame + checksum)
rs/src/tokicad.rs    any board -> preview .kicad_pcb for STEP export
rs/src/svg.rs        2D previews and the step2glb artwork overlay
rs/src/pipeline.rs   showcase: service-kicad STEP -> step2glb molecule mode
rs/src/serve.rs      the gallery viewer server
viewer/              the viewer pages (Adom 3D viewer from wiki.adom.inc, one per frame)
assets/pins/         machine-pin footprints, STEP models, and adom-lbr translations

Build and test

cargo build --release
cargo test --release
B2M_SAMPLES=<dir with .PcbDoc samples> cargo test --release --test altium_samples

Limits

  • Altium output is checked by two independent parsers and KiCad 10 accepts the pin pad record, but it has not yet been opened in Altium Designer itself. Open it and run DRC once.
  • Fusion/EAGLE: pins are added to the board only; add MP1-MP4 to a linked schematic too.
  • Only the four corner pins; intermediate edge contacts are not added.

Proprietary, Adom Inc.