partmode is a free, open source design & prototyping project written in JavaScript and released under AGPL-3.0. It has 509 GitHub stars, 24 forks and 11 open issues, and was last pushed 1 months ago. On this registry it ranks #23 of 23 tracked projects in Design & Prototyping, with 5 head-to-head comparisons available.

What is partmode?

PartMode is an open-source, local-first 3D parametric CAD application that runs in the browser for people and for permissioned typed agents, built on OpenCascade WebAssembly, and it is aimed at mechanical designers, engineers, and agent developers who want exact parametric modelling without a desktop CAD installation.

What it is

PartMode is browser-based mechanical CAD built on OpenCascade WebAssembly, replicad, and three.js. It combines constrained sketches, editable feature history, exact B-rep evaluation, assemblies, drawings, and standard exchange formats in one application. The project is organised around a single idea: human edits and agent edits should operate on the same canonical document model and the same exact kernel, rather than on parallel and opaque automation state.

The concrete problem it solves is the split between a desktop CAD installation and whatever separate automation state an outside tool maintains. In a browser-approved session, a person and an agent can revise the same open project, and the exact geometry is rebuilt by the same kernel. A separate headless path uses its own account-owned document instead. PartMode lives in the browser CAD and B-rep ecosystem, and it replaces the requirement to install and run desktop CAD software in order to produce exact parametric geometry.

Key capabilities

  • Constrained sketches, dimensions and expressions, editable feature history, multiple solid bodies, direct edits, configurations, patterns, holes, threads, sheet-metal, and structural tools.
  • Assemblies with reusable part definitions, occurrences, mates, direct in-context component editing, exploded views, sections, dependency inspection, and assembly mass properties.
  • Drawings with exact OpenCascade hidden-line views, where SVG and PDF sheets carry document-owned dimensions, tolerances, notes, symbols, and tables, while DXF exports a restricted R12 orthographic or sketch geometry subset.
  • Interchange through editable PartMode project bundles, STEP import and export, plus STL, AMF, and 3MF mesh exports.
  • Inspection tools covering measurements, geometry health, volume, surface area, material-driven mass properties, centers of mass, inertia tensors, and persistent topology evidence.
  • Agent workflows exposed as hosted Model Context Protocol tools for capabilities, inspection, queries, detached previews, revision-safe commits, browser artifacts, and opt-in server-headless STEP workflows.
  • Editable schema-5 starting templates, where a failed rebuild is reported instead of being treated as valid geometry.

Who uses it and how

  • Individual mechanical designers who model anonymously in the browser with no account, keeping projects, geometry, and recovery history in browser storage.
  • Engineers who need exact B-rep results and STEP export without maintaining a desktop CAD installation.
  • Teams running hosted browser-agent access, which requires an account, a revocable agent key, a signed-in PartMode tab, and visible approval for the project-scoped session.
  • Agent developers building against the same schema and kernel through typed, permissioned operations rather than a separate automation state.
  • Organisations that self-host the application under the GNU AGPL v3 licence and need the headless STEP workflow path.

Getting started

Open PartMode through the hosted application at partmode.com, or self-host it from source under the GNU AGPL v3 licence. Anonymous browser CAD needs no account; hosted agent connectivity and headless document storage are separate, explicit choices.

How it compares

No paid products that PartMode replaces are listed in the available facts, and no comparable tools are named there either. On the evidence provided, PartMode stands alone in this registry.

When to use it — and when not to

A self-hoster choosing the hosted and headless paths must operate the hosted relay, account and agent-key handling, approval flow for browser-approved sessions, and account-owned headless document storage, in addition to the browser application itself. Anyone who only needs local modelling can avoid most of that, since anonymous browser CAD keeps projects in browser storage. The project is small and young — 509 stars, 24 forks, 11 open issues — the README excerpt ends mid-sentence, and the facts state that exact capability coverage varies by template, so anyone needing predictable coverage across every tool area should verify it against their own parts first.

project readme (upstream, from github) — read inline

PartMode

Open-source, local-first parametric CAD for people and permissioned typed agents.

Open PartMode · Read the help · Explore the architecture · Contribute

PartMode is browser-based mechanical CAD built on OpenCascade WebAssembly, replicad, and three.js. It combines constrained sketches, editable feature history, exact B-rep evaluation, assemblies, drawings, and standard exchange formats in one application that runs without a desktop CAD installation.

It is built around a simple idea: human and agent changes should use the same canonical document model and exact kernel instead of parallel, opaque automation state. In a browser-approved session they can revise the same open project; the separate headless path uses its own account-owned document.

Local by default Exact geometry Shared model + kernel
Model anonymously in the browser. Optional hosted agent connectivity and headless document storage are separate, explicit choices. OpenCascade evaluates solid B-rep geometry. The shaded three.js scene is a view of the result, not the source of truth. People use the CAD interface. Agents use typed, permissioned operations against the same schema and kernel; browser-approved agents can edit the open project.

PartMode is free to use, inspect, modify, and self-host under the GNU AGPL v3 license.

See PartMode in 18 seconds

Watch the 18-second PartMode contributor demo

Open an editable template, make a human parameter edit, approve a typed agent change, rebuild the exact geometry, and export STEP.

The demo was captured locally from public source snapshot 8db0b804 using the production typed-agent protocol. The complete steps and evidence are in the capture notes.

What you can build

Area Included capabilities
Parametric parts Constrained sketches, dimensions and expressions, editable feature history, multiple solid bodies, direct edits, configurations, patterns, holes, threads, sheet-metal, and structural tools
Assemblies Reusable part definitions, occurrences, mates, direct in-context component editing, exploded views, sections, dependency inspection, and assembly mass properties
Drawings Exact OpenCascade hidden-line views; SVG and PDF sheets can carry document-owned dimensions, tolerances, notes, symbols, and tables, while DXF exports a restricted R12 orthographic or sketch geometry subset
Interchange Editable PartMode project bundles, STEP import and export, plus STL, AMF, and 3MF mesh exports
Inspection Measurements, geometry health, volume, surface area, material-driven mass properties, centers of mass, inertia tensors, and persistent topology evidence
Agent workflows Hosted MCP tools for capabilities, inspection, queries, detached previews, revision-safe commits, browser artifacts, and opt-in server-headless STEP workflows

Templates are editable schema-5 starting projects, not decorative meshes. Exact capability coverage varies by template, and a failed rebuild is reported instead of being treated as valid geometry.

One document model, two authority paths

flowchart LR
  H["Human browser UI"] --> L["Browser-local schema-5 document"]
  A["Typed agent client"] --> G{"Authority chosen by account owner"}
  G --> B["Browser-approved local session"]
  G --> X["Headless-granted session"]
  B --> L
  X --> S["Account-owned schema-5 document"]
  L --> K["Shared OpenCascade WASM exact kernel"]
  S --> K
  K --> E["Exact B-rep evidence"]
  E --> O["Browser drawings and supported artifacts"]
  E --> T["Headless STEP export"]

Browser-approved local projects

  • Anonymous browser CAD needs no account. Projects, geometry, and recovery history remain in browser storage.
  • Hosted browser-agent access requires an account, a revocable agent key, a signed-in PartMode tab, and visible approval for the project-scoped session. A key authenticates the agent but does not grant CAD authority by itself.
  • Approved commands and results cross the hosted relay over HTTPS and remain only in bounded process memory. There is no offline queue, the relay is not end-to-end encrypted, and the browser project itself is not stored there.
  • The agent inspects current state, creates a detached preview, and commits only against the matching document revision. The person can reject, pause, disconnect, or revoke access.

Server-headless durable projects

  • An edit key can be created with an explicit, immutable headless grant for unattended CAD. This is a separate storage and authority choice, not an automatic extension of browser access.
  • Live headless sessions are key-bound, expire within one hour, and do not survive a service restart. Only committed headless documents are durable.
  • Committed records survive session expiry, key revocation, restarts, and deployments, and remain until account deletion; there is no individual project-delete control yet. Headless execution has no visible Studio and a narrower artifact surface; STEP is the current dedicated export path.

Read the agent workflow for the complete permission, storage, session, and tool boundaries. Live cad_capabilities output remains authoritative for the exact operations and schemas supported by a running release.

Run locally

PartMode requires Node.js 22.13 or newer.

git clone https://github.com/BOMWiki/partmode.git
cd partmode
npm ci
npm run build
npm start

Open http://127.0.0.1:4401. Browser-local CAD does not require an account or an external service.

To run the focused contributor gate:

npm run ci:gate

The gate type-checks and builds the release, verifies static and runtime manifests, and exercises the local HTTP, account, identity, MCP, cloud, and entrypoint contracts. CAD, kernel, assembly, export, and visible UI changes also require the affected smoke:* checks. The broader blocking release gate is available through npm run release:gate; the professional and nightly matrices are separate.

Connect an MCP agent

Create a revocable key from Agent access, then store it in the secret environment used to launch your MCP client. Do not paste the key into a prompt, URL, command argument, or repository file.

For Codex:

codex mcp add partmode \
  --url https://partmode.com/mcp \
  --bearer-token-env-var PARTMODE_AGENT_KEY

Start a new session, read the PartMode Help resources, and call cad_capabilities before constructing a transaction. Use a browser-approved session when a person should see and approve the work, or deliberately create a headless-granted edit key for an unattended server project.

Architecture at a glance

The browser and agent paths share the canonical document model and exact kernel-worker boundary:

  • src/page.html and the focused src/static/studio-* modules implement the visible product, documents, modeling, assemblies, drawings, storage, and interaction behavior.
  • src/static/studio-agent-service.js validates typed operations, creates detached previews, enforces revisions, and commits accepted changes.
  • src/static/studio-kernel.worker.js isolates exact rebuild, validation, import, export, drawing, and inspection work from the UI thread.
  • src/mcp.ts, src/relay-hub.ts, and src/headless-sessions.ts implement the hosted MCP, browser relay, and server-headless boundaries.

See the architecture guide for the component map, verification map, and design rules.

Contribute

Start with a good first issue or a help wanted issue. Comment before starting so scope and ownership are clear.

For a behavior change:

  1. Stay within the issue's accepted boundary.
  2. Add or update the narrowest relevant regression.
  3. Run npm run ci:gate.
  4. Run every affected smoke:* command named by the issue or change area.
Area Start here Typical focused checks
Browser UI and recovery src/page.html, src/static/studio.js, src/static/studio-storage.js smoke:browser, smoke:usability-ui
Documents and features src/static/studio-project-v5.js, src/static/studio-v5-runtime-document.js the affected feature smoke:* test
Exact geometry and topology src/static/studio-kernel.worker.js, src/static/studio-brep-evidence.js, `src/static/studio-topo-naming.js

readme truncated — read the full docs on github

Frequently asked questions

Is partmode free to use?

partmode is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does partmode do?

Open-source, local-first 3D parametric CAD that runs in the browser for people and permissioned typed agents, powered by OpenCascade WASM.

What is partmode written in?

partmode is primarily written in JavaScript. Its source is publicly available at https://github.com/BOMWiki/partmode, and it has 509 GitHub stars.