Skip to content

Releases: bitbybit-dev/bitbybit

1.1.1

Choose a tag to compare

@matas-bitbybit-dev matas-bitbybit-dev released this 26 Jun 08:23
d3f52bd

Release Notes v1.1.1

This release brings SVG into the CAD kernel, a brand-new generic 2D path builder, and an upgrade to curves and periodic wires - Beziers, B-Splines and interpolated/symmetric wires now behave properly across the seam, with new tangent and seam controls. On top of that: deep shape introspection (debug info), degree-rebuild and face-UV tools, and new BabylonJS rendering features - glTF tooling with KHR material variants, and decals for projecting images onto meshes.

If you build parametric drawings, import vector artwork, work with smooth/closed curves, or need finer control over rendering and materials, this one is for you.


New CAD Features (OCCT)

Import SVG drawings as real geometry

You can now turn any SVG document into OCCT wires and faces, laid on the ground and aligned per your import options. Paths, basic shapes, and styling are all understood.

  • bitbybit.occt.svg.loadSVG
    • Parses an SVG document and builds a single compound shape containing every drawable element. Perfect when you want to draw, extrude, or transform the whole drawing as one shape.
  • bitbybit.occt.svg.loadSVGStructured
    • Parses an SVG document and returns one shape per drawable element, each bundled with its resolved fill / stroke / stroke-width metadata - plus parser warnings and the SVG viewBox. Use this when you need per-element shapes together with their colours and styles. (Face building is best-effort and optional.)

A generic 2D path builder

A new, SVG-agnostic path vocabulary that also powers the SVG importer under the hood.

  • bitbybit.occt.path.shapeFromPath
    • Describe a complex path with a familiar line / quadratic / cubic / arc vocabulary and build a wire, a compound of wires, or a face (when makeFaces is set) in a single call.

Better curves, splines & periodic wires

A substantial overhaul of how Bezier curves, B-Splines and interpolated wires behave - especially in closed / periodic situations, where they are now genuinely smooth across the seam instead of merely meeting end-to-end.

  • bitbybit.occt.shapes.wire.createBSpline
    • New periodic option builds a true closed, tangent-continuous B-Spline (continuous across the seam).
    • New tangent control: enforce a startTangent / endTangent (non-periodic), or supply per-point tangents (entries left undefined are inferred), plus a choice of parametrization.
  • bitbybit.occt.shapes.wire.createBezier and createBezierWeights
    • New periodic option builds a smooth closed curve that wraps the control polygon and is continuous across the seam - unlike plain closed, which only meets C0 by repeating the first point.
    • New optional degree lets you keep fewer control points while still following the control polygon.
  • bitbybit.occt.shapes.wire.interpolatePoints
    • Gains the same tangent and periodic controls for smoother, more predictable interpolated wires.
  • bitbybit.occt.shapes.wire.interpolatePointsSymmetric
    • Reworked into a dedicated, always-closed (periodic) interpolation that derives its own tangents from the points - ideal for clean, symmetric loops (needs at least 3 points).

Seam control for periodic wires

  • bitbybit.occt.shapes.wire.moveWireSeamByParameter - move the seam (origin) of a periodic wire/edge to a given parameter value.
  • bitbybit.occt.shapes.wire.moveWireSeamByLength - move the seam by an arc length from the current start. (Non-periodic shapes are returned unchanged.)

Face UV controls

  • bitbybit.occt.shapes.face.flipFaceUV - swap U/V and/or reverse the U or V direction of a face's parametrization.
  • bitbybit.occt.shapes.face.normalizeFaceParametrization - normalize a face's U/V parametrization (with sampling and tolerance) for consistent, predictable UVs downstream.

Shape introspection - "debug info"

Look inside a shape to understand the geometry it is actually made of. Each call returns structured analysis of the underlying curves/surfaces - type, degree, poles, knots, periodicity, length/area, counts, endpoints, and more.

  • bitbybit.occt.shapes.edge.debugInfo - curve type, degree, poles/knots, periodicity, range, length, start/end.
  • bitbybit.occt.shapes.face.debugInfo - surface type and parametric details.
  • bitbybit.occt.shapes.shell.debugInfo - face/edge counts, total surface area, per-face info.
  • bitbybit.occt.shapes.solid.debugInfo - aggregate introspection for solids.

These are valuable when debugging imported or generated geometry, or when deciding how to process a shape downstream.

Rebuild curve/surface degree

Normalize the mathematical degree of edges and faces - handy before lofting, joining, or exporting.

  • bitbybit.occt.shapes.edge.rebuildEdgeDegree - rebuild an edge's curve to a target degree.
  • bitbybit.occt.shapes.face.rebuildFaceDegree - rebuild a face's surface to target U/V degrees, with tolerance and optional trim preservation (keepTrim).

New Rendering Features (BabylonJS)

glTF tooling & KHR material variants

Beyond simply importing a model, you can now keep the full asset graph and drive it.

  • bitbybit.babylon.gltf.loadAssetContainerFromUrl / loadAssetContainer
    • Load a glTF/glb keeping the rich AssetContainer (meshes, materials, animations, root node) instead of collapsing it into a single mesh.
  • bitbybit.babylon.gltf.getRootNode / getMeshes - reach into the loaded asset.
  • Material variants (KHR_materials_variants) - listMaterialVariants, selectMaterialVariant, getSelectedMaterialVariant, resetMaterialVariant. Switch a product between its predefined material sets (e.g. colourways) at runtime.
  • Animations - getAnimationGroups, listAnimationGroupNames, playAnimationGroup, stopAnimationGroup.

Decals - project images onto meshes

Two complementary techniques, so you can pick the right tool for the job.

  • bitbybit.babylon.decal.createMeshDecal - a classic geometry decal: a clipped child mesh that hugs the surface. Works on any material and any static mesh.
  • bitbybit.babylon.decal.enableDecalMap + projectDecal + clearDecalMap - a modern texture-space decal map: no extra geometry, follows deformation, and multiple projections accumulate into a single map (requires good UVs).

Image textures for projection

  • bitbybit.babylon.texture.createImage - create a clamp-wrapped, alpha-aware texture from a URL, data URL, or uploaded asset, ready to feed into either decal path.

Fixes & Under the Hood

  • OCCT worker cache - the worker cache helper now detects shape pointers nested inside deeper JSON structures, so caching and cleanup work correctly for structured results (such as loadSVGStructured).
  • Draw fix for grids - corrected grid drawing behaviour.
  • Docs / Learn content updated.

Dependencies

  • BabylonJS engine updated from 9.11 -> 9.13 (@babylonjs/core, @babylonjs/gui, @babylonjs/loaders, @babylonjs/materials, @babylonjs/serializers).
  • ThreeJS engine updated from 0.184.0 -> 0.185.0
  • PlayCanvas engine updated from 2.18.1 -> 2.20.0

1.1.0

Choose a tag to compare

@info-bitbybit-dev info-bitbybit-dev released this 10 Jun 14:42
7c55f4b

Release Notes - v1.1.0

This release focuses on OCCT modeling power - new corner finishing tools, draft angles, a full matrix/transform toolkit, and an experimental B-Rep topology graph - plus cloud CAD improvements (compressed STEP files, sheet-metal unfold) and a more normalized decomposed-mesh format.

All @bitbybit-dev/* packages are published at 1.1.0 (base, occt, occt-worker, jscad, manifold, core, babylonjs, threejs, playcanvas, cad-cloud-sdk, create-app). This ships a new OCCT WASM kernel - the CDN now serves from git-cdn.bitbybit.dev/v1.1.0.

New OCCT features

Corner fillets & chamfers by point

A new occt.corners API lets you fillet or chamfer specific corners simply by pointing at them, instead of hand-picking edges:

  • filletCornerByPoint / chamferCornerByPoint - round or bevel the corner nearest a given point, with radius, taper factor, snap tolerance, and corner-mode control.
  • classifyCornerByPoint / cornerByPointReport - inspect a corner before modifying it.

Draft angles

A new occt.draft API for mold/casting-style draft:

  • draftAngle - apply a draft angle to selected faces about a neutral plane.
  • makeDraft / makeDraftToShape - generate drafted geometry.

B-Rep Graph (experimental)

A new occt.brepGraph API exposes the boundary-representation topology of a shape as an analyzable, serializable graph:

  • analyze, faceAdjacency, edgeFaceMap, vertexEdgeMap, faceInfo, edgeInfo, wireInfo, containment, assembly
  • validate and dump for inspection/debugging
  • reconstruct / nodeOfShape to round-trip and look up nodes

This is a first experimental release - the API surface may change in future versions.

New transforms & matrix support

A large set of matrix-based transform helpers landed in occt.transforms, enabling proper matrix workflows and matrix-driven assembly instances:

  • Build matrices: translationToMatrix, rotationAxisAngleToMatrix, quaternionToMatrix, scaleUniformToMatrix, mirrorPointToMatrix / mirrorAxisToMatrix / mirrorPlaneToMatrix
  • Compose & apply: composeTransform, multiplyTransforms, invertTransform, transformByMatrix, transformShapesByMatrix, getShapeTransform
  • Convenience ops: rotateByQuaternion, mirrorAboutPoint, scaleFromCenter

Additional wire & fillet methods

  • createWiresBetweenStartEndPointsOfWiresAndEdges
  • createWiresBetweenSubdividedPointsOfWiresAndEdges
  • Extra fillet and solid helpers.

CAD Cloud / SDK (@bitbybit-dev/cad-cloud-sdk)

  • Compressed STEP (.stpz) support - gzip-compressed STEP data is now automatically decompressed on input, including for sheet-metal unfolds.
  • Gzip support on the API layer for smaller payloads.
  • Sheet-metal unfold operations added to the pipeline (unfoldFaceToFlat, unfoldFaceReport, unfoldSolidToFlat, unfoldSolidReport).
  • Draco geometry compression knobs for glTF/GLB export (useDraco, dracoCompressionLevel) on assembly and STEP→glTF conversions.
  • Updated OpenAPI docs to match.

Decomposed mesh normalization

The decomposed-mesh format used to represent meshed solids across the bitbybit ecosystem is now normalized to consistent camelCase fields (e.g. vertexCoord, edgeIndex), making it a clean, file-friendly representation. Drawing now natively detects and renders decomposed meshes (detectDecomposedMesh / detectDecomposedMeshes), and C++/native drawing of OCCT shapes is wired up.

Potentially breaking: decomposed-mesh was internal construct, but if you consumed decomposed-mesh objects directly, snake_case fields like vertex_coord / edge_index are now vertexCoord / edgeIndex.

🛠️ Fixes & improvements

  • Cache helper no longer chokes on large STEP files.
  • create-app scaffolder and Vite/cloud templates bumped to 1.1.0.

Docs

  • learn.bitbybit.dev (Docusaurus) updates, fixed learn icons, and refreshed OpenAPI/CAD-Cloud reference docs.
  • Updated runnable examples across frameworks.
  • Refreshed language resources across all supported locales.

1.0.2

Choose a tag to compare

@matas-bitbybit-dev matas-bitbybit-dev released this 25 May 10:28
7579ec0

v1.0.2 Release Notes

  • occt step -> gltf with draco compression, improvements in speed, additional options
  • occt worker throws errors even if body is too big

1.0.1

Choose a tag to compare

@info-bitbybit-dev info-bitbybit-dev released this 22 May 15:21
5cbf651

v1.0.1 Release Notes

  • Improved OCCT build performance
  • Improvements to STEP -> Gltf translator
  • Update to BabylonJS 9.8.0

1.0.0

Choose a tag to compare

@matas-bitbybit-dev matas-bitbybit-dev released this 08 May 14:43
a27068b

v1.0.0 Release Notes

After nearly 100 releases in the 0.x.x range, Bitbybit reaches version 1.0.0. This release consolidates the work done across three release candidates (rc.0, rc.1, rc.2) and represents a ground-up rebuild of the project's CAD foundation.

Blog Post

New CAD Kernel: OCCT 8

The most significant change in v1.0.0 is the removal of the OpenCascade.js dependency and a complete rebuild directly on top of the native OCCT C++ library. OpenCascade.js was ahead of its time but is no longer actively maintained, so a more sustainable path was needed.

Bitbybit now ships with OCCT v8.0, the latest version of OpenCascade Technology. This upgrade brings measurable improvements to filleting, boolean operations, and many other core algorithms. All unit tests pass, and both open-source examples and commercial B2B projects continue to function without loss of functionality.

Three OCCT build variants are available to match different performance needs:

  • 32-bit - broadest compatibility, works on all browsers and mobile devices
  • 64-bit - supports models up to 16 GB of memory
  • 64-bit multi-threaded - maximum performance for complex operations

STEP Assembly Support

A toolkit for working with STEP assemblies in the browser. You can now load, create, inspect, and export multi-part CAD assemblies without desktop software.

Assembly Manager (occt.assembly.manager)

Build and export assembly documents with methods for creating parts, assembly nodes, instance nodes, and complete structures. Load STEP files (including compressed STEP-Z), set colors and names on labels, and export to both STEP and GLTF/GLB formats.

Assembly Query (occt.assembly.query)

Inspect assembly documents: list all parts, get the full hierarchy tree, extract shapes by label, read colors and transforms, and retrieve detailed label metadata.

IO Enhancements

  • convertStepToGltf - convert STEP files to GLTF/GLB in a single call, preserving hierarchy, names, colors, and transforms
  • convertStepToGltfAdvanced - same conversion with fine-grained control over reading, meshing, and export options
  • parseStepToJson - parse a STEP file to JSON for quick inspection without full geometry processing

Color Preservation

Standard STEP exports lose color data. Bitbybit uses OCCT's XCAF framework to embed colors into assembly structures. Models exported from Bitbybit retain their colors when opened in FreeCAD or other CAD software.

CAD Cloud TypeScript SDK (@bitbybit-dev/cad-cloud-sdk)

A new standalone npm package for integrating Bitbybit's managed cloud CAD servers into any TypeScript backend (Node.js, Hono/Cloudflare Workers, Deno, Bun). API keys stay on the server and are never exposed in frontend code.

Lear more:
https://learn.bitbybit.dev/api/cloud-api

SDK Capabilities

Namespace Description
client.models Submit parametric model jobs (single and batch), poll for results
client.cad Execute raw CAD operations, run pipelines, and compounds
client.convert STEP-to-glTF conversion with simple and advanced tessellation controls
client.files Upload files via presigned URLs, manage uploaded assets
client.tasks Poll, list, and cancel running tasks

Learn more:
https://learn.bitbybit.dev/api/sdk/typescript/intro

Pipelines

Chain multiple CAD operations in a single request using step references ($ref:N), file inputs ($file:N), iteration (map with $item/$index), and branching (choice). Pipelines can be built with the type-safe SDK step() helper or visually in Bitbybit Studio.

Learn more:
https://learn.bitbybit.dev/api/sdk/typescript/pipelines

Client-Side Validation

Most requests are validated against JSON Schema before hitting the network. This catches parameter errors, saves compute time, and throws a structured BitbybitValidationError with detailed paths to invalid fields. Enabled by default.

Example Projects

Five backend examples ship with a shared React 19 + Vite + Three.js frontend:

Example Stack
hono-rest Hono (Cloudflare Workers) — raw fetch
hono-sdk Hono (Cloudflare Workers) — SDK
nodejs-rest Express 5 — raw fetch
nodejs-sdk Express 5 — SDK
dotnet-rest ASP.NET Core (.NET 10) — HttpClient

Learn More:
https://github.com/bitbybit-dev/bitbybit/tree/master/examples/api

Rendering Engine Updates

All three supported rendering engines have been updated to their latest major versions:

  • BabylonJS 9.6.0 — major engine upgrade from 8.x, bringing the new rendering architecture and many performance improvements
  • Three.js 0.184.0 — updated from 0.182.0
  • PlayCanvas 2.18.1 — updated from 2.15.1

New Features

Arithmetic Expression Evaluator

bitbybit.math.evalArithmetic evaluates arithmetic expressions (+, -, *, /, parentheses) using the shunting-yard algorithm.

New Spiral Algorithms

  • createTaperedHelixWire - helixes with varying radius
  • createHelixWireByTurns - helixes defined by turn count
  • createFlatSpiralWire - flat spirals (e.g., watch springs)

OCCT Torus Solid

A proper torus solid primitive is now available in the OCCT shape library.

Custom CDN URL Propagation

The cdnUrl option is now forwarded to OCCT and Manifold web workers, fixing WASM loading for self-hosted or custom CDN deployments.

STEP-to-glTF Core Runner Example

A standalone HTML example demonstrates client-side STEP-to-glTF conversion using the Bitbybit Core Runner with no rendering engine required.

Breaking Changes

Edge Indexing Is Now Zero-Based

Edge indexing previously started at 1. It is now zero-based, consistent with standard programming conventions. All projects that reference edges by index must be updated.

Direct OCCT WASM API Changes

Projects using the @bitbybit-dev/occt layer directly and interacting with WASM builds will encounter significant API changes. Usage via the official exported API functions (occt-worker or game-engine-specific packages) is strongly recommended, as this is the only surface guaranteed to remain mostly stable.

Published Packages

  • @bitbybit-dev/base
  • @bitbybit-dev/occt
  • @bitbybit-dev/occt-worker
  • @bitbybit-dev/manifold-worker
  • @bitbybit-dev/jscad-worker
  • @bitbybit-dev/core
  • @bitbybit-dev/babylonjs
  • @bitbybit-dev/threejs
  • @bitbybit-dev/playcanvas
  • @bitbybit-dev/create-app
  • @bitbybit-dev/cad-cloud-sdk (new)

1.0.0-rc.2

Choose a tag to compare

@matas-bitbybit-dev matas-bitbybit-dev released this 06 May 12:48
4af6d71

1.0.0-rc.2 Release Notes

Highlights

This release introduces the @bitbybit-dev/cad-cloud-sdk - a type-safe TypeScript SDK for the Bitbybit CAD Cloud API. It upgrades the geometry kernel to OCCT v8.0 beta 2, updates all three rendering engines to their latest versions, adds a safe arithmetic expression evaluator, and passes custom CDN URLs through to web workers for correct WASM loading.


CAD Cloud TypeScript SDK (@bitbybit-dev/cad-cloud-sdk)

A new standalone npm package that lets you integrate Bitbybit's managed cloud CAD servers into any TypeScript backend (Node.js, Hono/Cloudflare Workers, Deno, Bun, etc.). Your API key stays on the server - never exposed in frontend code.

Learn more: https://learn.bitbybit.dev/api/sdk/typescript/intro

SDK Capabilities

Endpoint Description
client.models Submit parametric model jobs (single & batch), poll for results
client.cad Execute raw CAD operations, run pipelines, and compounds
client.convert STEP → glTF conversion (simple & advanced tessellation controls)
client.files Upload files via presigned URLs, manage uploaded assets
client.tasks Poll, list, and cancel running tasks

Pipelines

Chain multiple CAD operations in a single request with step references ($ref:N), file inputs ($file:N), iteration (map with $item/$index), and branching (choice). Build them via the type-safe SDK step() helper or visually in Bitbybit Studio.

Learn more: https://learn.bitbybit.dev/api/sdk/typescript/pipelines

Client-Side Validation

All requests are validated against JSON Schema before hitting the network (enabled by default). This catches parameter errors instantly, saves compute time, and throws a structured BitbybitValidationError with detailed paths to invalid fields.

Learn more: https://learn.bitbybit.dev/api/sdk/typescript/validation

Example Projects (5 backends + shared frontend)

Backend Stack
hono-rest Hono (Cloudflare Workers) — raw fetch
hono-sdk Hono (Cloudflare Workers) — SDK
nodejs-rest Express 5 — raw fetch
nodejs-sdk Express 5 — SDK
dotnet-rest ASP.NET Core (.NET 10) — HttpClient

All share a single React 19 + Vite + Three.js frontend demonstrating model generation, batch generation, pipelines (translate → union → fillet, map, choice), and file upload + conversion.


New Base

OCCT v8.0 beta 2

OpenCASCADE Technology v8 has reached stable beta - no further functional changes are expected. Bitbybit now ships the latest OCCT v8 beta 2 WASM builds across all variants (32-bit, 64-bit, 64-bit multi-threaded).

BabylonJS 9.5.1

Jumps from BabylonJS 8.x to 9.5.1. This is a major engine upgrade bringing the new rendering architecture, performance improvements, and many new features.
https://forum.babylonjs.com/t/welcome-to-babylon-js-9-0/62940

Three.js 0.184.0

Updated from 0.182.0.
https://github.com/mrdoob/three.js/releases/tag/r184

PlayCanvas 2.18.1

Updated from 2.15.1.
https://github.com/playcanvas/engine/releases/tag/v2.18.1


New Features

Safe Arithmetic Expression Evaluator (bitbybit.math.evalArithmetic)

A new method in @bitbybit-dev/base that safely evaluates simple arithmetic expressions (+, -, *, /, parentheses) using the shunting-yard algorithm.

bitbybit.math.evalArithmetic({ expression: "(3+2)*4" }); // → 20

STEP → glTF Core Runner Example

A new standalone HTML example (examples/runner/core/step-gltf/) demonstrates client-side STEP-to-glTF conversion using the Bitbybit Core Runner - no rendering engine required. Users can upload STEP/STPZ files and download the converted GLB directly.

Custom CDN URL Propagation to Workers

The cdnUrl option is now properly forwarded to OCCT and Manifold web workers so they can override GlobalCDNProvider before loading WASM. Previously the CDN URL was hardcoded inside workers, which broke self-hosted or custom CDN deployments.


Documentation

  • Full OpenAPI reference docs generated from schemas
  • New SDK documentation pages: Intro, Models, Pipelines, Tasks, Conversion, CAD Operations, Validation, Files
  • Worker protocol internals documentation
  • Bitbybit Runner licensing page
  • New blog posts

All Published Packages (1.0.0-rc.2)

  • @bitbybit-dev/base
  • @bitbybit-dev/occt
  • @bitbybit-dev/occt-worker
  • @bitbybit-dev/manifold-worker
  • @bitbybit-dev/jscad-worker
  • @bitbybit-dev/core
  • @bitbybit-dev/babylonjs
  • @bitbybit-dev/threejs
  • @bitbybit-dev/playcanvas
  • @bitbybit-dev/cad-cloud-sdk (new)

1.0.0-rc.1

Choose a tag to compare

@matas-bitbybit-dev matas-bitbybit-dev released this 05 Feb 08:19
63dc317

STEP Assembly Support

Overview

This release focuses on STEP assembly support - a complete toolkit for loading, creating, inspecting, and exporting multi-part CAD assemblies in the browser. You can now work with professional engineering files that contain multiple components, part hierarchies, and color information, all without leaving your web application.

New Features

Assembly Module (occt.assembly)

A new module for working with STEP assembly documents. It's split into two sub-modules:

Manager (occt.assembly.manager)

Build and export assembly documents:

  • createPart - Define a part with a shape, name, and optional color
  • createAssemblyNode - Create a container node for grouping parts
  • createInstanceNode - Place a part at a specific position with translation, rotation, and scale
  • createPartUpdate - Update an existing part's shape, name, or color
  • combineStructure - Combine parts and nodes into a complete assembly structure
  • buildAssemblyDocument - Build the XCAF document from a structure definition
  • loadStepToDoc - Load a STEP file into an OCCT document (supports STEP-Z compression)
  • setLabelColor - Change a label's color in an existing document
  • setLabelName - Rename a label in an existing document
  • exportDocumentToStep - Export to STEP format with optional gzip compression
  • exportDocumentToGltf - Export to GLTF/GLB format for web viewing

Query (occt.assembly.query)

Inspect and extract data from assembly documents:

  • getDocumentParts - List all parts and assemblies in a document
  • getAssemblyHierarchy - Get the full hierarchy tree with all nodes
  • getShapeFromLabel - Extract a specific shape by its label (e.g., 0:1:1:3)
  • getLabelColor - Get a label's RGBA color values
  • getLabelTransform - Get an instance's position, rotation, and scale
  • getLabelInfo - Get detailed metadata about a label (type, flags, children)

IO Enhancements (occt.io)

New methods for STEP-to-GLTF conversion:

  • convertStepToGltf - Convert STEP files to GLTF/GLB format in a single call. Uses OCCT's native RWGltf_CafWriter for maximum performance with full preservation of hierarchy, names, colors, and transforms.
  • convertStepToGltfAdvanced - Same conversion with fine-grained control over STEP reading options, mesh generation settings, and GLTF export options. Use this for performance tuning.
  • parseStepToJson - Parse a STEP file and return the assembly structure as JSON without full geometry processing. Nice way to inspect what's in a file.

Color Preservation

Standard STEP exports lose color information. This release uses OCCT's XCAF (Extended CAD Application Framework) to embed colors into assembly structures. When you export a colored model from Bitbybit and open it in FreeCAD, the colors are preserved.

Visual Programming Support

All new methods are available as Rete and Blockly components too. The hierarchy preview component shows the assembly tree and lets you click on any item to see its label.

Use Cases

  • Load STEP assemblies from CAD software and display them in the browser
  • Parse assembly hierarchies to understand part structure and relationships
  • Extract individual parts for selective visualization or customization
  • Build parametric assemblies from scratch with algorithmic geometry
  • Export to GLTF for web viewers, games, or AR applications
  • Export to STEP with colors preserved for downstream CAD work
  • Create product configurators that generate professional CAD files

Memory Considerations

Large assemblies require significant memory. The standard 32-bit build supports up to 2GB. For complex models, use the 64-bit version which supports up to 16GB.

Documentation

Blog Post

Tutorials

1.0.0-rc.0

Choose a tag to compare

@matas-bitbybit-dev matas-bitbybit-dev released this 21 Jan 19:41
305bf03

🎉 Bitbybit v1.0.0 - Release Candidate 0

It is great to announce version 1.0.0 Release Candidate 0.
After almost 100 releases in the 0.x.x range, version 1.0.0 is finally coming to life.

Although OpenCascade.js was ahead of its time, its development has stalled and it is no longer actively supported by its authors. As a result, v1.0.0 removes the dependency on the OCC.js layer and rebuilds the Bitbybit core directly on top of the OCCT C++ library, while keeping the existing API almost entirely intact.

The majority of existing projects are expected to continue working with v1.0.0. For specific migration details, refer to the sections below.


OCCT at the Core

In addition to the migration to native OCCT, OCCT 8.0.0 Release Candidate 3 has been adopted, which has proven to be highly stable during testing.

  • All unit tests pass
  • Both open-source and proprietary commercial projects developed for B2B customers continue to function without any apparent loss of functionality or stability
  • Noticeable improvements in performance and reliability of CAD operations have been observed

What’s New?

  • OCCT 8.0.0 Release Candidate 3 core
  • New OCCT build architectures:
    • 32-bit
    • 64-bit
    • 64-bit multi-threaded
  • Custom OCCT bindings built and optimized specifically for Bitbybit.dev
  • NPX-based scaffolding now allows selection between:
    • PlayCanvas, Three.js, and Babylon.js
    • OCCT architecture variants: 32 | 64 | 64-mt
  • New runners
  • New spiral algorithms:
    • createTaperedHelixWire
    • createHelixWireByTurns
    • createFlatSpiralWire
  • New OCCT solid type: torus
  • New Bitbybit CDN
    (migrated away from JSDelivr for practical and reliability reasons)
  • BabylonJS v8.46.2
  • PlayCanvas v2.15.1

Breaking Changes

  • Edge indexing is now zero-based
    Indexing previously started at 1, which was an early design decision. All projects must be updated accordingly during migration.
  • Projects using OCCT algorithms via:
    • occt-worker, or
    • game engine–specific NPM packages
      are unlikely to encounter additional API changes.
  • Projects using the @bitbybit-dev/occt layer directly and interacting with WASM builds will encounter significant API changes.
    Usage via the official exported API functions is strongly recommended, as this is the only surface guaranteed to remain stable across future versions.

0.21.1

Choose a tag to compare

@matas-bitbybit-dev matas-bitbybit-dev released this 14 Jan 12:59
e3d9756

We now support command for fast bitbybit app scaffolding:

npx @bitbybit-dev/create-app my-awesome-project

What’s new in this release

  • AI prompt context files for each supported game engine
  • Significantly simplified application initialization
  • Worker files and kernel initialization functions are no longer required
  • Each game engine now includes a default scene initialization to simplify CAD app startup
  • Added llms.txt to the documentation
  • Expanded documentation with new pages, blog posts, and dedicated sections for npx and AI

What's Changed

Full Changelog: v0.21.0...v0.21.1

0.21.0

Choose a tag to compare

@matas-bitbybit-dev matas-bitbybit-dev released this 07 Jan 14:11
ae822bd

Announcing PlayCanvas Integration 🎉

We're excited to announce that PlayCanvas has joined the family of supported Bitbybit game engines! PlayCanvas is now officially supported alongside Three.js and Babylon.js, giving you more flexibility in choosing the right engine for your 3D CAD applications.

Learn more: Visit our PlayCanvas support blog post


New Features & Improvements

PlayCanvas Support

  • Draw OCCT, Manifold, JSCAD shapes with faces and edges in PlayCanvas
  • Orbit camera implementation for PlayCanvas
  • Full integration with Bitbybit CAD shapes such as points, lines, polylines, curves as PlayCanvas entities

Rendering Enhancements

  • Face direction visualization: When drawing OCCT, Manifold, and JSCAD shapes in all engines, faces are now rendered on the negative side by default with blue color for better visibility. This helps identify positive vs. negative face orientation, which is crucial for OpenCascade geometry construction. Can be disabled via the drawTwoSided property in drawing options.
  • Arrow rendering: Added arrow rendering option for polylines across all game engines, useful for visualizing edge and wire direction in OCCT.
  • Multi-color support: Introduced multi-color rendering for polylines and points.
  • Optimized point rendering: Point rendering is now significantly more efficient across all engines, utilizing thin instances technique.
  • Verb surface rendering: Fixed rendering issues for Verb surfaces on all engines.

Materials & Textures

  • Cross-engine materials: New generic API for creating textures and PBR materials that work consistently across all game engines. Materials created in Babylon.js visual programming editors can now be exported to PlayCanvas with matching appearance.
  • Note: While parameters and colors are set identically, final rendering may vary slightly due to engine-specific rendering pipelines.

Gaussian Splatting (3DGS)

  • Scale in place: Implemented scaleInPlace method as the recommended approach for scaling Gaussian Splatting meshes. The old scale method flips geometry on the Y-axis and is now not considered best practice. Reference
  • Shadow support: Added transparencyShadow property to directional and point lights. When enabled, 3DGS Gaussian Splat meshes now generate shadows.

Manifold Kernel

  • Cross-sections: Added ability to create cross-sections from lists of points in the Manifold kernel.

Documentation

Comprehensive runner documentation is now available for all supported engines:

What's Changed

Full Changelog: v0.20.14...v0.21.0