Skip to main content

Bitbybit Runner Licensing

The Bitbybit Runner has a dual-origin licensing model. The Runner bundle contains both proprietary components authored by Bitbybit and open-source components governed by their own licenses. Understanding this distinction is important if you plan to use, embed, or self-host the Runner.

The Short Version​

  • You can use the Runner freely, including for commercial purposes, without a bitbybit.dev account.
  • You can embed it in your own products, apps, and websites.
  • You can self-host the Runner files on your own CDN.
  • You cannot reverse-engineer the proprietary parts, modify the bundle, or redistribute it as a standalone product.
  • The Bitbybit OCCT Kernel the Runner loads is MIT-licensed and closed source (details).
  • Open-source components (OCCT, BabylonJS, Three.js, PlayCanvas, JSCAD, Manifold, etc.) keep their own licenses - your rights under those licenses are not restricted.

Bitbybit Runner License​

The Runner bundle as a whole is governed by the Bitbybit Runner License, a custom license distributed with each Runner release. Key terms:

What You Can DoWhat You Cannot Do
Use in any application (commercial or personal)Reverse-engineer proprietary algorithms
Embed in products you distribute to end-usersModify or patch the Runner bundle files
Self-host on your own infrastructureRedistribute as a standalone product or public CDN
Use without a bitbybit.dev accountRemove copyright or license notices

The full license text is included in the LICENSE file distributed with the Runner files.

Open-Source Components​

The Runner incorporates the following open-source software, each governed by its own license:

ComponentLicenseHow It's Used
OpenCASCADE (OCCT)LGPL v2.1 with the Open CASCADE exceptionCompiled into the Bitbybit OCCT Kernel, a WASM binary loaded at runtime in a separate Web Worker (see below)
BabylonJSApache 2.0Bundled in full BabylonJS runner; excluded from lite
Three.jsMITBundled in full Three.js runner; excluded from lite
PlayCanvasMITBundled in full PlayCanvas runner; excluded from lite
JSCADMITSeparate Web Worker, loaded at runtime
ManifoldApache 2.0Separate Web Worker + WASM binary, loaded at runtime
Havok PhysicsMIT (the WebAssembly build for Babylon.js, @babylonjs/havok; closed source)Optional separate script (BabylonJS runner only)
opentype.jsMITUsed for font parsing in CAD text operations
JSONPath PlusMITBundled via @bitbybit-dev/core for JSONPath queries
Bitbybit Core LibrariesMITThe TypeScript of @bitbybit-dev/core, @bitbybit-dev/occt, etc.

A complete listing is provided in the NOTICE file distributed with each Runner release.

The Bitbybit OCCT Kernel​

The Runner loads the Bitbybit OCCT Kernel, our CAD kernel built on OpenCASCADE Technology (OCCT), as separate files next to its bundle: a Web Worker (bitbybit-dev-occt*-webworker.js) and a WebAssembly binary (bitbybit-dev-occt*.wasm), one pair per build. The WebAssembly binary is one file compiled from two parts:

  • OpenCASCADE Technology (OCCT), licensed under LGPL v2.1 with the Open CASCADE exception. The OCCT source the kernel is compiled from is public at github.com/bitbybit-dev/OCCT (branch bitbybit-main).
  • The Bitbybit kernel layer, our own C++ code, whose source is not published.

The kernel is licensed under the MIT License, like the rest of the @bitbybit-dev/occt npm package, which ships the same kernel: you may use, modify and redistribute it in any project, personal or commercial. It is closed source: the license covers the compiled kernel, and the C++ of the kernel layer is not published.

Using a Modified OCCT​

LGPL v2.1 lets you modify OCCT and use your modified version. OCCT and the kernel layer are linked into one WebAssembly file, so using a modified OCCT means relinking that file. Every build of the kernel has a relinking kit with the materials to do it: the kernel layer as compiled object files, the Draco build the kernel links, a script that builds OCCT for WebAssembly from the fork, the link command, the toolchain version and a smoke test. The kits are free, published beside the kernel's builds as the relink-kit-<kernel file name without .wasm> releases of bitbybit-assets, and each kit's README.md walks through the steps. For a build whose kit is not there, write to [email protected] and we will provide it; the offer is valid for at least three years after we last distribute that build.

A relinked kernel works together with the JavaScript glue its own link produces. In the npm packages, replace both the glue and the wasm in the build's folder of @bitbybit-dev/occt. The Runner's OCCT worker bundles the glue of our kernel, so it needs a worker that works with yours. Either modify the Runner's own OCCT worker, for your own use, so that it loads your glue (the Runner License allows that, and reverse engineering it as far as debugging needs), or build a worker from the MIT @bitbybit-dev/occt-worker package around your glue (the worker protocol says what it must do; such a worker lacks the Runner's advanced OCCT functions, such as 3D text). Then host the assets yourself, put your worker and your kernel in place of ours under the same file names, and point the Runner's cdnUrl at that folder:

const runner = window.bitbybitRunner.getRunnerInstance();
await runner.run({
canvasId: 'myCanvas',
enableOCCT: true,
cdnUrl: 'https://your-server.com/bitbybit-assets/'
});

Nothing in the Runner License limits what the MIT License of the kernel or OCCT's license permits.

Build Tooling​

The build scripts, webpack configurations, and tooling used to compile and assemble the Runner are proprietary. They are not included in the Runner distribution and are not part of any license grant. If you want to work with the open-source components independently, the NOTICE file says where the source code of each is available; the Bitbybit open-source libraries are at https://github.com/bitbybit-dev/bitbybit, and the OCCT the kernel is compiled from at github.com/bitbybit-dev/OCCT.

Terms and Conditions​

If you have a bitbybit.dev account, the Terms and Conditions apply to your use of the Platform and Services in addition to the Runner License. Section 4 ("Our License to You") contains specific provisions about the Runner, including:

  • The relationship between the Runner License and the Terms and Conditions
  • Open-source component obligations
  • The Bitbybit OCCT Kernel and relinking it with a modified OCCT
  • CDN availability disclaimers
  • Self-hosting permissions and responsibilities

If you do not have a bitbybit.dev account and only use the Runner, you are governed by the Bitbybit Runner License (and the respective open-source licenses for Open-Source Components).

Questions​

For licensing questions, contact [email protected].

For commercial licensing inquiries (including white-label, OEM, or redistribution rights), contact [email protected].