|
| 1 | +--- |
| 2 | +slug: bitbybit-v1-release-candidate-0 |
| 3 | +title: "Bitbybit v1.0.0 Release Candidate 0 - A New Foundation for 3D CAD on the Web" |
| 4 | +authors: [ubarevicius] |
| 5 | +tags: [bitbybit, cad, occt, release] |
| 6 | +description: "After nearly 100 releases in the 0.x.x range, version 1.0.0 Release Candidate 0 is now available. This milestone brings a completely rebuilt core on top of native OCCT, significant performance improvements, and exciting new features." |
| 7 | +--- |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +After nearly **100 releases** in the 0.x.x range, **version 1.0.0 Release Candidate 0** is now available. This is a huge milestone for Bitbybit and represents extensive engineering work to set the project on a solid foundation for years to come. |
| 12 | + |
| 13 | +<!--truncate--> |
| 14 | + |
| 15 | +## Why This Release Matters |
| 16 | + |
| 17 | +When Bitbybit was first built, it relied on **OpenCascade.js** as a bridge to access the powerful OCCT CAD kernel from JavaScript. It was an impressive project that was genuinely ahead of its time. However, its development has stalled and it's no longer actively maintained. A more sustainable path forward was needed. |
| 18 | + |
| 19 | +With v1.0.0, the Bitbybit core has been completely rebuilt **directly on top of the native [OCCT C++](https://github.com/Open-Cascade-SAS/OCCT) library**. This wasn't just a dependency swap—it was a fundamental rearchitecting of how Bitbybit interfaces with one of the world's most powerful open-source CAD kernels. The good news? The existing API remains almost entirely intact, so the vast majority of existing projects should continue working with minimal changes. |
| 20 | + |
| 21 | +## OCCT 8.0.0 at the Core |
| 22 | + |
| 23 | +This release doesn't just migrate to native OCCT - it adopts **version 8.0.0 Release Candidate 3**, the latest version of OpenCascade Technology. During extensive testing, this new version has proven to be remarkably stable. All unit tests pass, both open-source examples and proprietary commercial projects built for B2B customers continue to work without any apparent loss of functionality, and noticeable improvements in both performance and reliability have been observed across the board. |
| 24 | + |
| 25 | +This is a significant upgrade. OCCT 8.0.0 brings improvements to filleting, boolean operations, and many other core CAD algorithms that Bitbybit users rely on every day. |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | +## What's New in This Release |
| 30 | + |
| 31 | +Beyond the core migration, this release is packed with new features and improvements. |
| 32 | + |
| 33 | +There are now **three different OCCT build architectures** to match your performance needs: a 32-bit build for compatibility accross all browsers and mobile devices, a 64-bit build for handling larger models, and a 64-bit multi-threaded build for maximum performance on complex operations. You can choose between these variants when scaffolding new projects with our NPX tool. |
| 34 | + |
| 35 | +Speaking of scaffolding, the `npx @bitbybit-dev/create-app` CLI now lets you select not just your preferred 3D engine (PlayCanvas, Three.js, or Babylon.js), but also which OCCT architecture variant you want to use: `32`, `64`, or `64-mt`. |
| 36 | + |
| 37 | +**New spiral algorithms** for wire creation have been added. The `createTaperedHelixWire`, `createHelixWireByTurns`, and `createFlatSpiralWire` methods open up new possibilities for springs, decorative elements, and architectural features. And for those who've been asking—yes, there's finally a proper **torus solid** primitive in OCCT. |
| 38 | + |
| 39 | +On the infrastructure side, a **new Bitbybit CDN** has been launched at `git-cdn.bitbybit.dev`. The migration away from JSDelivr was done for practical and reliability reasons, providing more control over asset delivery and ensuring consistent availability for production applications. |
| 40 | + |
| 41 | +The 3D engine dependencies have also been updated: **BabylonJS v8.46.2** and **PlayCanvas v2.15.1** are now included in the latest runners. |
| 42 | + |
| 43 | +## Breaking Changes to Be Aware Of |
| 44 | + |
| 45 | +While significant effort went into maintaining API compatibility, there are a few changes you'll need to address when migrating. |
| 46 | + |
| 47 | +The most notable one is that **edge indexing is now zero-based**. Previously, edge indices started at 1, which was an early design decision that didn't align with standard programming conventions. All projects that reference edges by index will need to be updated—just subtract 1 from your existing edge indices. |
| 48 | + |
| 49 | +If you're using OCCT through our high-level APIs—via `occt-worker` or the game engine-specific NPM packages like `@bitbybit-dev/threejs`, `@bitbybit-dev/babylonjs`, or `@bitbybit-dev/playcanvas`—you're unlikely to encounter any additional API changes beyond the edge indexing. |
| 50 | + |
| 51 | +However, if you've been using the `@bitbybit-dev/occt` layer directly and interacting with WASM builds at a lower level, you will encounter more significant API changes. Using the official exported API functions is strongly recommended, as this is the only surface guaranteed to remain stable across future versions. |
| 52 | + |
| 53 | +## Migration Should Be Smooth |
| 54 | + |
| 55 | +Version 1.0.0 has been running internally across various projects and customer deployments. The transition has been remarkably smooth. Most projects require nothing more than updating package versions and adjusting edge indices where applicable. |
| 56 | + |
| 57 | +If you do run into any issues during migration, please reach out on Discord or open an issue on GitHub. We are here to help make the transition as painless as possible. |
| 58 | + |
| 59 | +## What's Next? |
| 60 | + |
| 61 | +This is Release Candidate 0, which means the final stretch before the official 1.0.0 release has begun. This period is dedicated to gathering feedback, catching any edge cases that might have been missed, and ensuring everything is rock solid before the final release. |
| 62 | + |
| 63 | +Your feedback during this phase is incredibly valuable. If you try the RC and find something that doesn't work as expected, please let us know. Every bug report helps us ship a better 1.0.0. |
| 64 | + |
| 65 | +## Get Started |
| 66 | + |
| 67 | +Ready to try v1.0.0 RC0? Update your dependencies to the release candidate version: |
| 68 | + |
| 69 | +```bash |
| 70 | +npm install @bitbybit-dev/core@rc @bitbybit-dev/occt@rc |
| 71 | +``` |
| 72 | + |
| 73 | +Or scaffold a fresh project with the new architecture options using the `@rc` tag: |
| 74 | + |
| 75 | +```bash |
| 76 | +npx @bitbybit-dev/create-app@rc my-v1-project |
| 77 | +``` |
| 78 | + |
| 79 | +Thank you to everyone who has supported Bitbybit over these nearly 100 releases. This milestone wouldn't have been possible without the community's feedback, bug reports, and enthusiasm. Here's to the next chapter! |
| 80 | + |
| 81 | +Happy coding! |
0 commit comments