Open-source 3D CAD algorithms for the web - MIT licensed. This monorepo contains all Bitbybit NPM packages plus example applications.
Essential introduction by Matas
Scaffold a fully-configured 3D CAD project in seconds:
npx @bitbybit-dev/create-app my-projectThe CLI first asks you to pick an app type:
- Frontend - Browser-based 3D/CAD app. Choose a game engine (Three.js, Babylon.js, or PlayCanvas) and OCCT architecture (32-bit, 64-bit, or 64-bit MT). You get a Vite + TypeScript project with all three CAD kernels (OCCT, JSCAD, Manifold) pre-configured.
- CAD Cloud - Full-stack project with server-side CAD via our CAD Cloud API. Choose a backend template (Hono + SDK, Hono + REST, Node.js + SDK, Node.js + REST, or .NET + REST). You get a React + Three.js frontend that proxies requests through your backend - your API key never leaves the server.
cd my-project
npm install
npm run dev⭐ 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.
| Topic | Link |
|---|---|
| Getting Started | https://learn.bitbybit.dev/learn/getting-started/overview |
| NPM Packages Intro | https://learn.bitbybit.dev/learn/npm-packages/intro |
| Integrate with Three.js | https://learn.bitbybit.dev/learn/npm-packages/threejs/start-with-three-js |
| Integrate with BabylonJS | https://learn.bitbybit.dev/learn/npm-packages/babylonjs/start-with-babylon-js |
| Integrate with PlayCanvas | https://learn.bitbybit.dev/learn/npm-packages/playcanvas/start-with-playcanvas |
| CAD Cloud API | https://learn.bitbybit.dev/api/cloud-api |
| Script Runners | https://learn.bitbybit.dev/learn/runners/intro |
| 3D Bits for Shopify | https://learn.bitbybit.dev/learn/3d-bits/intro |
| AI-Assisted Development | https://learn.bitbybit.dev/learn/using-ai-with-bitbybit/intro |
| Unit Testing Approach | https://learn.bitbybit.dev/learn/github/unit-tests |
| Live Unit Test Coverage | https://learn.bitbybit.dev/learn/github/live-unit-test-coverage |
| Blog | https://learn.bitbybit.dev/blog |
| 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 |
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:
- Visual Programming Editors - Rete & Blockly drag-and-drop 3D modeling, plus a Monaco TypeScript editor with full IntelliSense
- CAD Cloud API - Build full pipelines that compose all Bitbybit algorithms, where each step can reference outputs of previous steps. Supports parametric model generation, STEP-to-glTF conversion, and complex CAD workflows via HTTP. TypeScript SDK available.
- Bitbybit Studio - A growing visual dashboard where API Key users can generate models, convert files, build pipelines with a GUI, inspect tasks, and preview 3D results
- 3D Bits for Shopify - Interactive 3D product configurators for your Shopify store. Documentation.
- Script Runners - Execute Rete/Blockly/TypeScript scripts directly on your website without writing code
- AI-Assisted Development - Context files for GitHub Copilot, Claude, and ChatGPT. MCP integration available.
- Business & Enterprise - We help businesses and enterprises develop custom applications and spin up optimized CAD tenant workflows on our managed servers
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:
- Node.js (v16 or higher recommended)
- npm (comes with Node.js)
- Git
-
Clone the repository:
git clone https://github.com/bitbybit-dev/bitbybit.git cd bitbybit -
Run the complete first-time setup (this will install all dependencies, build all packages, and run all unit tests):
npm run first-time-setup
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 ci-packages- Install dependencies for all packagesnpm run build-packages- Build all packagesnpm run rebuild-all-packages- Clean and rebuild all packages
You 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 package
If you encounter issues during setup:
- Make sure you have Node.js v16+ installed
- Clear npm cache:
npm cache clean --force - Delete node_modules and package-lock.json, then run
npm install
BabylonJS, ThreeJS, PlayCanvas, OpenCascade, Manifold, JSCAD, Verbnurbs


