The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Bitbybit CAD MCP listing page.
Open-source 3D CAD algorithms for the web - MIT licensed. This monorepo contains all Bitbybit NPM packages plus example applications.
Written to be used by people and by AI coding agents alike: every function is published in a form an agent can look up while it writes - see Build It With an AI Agent.
Source code in packages/, languages/, and examples/ is MIT licensed. Documentation text in docs/ is CC BY 4.0. Logos, trademarks, and media assets are not open-source - see CONTENT-LICENSE.md for details.
Scaffold a fully-configured 3D CAD project in seconds:
The CLI first asks you to pick an app type:
Bitbybit has 1725 functions across three CAD kernels - more than any model remembers, so an agent working from memory invents plausible names that do not exist. Give it the Bitbybit CAD MCP instead and it looks up the exact signature, defaults, return type and examples for the version you have installed. It is free and needs no account:
Codex, Cursor, VS Code, Gemini CLI, Windsurf, Zed, the JetBrains IDEs, claude.ai, ChatGPT and the Claude API connect to the same endpoint, and npx -y @bitbybit-dev/mcp runs it locally against the @bitbybit-dev packages in your project - every configuration is here.
| What it gives an agent | Cost | |
|---|---|---|
| Bitbybit CAD MCP | The exact API of the version you use: search, full signatures with defaults, examples, and the guide on where geometry should run. Read-only. | Free, no account |
| Bitbybit CAD Cloud MCP | Hands as well as knowledge: the agent runs operations and pipelines on CAD Cloud, converts STEP to glTF, runs Pro algorithms, and returns the files. | A CAD Cloud key |
| Context files and Context7 | The whole API as one file to attach, for assistants that cannot speak MCP. | Free |
Every answer carries a tier - oss runs in these MIT packages anywhere, platform-pro inside the bitbybit.dev editors, cloud-pro only on CAD Cloud - so an agent never sends you to a paid service for something the free packages already do. The AI section of the documentation covers all of it.
⭐ Subscribe - Silver or Gold plan | Get API Key for CAD Cloud
Check out 3D Bits app for Shopify - interactive 3D product configurators for e-commerce.
Your subscription directly funds continued open-source development of these packages.
The diagram shows every way a website can reach Bitbybit geometry, and where the NPM packages below sit among them:
The full walkthrough of the diagram is on learn.bitbybit.dev.
| Package | Description |
|---|---|
| @bitbybit-dev/babylonjs | BabylonJS engine integration for drawing CAD geometry |
| @bitbybit-dev/threejs | Three.js engine integration for drawing CAD geometry |
| @bitbybit-dev/playcanvas | PlayCanvas engine integration for drawing CAD geometry |
| @bitbybit-dev/core | Core assembly layer combining all CAD kernels |
| @bitbybit-dev/occt | OpenCascade CAD kernel (works in Node.js & browser) |
| @bitbybit-dev/occt-worker | OCCT via WebWorker (non-blocking, browser only) |
| @bitbybit-dev/manifold | Manifold fast mesh booleans (works in Node.js & browser) |
| @bitbybit-dev/manifold-worker | Manifold via WebWorker (non-blocking, browser only) |
| @bitbybit-dev/jscad | JSCAD solid modeling (works in Node.js & browser) |
| @bitbybit-dev/jscad-worker | JSCAD via WebWorker (non-blocking, browser only) |
| @bitbybit-dev/base | Base math/vector/matrix algorithms used by all packages |
| @bitbybit-dev/create-app | CLI tool to scaffold 3D/CAD projects |
| @bitbybit-dev/cad-cloud-sdk | TypeScript SDK for the CAD Cloud API |
| @bitbybit-dev/mcp | MCP server that documents this API for AI coding agents |
All examples live in the examples/ directory of this monorepo:
| App | Engine | Source Code |
|---|---|---|
| Hex Shell | Three.js | GitHub |
| Cup Configurator | Three.js | GitHub |
| Hex House Concept | Three.js | GitHub |
| Starter Template | BabylonJS | GitHub |
| Starter Template | Three.js | GitHub |
| Starter Template | PlayCanvas | GitHub |
| Terrace Furniture | BabylonJS | Closed source |
Beyond these open-source NPM packages, the Bitbybit platform includes:
Matas walks through the platform and the ideas behind it:
If you're interested in contributing please check our Contribution guidelines & code of conduct
For first-time developers working on this project, follow these steps to set up the development environment and run all unit tests:
.tool-versions pins 22; the nightly workflow also runs 24)Clone the repository:
Install pnpm 11 once (the packages are one pnpm workspace; the packageManager field pins the exact version):
Run the complete first-time setup (this will install all dependencies, build all packages, and run all unit tests):
npm run first-time-setup - Complete setup for new developers (installs dependencies, builds packages, runs tests)npm run setup - Install dependencies and build all packages without running testsnpm run setup-and-test - Install dependencies, build packages, and run all unit testsnpm run test - Run all unit tests (requires packages to be built first)npm run test:report - One report over every suite's last results (files, tests, failures, skipped, coverage); written to the job summary on GitHub Actionsnpm run ci-packages - Install dependencies for all packages (one pnpm install --frozen-lockfile for the workspace)npm run refresh-lockfile - Rewrite pnpm-lock.yaml after a dependency change, without touching node_modulesnpm run build-packages - Build and stage all packages (tsc -b over generated project references, run by pnpm in dependency order)npm run rebuild-all-packages - Empty every dist, then build all packagesnpm run gen:references - Regenerate the TypeScript project references from the package manifests after a dependency changenpm run check:references - Fail if the project references and the manifests disagree (the first step of npm test)npm run lint - ESLint over the repository, green by the committed suppression baseline; a new finding failsnpm run typecheck:strict - Every package's typecheck under the full strict setnpm run check:strict-baselines - Fail if any package has grown a strict baseline; every package is fully strict, so the check holds the line at zeronpm run api:check - Fail if any package's public API surface differs from the committed report in its etc/ foldernpm run api:update - Regenerate those API reports after a deliberate change to the public surfacenpm run check:tarballs - Pack every built package and install the tarballs together into an empty project, as a user wouldYou can also run tests for individual packages:
npm run test-base - Test base packagenpm run test-occt - Test OCCT packagenpm run test-core - Test core packagenpm run test-jscad - Test JSCAD packagenpm run test-manifold - Test Manifold packagenpm run test-threejs - Test ThreeJS packagenpm run test-playcanvas - Test PlayCanvas packagenpm run test-babylonjs - Test BabylonJS packageIf you encounter issues during setup:
node --version)pnpm store prunenode_modules at the root and under packages/dev/*, then run pnpm installBabylonJS, ThreeJS, PlayCanvas, OpenCascade, Manifold, JSCAD, and Verbnurbs - the last of these deprecated, no longer maintained upstream, and removed in the next major version.