PDM
Local-first versioning
Every check-in is a row in SQLite. WAL on disk, checkout on the feature tree, release states without an account. Path: .cad_workspace/*.cad_db
- r16HEAD fillet R4checked out
- r15hole Ø6.8
- r14extrude 8 mm
- r13sketch locked
DWG AR-001 · A3 · LOCAL
Desktop kernel · open source
A local suite for parts, boards, and toolpaths. History lives in SQLite. Solids live in OpenCASCADE. The STEP file never phones home.
Drag height, bore, and across-flats. Switch Sketch / Solid / Trace / Path.
On the machine
Part studios, assemblies, drawings, CAM, simulation, render, and PCB sit in the same local project. The full module map lists every studio, including scaffolds.
PDM
Every check-in is a row in SQLite. WAL on disk, checkout on the feature tree, release states without an account. Path: .cad_workspace/*.cad_db
ECAD
Snap routing, DRC profiles, Gerber and Excellon out. Sized for a Voltera mill, not a fab portal.
Assembly
Concentric and coincident snaps lock before the dialog stack appears. Instances stay in a local BOM.
Sculpt
Control mesh in orange. Subdivided surface in vellum. Organic bodies sit next to BREP extrudes in the same studio, not a separate clay app.
Runtime stack
The landing page is Next.js. The product is not. Arbor runs as a Tauri desktop app with a Rust sidecar and an OpenCASCADE worker. Full numeric limits and schema notes: specifications.
git clone \ https://github.com/Eerielettuce3717/arbor-cae.git
| Subsystem | Stack | Bound to |
|---|---|---|
| Window | Tauri 2 | Native shell. No Electron tax. |
| Kernel I/O | Rust | PDM, CAM post, filesystem, workers. |
| Solids | OpenCASCADE | BREP, STEP, boolean, mesh buffers. |
| Viewport | WebGL / Three | GPU mesh, view cube, sketch overlay. |
| History | SQLite | Local revisions, WAL, release states. |
| ECAD | PixiJS + DRC | Snap routing. Gerber / Excellon. |
| CAM | 2.5D pocket | Zigzag clear. Fanuc post. |
Viewport