Skip to content

rsasaki0109/MusubiCAD

Repository files navigation

MusubiCAD logo: three connected parametric solids

MusubiCAD

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

CI status Design Review status Latest release GitHub stars Rust stable MIT OR Apache-2.0

A deterministic MusubiCAD review showing a bracket changing from 80 mm to 100 mm wide

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.

The workflow

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.

Why MusubiCAD?

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.

60-second tour (no build)

See the complete review locally before installing Rust or compiling OCCT:

git clone --depth 1 https://github.com/rsasaki0109/MusubiCAD.git && cd MusubiCAD && ./quickstart.sh

On Windows PowerShell:

git clone --depth 1 https://github.com/rsasaki0109/MusubiCAD.git; cd MusubiCAD; ./quickstart.ps1

This 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.

Download the CLI

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.

Run a real design review

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 review

The 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.sh

On 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.

How it works

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
Loading

The boundaries are deliberate:

  • modules/graph owns design intent and dependency analysis, not kernel calls.
  • modules/feature executes features only through the kernel-neutral GeometryKernel.
  • modules/kernel-occt contains concrete OCCT integration.
  • modules/ai orchestrates validated patches and never mutates outside transactions.
  • modules/render consumes disposable tessellation and never owns the Design Graph.

Read the architecture overview and Design Graph documentation for details.

What works today

  • 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.

Desktop preview

MusubiCAD desktop presentation orbit of a two-component assembly with feature edges and floor grid

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 dev

See the desktop guide for platform prerequisites.

Examples

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.

Project status

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:

  1. Downloadable desktop builds

Recently delivered: GitHub-native review summaries, reproducible README demos, and a zero-build 60-second tour.

Contributing

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.

Repository layout

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 opencad prefix (opencad-cli, opencad agent) while the project is branded MusubiCAD.

License

Licensed under either of:

  • Apache License, Version 2.0
  • MIT License

About

AI-native parametric CAD where agents propose typed patches and humans review geometry like code. Rust + OpenCASCADE.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages