bitbybit
Monorepo for 3D algorithms of Bitbybit platform, which helps programming geometry on the browser. Use with ThreeJS, Bab…
Bitbybit Monorepo
Open-source 3D CAD algorithms for the web - MIT licensed. This monorepo contains all Bitbybit NPM packages plus example applications.
License
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.
FULL PLATFORM AT BITBYBIT.DEV
LEARN BITBYBIT
Essential introduction by Matas
Quick Start
Scaffold a fully-configured 3D CAD project in seconds:
npx @bitbybit-dev/create-app my-project
The 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
Support the Mission
⭐ 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.
Important Topics
| 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 |
NPM Packages
| 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 |
NPM Package Architecture
Example Applications
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 |
Bitbybit Platform
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
Community
Development Setup
Contributions
If you're interested in contributing please check our Contribution guidelines & code of conduct
First Time Setup and Testing
For first-time developers working on this project, follow these steps to set up the development environment and run all unit tests:
Prerequisites
- Node.js (v16 or higher recommended)
- npm (comes with Node.js)
- Git
Quick Start
-
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
Available Commands
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
Running Individual Package Tests
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
Troubleshooting
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
Major Dependencies
BabylonJS, ThreeJS, PlayCanvas, OpenCascade, Manifold, JSCAD, Verbnurbs
more like this
voxel-models
Free voxel models for Avoyd Voxel Editor: make voxel art, export to 3D mesh etc. All downloadable assets are licensed u…