Skip to content

Commit 271bad2

Browse files
step assembly support blog post, docs, update tags
1 parent 75e00a1 commit 271bad2

7 files changed

Lines changed: 334 additions & 232 deletions

File tree

docs/blog/2026-01-21-release-v1-rc0.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
slug: bitbybit-v1-release-candidate-0
33
title: "Bitbybit v1.0.0 Release Candidate 0 - A New Foundation for 3D CAD on the Web"
44
authors: [ubarevicius]
5-
tags: [bitbybit, cad, occt, release]
5+
tags: [bitbybit, cad, occt]
66
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."
77
---
88

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
---
2+
slug: step-assembly-support-v1-rc1
3+
title: "STEP Assembly Support: Load, Parse, and Export Professional CAD Files"
4+
authors: [ubarevicius]
5+
tags: [occt, assembly, step, gltf, cad, freecad]
6+
description: "Bitbybit v1.0.0-rc.1 introduces STEP assembly support - load complex CAD files, parse part hierarchies, extract components, preserve colors, and export to GLTF or STEP formats."
7+
image: https://ik.imagekit.io/bitbybit/app/assets/blog/step-assembly-support/step-assembly-support-occt-bitbybit.webp
8+
---
9+
10+
![Bitbybit STEP Assembly Support](https://ik.imagekit.io/bitbybit/app/assets/blog/step-assembly-support/step-assembly-support-occt-bitbybit.webp "Bitbybit STEP Assembly Support")
11+
12+
import Tabs from '@theme/Tabs';
13+
import TabItem from '@theme/TabItem';
14+
15+
If you've ever tried to load, edit or create a complex STEP assembly in a web browser, you know how tricky it can be. STEP is the standard format engineers use to share CAD models, but browsers don't understand it natively. You usually need desktop software or a server to convert it.
16+
17+
With **Bitbybit v1.0.0-rc.1**, that changes. You can now load STEP assemblies directly in the browser, explore their structure, extract individual parts, and export to web-friendly formats. Everything runs locally using Bitbybit OCCT WebAssembly.
18+
19+
<!-- truncate -->
20+
21+
## What Can You Do?
22+
23+
You can load a STEP file and see its full assembly tree, just like you would in FreeCAD or SolidWorks. Each part has a label (something like `0:1:1:3`) that you can use to extract that specific piece.
24+
25+
![FarmBot STEP Assembly of Soil Sensor in FreeCAD](https://ik.imagekit.io/bitbybit/app/assets/blog/step-assembly-support/freecad-step-assembly.webp "FarmBot STEP Assembly of Soil Sensor in FreeCAD")
26+
![FarmBot STEP Assembly of Soil Sensor in Bitbybit](https://ik.imagekit.io/bitbybit/app/assets/blog/step-assembly-support/farmbot-soil-sensor-step-assembly-in-bitbybit.webp "FarmBot STEP Assembly of Soil Sensor in Bitbybit")
27+
28+
Colors are parsed too. Regular STEP exports lose color data, but we use OCCT's XCAF format to embed colors into the assembly structure. This also works if users export a colored model from Bitbybit and open it in FreeCAD or other CAD software.
29+
30+
You can also convert assemblies to GLTF/GLB format for use in games, web viewers, or AR applications. And since everything happens in your browser, your files never leave your computer.
31+
32+
![Simple Workflow to convert STEP to GLTF](https://ik.imagekit.io/bitbybit/app/assets/blog/step-assembly-support/step-to-gltf-in-bitbybit-rete-editor.webp "Simple Workflow to convert STEP to GLTF")
33+
34+
## Parametric Scripts to STEP Assemblies
35+
36+
This is where the workflow really shines. You can build parametric geometry in Bitbybit - using visual programming or TypeScript - and export it directly to STEP format with colors preserved. Change a parameter, re-run the script, and download a new STEP file ready for manufacturing or further CAD work.
37+
38+
Imagine a product configurator where customers adjust dimensions, then download a professional CAD file they can send to a machine shop. Or a design tool that generates custom brackets based on user inputs. The geometry is created algorithmically, but the output is the same format that engineers use in SolidWorks or Fusion 360.
39+
40+
Furthermore - part instances and colors are supported, so users of third party CAD applications will be able to load these optimized assets in efficient manner.
41+
42+
![Create OCCT STEP Assembly in Bitbybit](https://ik.imagekit.io/bitbybit/app/assets/blog/step-assembly-support/create-occt-step-assembly-in-bitbybit.webp "Create OCCT STEP Assembly in Bitbybit")
43+
44+
![Open Bitbybit OCCT STEP Assembly in FreeCAD](https://ik.imagekit.io/bitbybit/app/assets/blog/step-assembly-support/bitbybit-assembly-opened-in-freecad-with-structure.webp "Open Bitbybit OCCT STEP Assembly in FreeCAD")
45+
46+
## Why Does This Matter?
47+
48+
Real products aren't single shapes. A bicycle has wheels, a frame, handlebars. An electronic device has a case, buttons, internal components. Engineers design each part separately, then assemble them digitally.
49+
50+
STEP files preserve this structure. When you load one, you get the full hierarchy of parts and sub-assemblies, along with names, colors, and positions. This is useful for building product configurators, design review tools, or documentation systems where you need to work with individual components.
51+
52+
## The API
53+
54+
There are two groups of methods. The **Manager** methods let you build and export assemblies: `createPart`, `createAssemblyNode`, `createInstanceNode`, `combineStructure`, `buildAssemblyDocument`, `exportDocumentToStep`, and `exportDocumentToGltf`.
55+
56+
The **Query** methods let you inspect existing documents: `getDocumentParts`, `getAssemblyHierarchy`, `getShapeFromLabel`, `getLabelColor`, `getLabelTransform`, and `getLabelInfo`.
57+
58+
![Create STEP Assemblies in Rete](https://ik.imagekit.io/bitbybit/app/assets/blog/step-assembly-support/occt-step-assembly-creation-components.webp "Create STEP Assemblies in Rete")
59+
60+
## Visual Programming
61+
62+
If you use Rete or Blockly, we've added components for all of this. The hierarchy preview is especially handy - it shows the assembly tree and lets you click on any item to see its label, which you can then use to extract that part.
63+
64+
## Your Files Stay Private
65+
66+
Everything runs in your browser. OCCT is compiled to WebAssembly, so parsing and exporting happens locally. Your files are never uploaded anywhere. This matters if you're working with proprietary designs.
67+
68+
:::warning Memory Note
69+
Large assemblies need memory. The standard build supports up to 2GB. For complex models, use the 64-bit version (up to 16GB).
70+
:::
71+
72+
## Tutorials
73+
74+
We have step-by-step tutorials to get you started:
75+
76+
- [Introduction to Assemblies](/learn/code/common/occt/assembly/intro) - the basics
77+
- [Convert STEP to GLTF](/learn/code/common/occt/assembly/step-to-gltf) - for web viewing
78+
- [Parse Assembly Structure](/learn/code/common/occt/assembly/assembly-structure) - explore parts
79+
- [Build and Export Assemblies](/learn/code/common/occt/assembly/create-assembly) - create from scratch
80+
- [Export Shapes with Color](/learn/code/common/occt/assembly/shape-to-step-with-color-assembly) - preserve colors
81+
82+
Each one has examples in Rete, Blockly, and TypeScript.
83+
84+
## Example: Load and Display a STEP Assembly
85+
86+
Here's the simplest workflow - load a STEP file and display it in the browser:
87+
88+
```typescript
89+
// Fetch the STEP file
90+
const stepData = await bitbybit.asset.fetchFile({
91+
url: "https://learn.bitbybit.dev/files/3d/Soil-Sensor.stpZ"
92+
});
93+
94+
// Convert to GLTF for display
95+
const glbData = await bitbybit.occt.io.convertStepToGltf({
96+
stepData,
97+
meshPrecision: 0.05
98+
});
99+
100+
// Load into the 3D scene
101+
await bitbybit.babylon.io.loadGlbFromArrayBuffer({
102+
glbData,
103+
fileName: "model.glb"
104+
});
105+
```
106+
107+
That's it - three function calls to go from a STEP file to 3D model in the browser.
108+
109+
## What's Next?
110+
111+
This is a release candidate. We're still adding features and improving coordinate system handling for different CAD conventions. If you find issues or have ideas, let us know on [Discord](https://discord.gg/GSe3VMe).
112+
113+
## Credits
114+
115+
The soil sensor model in our tutorials comes from [FarmBot](https://genesis.farm.bot/v1.5/Extras/cad.html), an open-source CNC farming robot. Their CAD files are public domain.
116+
117+
---
118+
119+
**Ready to try it?** Head to the [assembly tutorials](/learn/code/common/occt/assembly) and load your first STEP file.

docs/blog/tags.yml

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,89 @@
11
bitbybit:
22
label: Bitbybit
33
permalink: /bitbybit
4-
description: Blog posts about Bitbybit
4+
description: Platform updates, new features, and tutorials for the Bitbybit visual programming environment.
55

66
cloud:
77
label: Cloud
88
permalink: /cloud
9-
description: Blog posts about Cloud
9+
description: Cloud, server-side services, and scalable 3D workflows.
1010

1111
ai:
1212
label: AI
1313
permalink: /ai
14-
description: Blog posts about Artificial Intelligence
14+
description: Using AI assistants and machine learning with 3D modeling and CAD automation.
1515

1616
cad:
1717
label: CAD
1818
permalink: /cad
19-
description: Blog posts about Computer-Aided Design
19+
description: Computer-Aided Design techniques, precision modeling, and engineering workflows.
2020

2121
xr:
2222
label: XR
2323
permalink: /xr
24-
description: Blog posts about Extended Reality
24+
description: Extended Reality experiences combining AR, VR, and mixed reality with 3D content.
2525

2626
vr:
2727
label: VR
2828
permalink: /vr
29-
description: Blog posts about Virtual Reality
29+
description: Virtual Reality applications for immersive 3D visualization and interaction.
3030

3131
3d-bits:
3232
label: 3D Bits
3333
permalink: /3d-bits
34-
description: Blog posts about 3D Bits app for Shopify and its use cases
34+
description: Our Shopify app for embedding interactive 3D product configurators in online stores.
3535

3636
shopify:
3737
label: Shopify
3838
permalink: /shopify
39-
description: Blog posts about Shopify integrations via 3D Bits app
39+
description: E-commerce integrations, product visualization, and 3D configurators for Shopify stores.
4040

4141
case-study:
4242
label: Case Study
4343
permalink: /case-study
44-
description: Case studies related to Bitbybit, 3D Bits and Shopify
44+
description: Real-world examples of how businesses use Bitbybit and 3D Bits to solve problems.
4545

4646
fitness-equipment:
4747
label: Fitness Equipment
4848
permalink: /fitness-equipment
49-
description: Blog posts about fitness equipment industry and 3D visualization
49+
description: 3D visualization and configuration solutions for gym and fitness equipment retailers.
5050

5151
babylonjs:
5252
label: BabylonJS
5353
permalink: /babylonjs
54-
description: Blog posts about Babylon.js 3D engine
54+
description: Using the Babylon.js WebGL engine for real-time 3D graphics in the browser.
5555

5656
threejs:
5757
label: ThreeJS
5858
permalink: /threejs
59-
description: Blog posts about Three.js 3D library
59+
description: Working with Three.js for lightweight 3D scenes and custom rendering pipelines.
6060

6161
playcanvas:
6262
label: PlayCanvas
6363
permalink: /playcanvas
64-
description: Blog posts about PlayCanvas 3D engine
64+
description: PlayCanvas engine integration for game-like 3D experiences and interactive apps.
65+
66+
occt:
67+
label: OCCT
68+
permalink: /occt
69+
description: OpenCASCADE Technology - the open-source CAD kernel powering our geometry operations.
70+
71+
assembly:
72+
label: Assembly
73+
permalink: /assembly
74+
description: Working with multi-part CAD assemblies, hierarchies, and component structures.
75+
76+
step:
77+
label: STEP
78+
permalink: /step
79+
description: The ISO 10303 standard format for exchanging CAD data between different software.
80+
81+
gltf:
82+
label: GLTF
83+
permalink: /gltf
84+
description: The web-optimized 3D format for fast loading and rendering in browsers and apps.
85+
86+
freecad:
87+
label: FreeCAD
88+
permalink: /freecad
89+
description: Interoperability with FreeCAD, the popular open-source parametric CAD modeler.

docs/learn/code/common/occt/assembly/assembly-structure.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ This first example shows the basic workflow - loading a STEP file and extracting
8282

8383
## Parse more parts
8484

85-
Once you understand the basics, you can extract multiple parts and style them independently. This is where things get exciting you can create custom visualizations that highlight different components, use original colors from the CAD model, or apply your own color schemes.
85+
Once you understand the basics, you can extract multiple parts and style them independently. This is where things get exciting - you can create custom visualizations that highlight different components, use original colors from the CAD model, or apply your own color schemes.
8686

8787
### What's New in This Example?
8888

docs/learn/code/common/occt/assembly/shape-to-step-with-color-assembly.mdx

Lines changed: 7 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -18,61 +18,19 @@ import BitByBitRenderCanvas from '@site/src/components/BitByBitRenderCanvas';
1818
alt="OCCT category icon with a stylized logo representation"
1919
title="OCCT category icon" />
2020

21-
Standard STEP files store only geometry — no color information. To preserve colors, you need to use the assembly document structure. This was one of our most requested features, and it's finally available!
21+
When you export a shape to a regular STEP file, it loses all color information. The geometry is preserved, but open that file in FreeCAD or Fusion 360 and everything will be gray. That's just how STEP files work.
2222

23-
## Why Colors Require Assemblies
23+
To keep colors, you need to wrap your shapes in an assembly document. This uses OCCT's XCAF format, which stores both geometry and appearance data. It's an extra step, but it means your colors will show up correctly in other CAD software.
2424

25-
The XCAF (Extended CAD Application Framework) format used by OCCT can embed colors into assembly structures. By wrapping shapes in an assembly with color-assigned instances, you ensure colors transfer correctly to other CAD applications.
25+
## What This Example Does
2626

27-
## What These Scripts Do
27+
The scripts below create a "pod shell" shape and export it as a colored STEP file. The geometry part uses several OCCT operations (points, wires, faces, mirrors, fillets) to build an interesting 3D solid. But the important part for this tutorial is at the end.
2828

29-
The examples below demonstrate how to create a 3D shape in Bitbybit and export it as a STEP file with color information preserved. The exported file can then be opened in other CAD software like **FreeCAD**, **Fusion 360**, **SolidWorks**, or **Blender** with the assigned colors intact.
29+
Once we have the shape, we create an assembly structure around it. We define a part, put it inside an assembly, and assign it a white color. Then we export the whole thing to a `.stpZ` file (compressed STEP format). When you open that file in FreeCAD, the shape appears in white, just as we specified.
3030

31-
### Script Breakdown
31+
## Try It Yourself
3232

33-
**1. Scene Setup**
34-
- Configures directional lighting with shadows for realistic preview
35-
- Sets up a radial gradient background for visual appeal
36-
- Enables a hidden skybox to provide environment-based lighting
37-
38-
**2. Geometry Creation**
39-
The scripts build a "pod shell" shape through several OCCT operations:
40-
- **Points & Wires**: Defines 5 key points and creates 4 polygon wires connecting them
41-
- **Faces**: Converts wires into planar faces
42-
- **Face with Hole**: Offsets a wire inward, fillets the corners, reverses it, and uses it to create a face with a cutout
43-
- **Shell Assembly**: Sews all faces together into a single shell
44-
- **Mirror**: Duplicates the shell across the Z-axis to create symmetry
45-
- **Fillet Edges**: Rounds the sharp edges where the two halves meet
46-
- **Thick Solid**: Adds wall thickness to convert the shell into a solid
47-
48-
**3. Visual Rendering**
49-
- Creates a PBR (Physically Based Rendering) metallic material
50-
- Draws the solid with black edge outlines for better visibility
51-
52-
**4. Assembly & Color Assignment**
53-
This is where the color preservation happens:
54-
- **Create Part**: Registers the shape as a named part (`pod-shell`)
55-
- **Create Assembly Node**: Creates a container for organizing parts (`Pod Assembly`)
56-
- **Create Instance Node**: Places the part in the assembly with a **white color** (RGB: 1, 1, 1)
57-
- **Combine Structure**: Merges parts and nodes into a complete assembly structure
58-
- **Build Document**: Generates the XCAF document that stores shapes with their colors
59-
60-
**5. STEP Export**
61-
- Exports the assembly document to a `.stpZ` file (compressed STEP format)
62-
- The file includes the white color assigned to the instance
63-
- When opened in FreeCAD or other CAD software, the shape will display with the correct color
64-
65-
### Why Use Assemblies for Color?
66-
67-
Standard STEP files store only geometry—no color information. However, the XCAF (Extended CAD Application Framework) format used by OCCT can embed colors into assembly structures. By wrapping your shape in an assembly with color-assigned instances, you ensure that:
68-
69-
- Colors transfer correctly to other CAD applications
70-
- You can assign different colors to different instances of the same part
71-
- The file structure is compatible with professional CAD software workflows
72-
73-
### Try It Yourself
74-
75-
Run the script, and a `pods.stpZ` file will download automatically. Open it in FreeCAD (File → Import), and you'll see the pod shape rendered in white—exactly as specified in the script.
33+
Run the script and a `pods.stpZ` file will download automatically. Open it in FreeCAD (File → Import) and you'll see the pod shape with its white color intact.
7634

7735
<Tabs groupId="rete-shape-with-color-to-step-export">
7836
<TabItem value="rete-shape-with-color-to-step-export" label="Rete">

docs/learn/code/common/occt/assembly/step-to-gltf.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ import BitByBitRenderCanvas from '@site/src/components/BitByBitRenderCanvas';
1818
alt="OCCT category icon with a stylized logo representation"
1919
title="OCCT category icon" />
2020

21-
This tutorial shows you how to convert STEP files to web-optimized GLTF/GLB format with all processing happening directly in your browser.
21+
This tutorial shows you how to convert STEP files to web-optimized GLTF/GLB format - with all processing happening directly in your browser.
2222

2323
## Why Export to GLTF?
2424

2525
STEP files preserve precise CAD geometry but aren't optimized for web viewing. GLTF (the "JPEG of 3D") loads quickly in browsers and 3D engines while preserving colors and structure from the original file.
2626

2727
## Browser-Based Conversion
2828

29-
All conversions happen **entirely in your browser** no files are uploaded to any cloud servers. This has important implications:
29+
All conversions happen **entirely in your browser** - no files are uploaded to any cloud servers. This has important implications:
3030

3131
### Privacy Advantage
3232
Your CAD files never leave your computer. While you do need to use Bitbybit editors to run these conversions, your files are processed locally and are not uploaded to any cloud servers. This is critical for confidential engineering data, proprietary designs, or any situation where data privacy matters.

0 commit comments

Comments
 (0)