Releases: bitbybit-dev/bitbybit
1.1.0
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,assemblyvalidateanddumpfor inspection/debuggingreconstruct/nodeOfShapeto 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
createWiresBetweenStartEndPointsOfWiresAndEdgescreateWiresBetweenSubdividedPointsOfWiresAndEdges- 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_indexare nowvertexCoord/edgeIndex.
🛠️ Fixes & improvements
- Cache helper no longer chokes on large STEP files.
create-appscaffolder 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
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
v1.0.1 Release Notes
- Improved OCCT build performance
- Improvements to STEP -> Gltf translator
- Update to BabylonJS 9.8.0
1.0.0
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.
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 transformsconvertStepToGltfAdvanced- same conversion with fine-grained control over reading, meshing, and export optionsparseStepToJson- 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 radiuscreateHelixWireByTurns- helixes defined by turn countcreateFlatSpiralWire- 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
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" }); // → 20STEP → 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
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 colorcreateAssemblyNode- Create a container node for grouping partscreateInstanceNode- Place a part at a specific position with translation, rotation, and scalecreatePartUpdate- Update an existing part's shape, name, or colorcombineStructure- Combine parts and nodes into a complete assembly structurebuildAssemblyDocument- Build the XCAF document from a structure definitionloadStepToDoc- Load a STEP file into an OCCT document (supports STEP-Z compression)setLabelColor- Change a label's color in an existing documentsetLabelName- Rename a label in an existing documentexportDocumentToStep- Export to STEP format with optional gzip compressionexportDocumentToGltf- 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 documentgetAssemblyHierarchy- Get the full hierarchy tree with all nodesgetShapeFromLabel- Extract a specific shape by its label (e.g.,0:1:1:3)getLabelColor- Get a label's RGBA color valuesgetLabelTransform- Get an instance's position, rotation, and scalegetLabelInfo- 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
- Introduction to Assemblies - Understand assembly concepts
- Convert STEP to GLTF - Export for web viewing
- Parse Assembly Structure - Navigate and extract parts
- Build and Export Assemblies - Create from scratch
- Export Shapes with Color - Preserve colors in exports
1.0.0-rc.0
🎉 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:
createTaperedHelixWirecreateHelixWireByTurnscreateFlatSpiralWire
- 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/occtlayer 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
We now support command for fast bitbybit app scaffolding:
npx @bitbybit-dev/create-app my-awesome-projectWhat’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
- added page dedicated to live unit test coverage by @matas-bitbybit-dev in #110
- Develop by @matas-bitbybit-dev in #111
- v0.21.1 by @matas-bitbybit-dev in #112
Full Changelog: v0.21.0...v0.21.1
0.21.0
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
drawTwoSidedproperty 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
scaleInPlacemethod 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
transparencyShadowproperty 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
- v0.21.0 by @matas-bitbybit-dev in #108
- Documentation adjustments for PlayCanvas integration, additional exaples, fixes, stackblitz script updates by @matas-bitbybit-dev in #109
Full Changelog: v0.20.14...v0.21.0
0.20.14
New
bitbybit.csv - now you can create and parse CSV files
- parseToArray - Parses CSV text to a 2D array of strings (rows and columns).
- parseToJson - Parses CSV text to an array of JSON objects using headers.
- parseToJsonWithHeaders - Parses CSV text to JSON using custom headers (ignores CSV headers if present).
- queryColumn - Queries CSV data by column/header name and returns all values in that column.
- queryRowsByValue - Queries CSV data and filters rows where a column matches a value.
- arrayToCsv - Converts a 2D array to CSV text.
- jsonToCsv - Converts an array of JSON objects to CSV text.
- jsonToCsvAuto - Converts an array of JSON objects to CSV text using object keys as headers.
- getHeaders - the headers from a CSV file.
- getRowCount - Gets the number of rows in a CSV file (excluding headers if specified).
- getColumnCount - Gets the number of columns in a CSV file.
bitbybit.math
- roundAndRemoveTrailingZeros - Rounds a number to specified decimal places and removes trailing zeros.
- clamp - Constrains a value between a minimum and maximum value.
- lerp - Linear interpolation between two values using parameter t (0 to 1).
- inverseLerp - Calculates the interpolation parameter t for a value between start and end (reverse of lerp).
- smoothstep - Hermite interpolation with smooth acceleration and deceleration (smoother than linear lerp).
- sign - Returns the sign of a number: -1 for negative, 0 for zero, 1 for positive.
- fract - Returns the fractional part of a number (removes integer part, keeps decimals).
- wrap - Wraps a number within a specified range (creates repeating cycle).
- pingPong - Creates a ping-pong (back-and-forth) effect that bounces a value between 0 and length.
- moveTowards - Moves a value toward a target by a maximum delta amount (never overshooting).
bitbybit.list
- getFirstItem - Gets the first item from the list.
- getLastItem - Gets the last item from the list.
- shuffle - Randomly rearranges all items in the list (using Fisher-Yates algorithm).
- includes - Checks whether the list contains a specific item.
- findIndex - Finds the position (index) of the first occurrence of an item in the list.
- removeFirstItem - Removes the first item from the list.
- removeLastItem - Removes the last item from the list.
- removeItemAtIndexFromEnd - Removes an item counting from the end of the list (index 0 = last item, 1 = second-to-last, etc.).
- removeDuplicates - Removes duplicate items from the list using strict equality comparison (works with any type).
- concatenate - Combines multiple lists into a single list by joining them end-to-end.
- interleave - Combines multiple lists by alternating elements from each list (first from list1, first from list2, second from list1, etc.).
bitbybit.text
- A lot of new methods that expose basic string behaviour and regex functionality
Other Improvements
- added possibility to remove trailing zeros from occt dimension values
- new asset handling methods
Bug fixes
- Fixed a bug where wire would be split incorrectly by using collection of points. Described here: #80
Manifold kernel
- general update to manifold-3d v3.3.2
Learn Docs
- improved homepage of https://learn.bitbybit.dev
- Additional festive decorations tutorials
BabylonJS
- updated to v8.42.0
ThreeJS
- updated to v0.182.0
Unit Tests
- Many new unit tests that improve overall coverage were written.
- OCCT Coverage Report https://tests.bitbybit.dev/occt/
- Base Coverage Report https://tests.bitbybit.dev/base/
- ThreeJS Coverage Report https://tests.bitbybit.dev/threejs/
What's Changed
- v0.20.13 by @info-bitbybit-dev in #105
- v0.20.13 by @matas-bitbybit-dev in #106
- v0.20.14 by @info-bitbybit-dev in #107
Full Changelog: v0.20.12...v0.20.14