Skip to main content

CAD-as-code that stays portable

InvariantCAD is a TypeScript library for describing parametric designs as immutable, versioned JSON and evaluating them with replaceable geometry kernels. Use the fast bundled Manifold mesh runtime for everyday modeling or select the OpenCascade backend for exact B-Rep geometry and STEP/BREP exchange.

Build your first model

Author a parameterized plate, evaluate it, inspect measurements, and export an STL.

Understand the architecture

Learn how builders, documents, evaluators, kernels, and owned results fit together.

Choose a kernel

Compare Manifold, stock OpenCascade, and the optional owned OCCT facade.

Check feature support

See the exact 0.1 capability boundary before selecting a workflow.

What you can build in 0.1

  • Parameterized primitives, sketches, extrusions, revolutions, and transforms
  • Mesh and exact Boolean operations
  • Exact bounded ruled lofts and line/arc path sweeps
  • Selector-driven fillets, chamfers, shells, offsets, and draft
  • Parts, materials, nested assemblies, named configurations, and BOMs
  • Semantic and persistent topology selections for faces, edges, and vertices
  • Volume, area, centroid, inertia, density-aware mass, and gyration analysis
  • Deterministic documents, migrations, impact reports, and feature hashes
  • STL, OBJ, STEP, and BREP exchange
InvariantCAD 0.1 is an early public foundation, not a claim that every CAD domain is already implemented. Drawings, GD&T, mates, sheet metal, CAM, CAE, and advanced surfacing remain on the roadmap.

A deliberately split architecture

InvariantCAD separates design intent from geometry execution:
This split has practical consequences:
  1. A design document never contains a WASM pointer, native handle, or backend object.
  2. The same validated document can be evaluated by different conforming kernels.
  3. Serialization, review, hashing, migration, and build automation do not need a geometry process.
  4. Native resources remain evaluation-scoped and must be disposed explicitly.

Pick a path

New to InvariantCAD

Install the package and confirm your runtime requirements.

Building exact CAD

Configure OCCT and understand stock versus owned-facade guarantees.

Integrating a pipeline

Store, migrate, validate, hash, evaluate, and export documents safely.

Package entry points

Continue with the quickstart, or use the complete 0.1 guide when you want every current behavior and boundary in one page.