Skip to content

bitbybit-dev/bitbybit

Bitbybit Monorepo

Open-source 3D CAD algorithms for the web - MIT licensed. This monorepo contains all Bitbybit NPM packages plus example applications.

Essential introduction by Matas
Introduction by Matas Ubarevicius

Picture showing bitbybit.dev platform

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

Schematic diagram showing the architecture of all NPM packages

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:

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

  1. Clone the repository:

    git clone https://github.com/bitbybit-dev/bitbybit.git
    cd bitbybit
  2. 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 tests
  • npm run setup-and-test - Install dependencies, build packages, and run all unit tests
  • npm run test - Run all unit tests (requires packages to be built first)
  • npm run ci-packages - Install dependencies for all packages
  • npm run build-packages - Build all packages
  • npm 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 package
  • npm run test-occt - Test OCCT package
  • npm run test-core - Test core package
  • npm run test-jscad - Test JSCAD package
  • npm run test-manifold - Test Manifold package
  • npm run test-threejs - Test ThreeJS package
  • npm run test-playcanvas - Test PlayCanvas package
  • npm run test-babylonjs - Test BabylonJS package

Troubleshooting

If you encounter issues during setup:

  1. Make sure you have Node.js v16+ installed
  2. Clear npm cache: npm cache clean --force
  3. Delete node_modules and package-lock.json, then run npm install

Major Dependencies

BabylonJS, ThreeJS, PlayCanvas, OpenCascade, Manifold, JSCAD, Verbnurbs

About

Monorepo for 3D algorithms of Bitbybit platform, which helps programming geometry on the browser. Use with ThreeJS, BabylonJS, build your own core integration or execute algorithms in NodeJS.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors