CAD changes you can review like code.
MusubiCAD is an AI-native, open-source parametric 3D CAD system built on a deterministic Design Graph. Agents propose typed patches, MusubiCAD regenerates and verifies the geometry, and humans decide whether to apply the change.
Take the 60-second tour · Architecture · Agent API
A real DesignPatch changes the bracket width from 80 mm to 100 mm. MusubiCAD dry-runs the patch, regenerates both models with OCCT, and checks the expected effects without mutating the original document.
| 1. Agent proposes | 2. MusubiCAD verifies | 3. Human approves |
|---|---|---|
Typed DesignPatch |
Transactional dry-run | Before/after geometry |
| Intent and rationale | OCCT regeneration | Semantic diff |
| Explicit units | Expected-effect checks | Apply or reject |
AI changes never bypass validation. A failed regeneration never corrupts the document, and cached B-Rep shapes and meshes remain disposable outputs of the Design Graph.
| Typical binary CAD workflow | MusubiCAD workflow |
|---|---|
| Review an opaque file or screenshot | Review intent, parameters, geometry, and engineering effects |
| Automation mutates application state | Agents submit serializable DesignPatch proposals |
| Cached geometry can become implicit state | The deterministic Design Graph is the source of truth |
| Failures may be discovered after editing | Patches can be dry-run and rejected before mutation |
| Diffs stop at file-level changes | Semantic diff reports values such as 80 mm → 100 mm |
The goal is not to let an LLM silently manufacture geometry. The goal is to give humans and agents the same inspectable, testable model-editing protocol.
See the complete review locally before installing Rust or compiling OCCT:
git clone --depth 1 https://github.com/rsasaki0109/MusubiCAD.git && cd MusubiCAD && ./quickstart.shOn Windows PowerShell:
git clone --depth 1 https://github.com/rsasaki0109/MusubiCAD.git; cd MusubiCAD; ./quickstart.ps1This opens the real, generated 80 mm → 100 mm DesignPatch report already shown above. It runs no
downloaded executable, makes no network request after cloning, and does not mutate the model. The
scripts verify that the HTML, JSON, Markdown, GIF, and before/after images are all present first.
The latest release provides ready-to-run
CLI archives for Linux x86-64, Windows x86-64, macOS Apple Silicon, and macOS Intel. Every archive
includes the bracket document, DesignPatch, license, and a focused quick-start guide. Verify the
download against the attached SHA256SUMS before running it.
Release archives currently contain the historical opencad executable name. They are not yet
code-signed or notarized; platform security warnings are documented in the included
QUICKSTART.md.
You need stable Rust. The first build downloads a prebuilt OpenCASCADE 8.0 binary automatically; no system OCCT install is required.
git clone https://github.com/rsasaki0109/MusubiCAD.git
cd MusubiCAD
cargo run -p opencad-cli -- review \
examples/bracket.ocad.d \
examples/agent/review_width_patch.json \
--output reviewThe command produces a self-contained review bundle:
review: review/review.html
document: doc:bracket_001
changes: 2
Open review/review.html to inspect:
- width: 80 mm → 100 mm
- mass: 76.50 g → 84.10 g
- regenerated before/after geometry
- the patch intent and rationale
- two checked expected effects
The source document is unchanged. The checked-in
review_width_patch.json contains the
proposal, preconditions, and expected engineering effects.
The repository's Design Review workflow dogfoods this same example on GitHub, publishes its parameter and geometry results in the job summary, and attaches the complete HTML/GIF/JSON review bundle.
The hero GIF is generated from those same committed inputs. Rebuild the complete README review bundle with one command:
./docs/assets/generate-review-demo.shOn Windows PowerShell, run ./docs/assets/generate-review-demo.ps1. CI regenerates the bundle,
compares reports exactly and raster output with a documented 1% normalized mean-absolute-error
tolerance, and fails when the demo drifts from the Design Graph, patch, or review renderer.
flowchart LR
A[Human or agent intent] --> B[Typed DesignPatch]
B --> C[Validate and dry-run]
C -->|approve| D[Transaction]
D --> E[(Design Graph)]
E --> F[Feature regeneration]
F --> G[OCCT B-Rep cache]
G --> H[Mesh, drawing, STL]
C --> I[Semantic and visual review]
F --> I
The boundaries are deliberate:
modules/graphowns design intent and dependency analysis, not kernel calls.modules/featureexecutes features only through the kernel-neutralGeometryKernel.modules/kernel-occtcontains concrete OCCT integration.modules/aiorchestrates validated patches and never mutates outside transactions.modules/renderconsumes disposable tessellation and never owns the Design Graph.
Read the architecture overview and Design Graph documentation for details.
- Parametric modeling: constrained sketches, extrude, hole, revolve, fillet, and chamfer
- Patterns: linear, circular, and mirror patterns with union and cut operations
- Semantic topology: stable face references with fingerprint fallback across regeneration
- Assemblies and drawings: instances, connectors, mates, orthographic SVG, hidden lines, and model-driven dimensions
- Agent API: JSON-RPC query, explain, patch, diff, dry-run, regenerate, pick, and export operations
- Git-native review: deterministic JSON/HTML/GIF artifacts, policy checks, patch rebase, and three-way semantic merge
- Headless output: PNG/GIF rendering plus STL and SVG export
Every command exposed by the desktop UI is also available through the CLI or Agent API. See the Agent API reference and Git-native workflow.
The Tauri desktop shell can open .ocad.d documents, regenerate previews, edit
parameters through backend commands, undo and redo edits, pick faces and sketch
entities, and open an interactive wgpu viewport.
cd apps/desktop/src-tauri
cargo install tauri-cli --version "^2.0.0"
cargo tauri devSee the desktop guide for platform prerequisites.
| Example | Demonstrates |
|---|---|
bracket.ocad.d |
Plate, centered hole, and semantic face reference |
bracket_hole_row.ocad.d |
Parametric linear cut pattern |
bracket_pin_mirror.ocad.d |
Mirror pattern driven by a semantic plane reference |
revolve_bushing.ocad.d |
Revolved annular solid |
assembly_two_brackets.ocad.d |
Components, placements, connectors, and mates |
bracket_front_view.ocad.d |
Orthographic drawing with an explicit 80 mm dimension |
examples/agent/ |
Ready-to-run JSON-RPC and DesignPatch requests |
More examples and commands are listed in examples/README.md.
MusubiCAD is an early-stage engineering project, not yet a production CAD replacement.
The Design Graph, .ocad format, geometry pipeline, and Agent API are functional and
covered by deterministic tests, but APIs and schemas may evolve before 1.0.
Current priorities:
- Downloadable desktop builds
Recently delivered: GitHub-native review summaries, reproducible README demos, and a zero-build 60-second tour.
Contributions are welcome in geometry, constraints, rendering, file formats, agent
workflows, documentation, and test fixtures. Start with the focused
CONTRIBUTING.md, browse
good first issue, and read
AGENTS.md before changing code.
If reviewable, agent-safe CAD sounds useful, star the repository or open an issue with the workflow you want MusubiCAD to support next.
modules/ Rust crates: core, graph, geometry, feature, AI, rendering, file, CLI
apps/ Tauri desktop shell and web UI
schemas/ Deterministic .ocad JSON schemas
docs/ Architecture, ADRs, API references, and developer guides
examples/ Parametric documents and Agent API requests
Developer note: Public Rust crates and the CLI currently retain the historical
opencadprefix (opencad-cli,opencad agent) while the project is branded MusubiCAD.
Licensed under either of:
- Apache License, Version 2.0
- MIT License


