Add Primitive
Transform
Boolean (A=0, B=1)
Scene
Objects: loading...
File

User Guide

Getting Started

A parametric 3D modeler running entirely in your browser using WebGPU. Create primitives, combine them with boolean operations, and export your designs as JSON.

Initial scene

Adding Primitives

Use the Add Primitive section to create shapes. Set the Size parameter first, then click a shape button:

  • Cube — box with the given edge length
  • Sphere — sphere with the given radius
  • Cylinder — radius = size/2, height = size
  • Torus — major radius = size, tube radius = size * 0.3

Each new object gets a distinct color and is added to the scene list.

Multiple primitives

Transforms

Select an object by its index number, then set dx/dy/dz values and click Move Selected to translate it in 3D space.

Translate object

Boolean Operations

Combine two objects using CSG (Constructive Solid Geometry):

  • Union — merge two solids together
  • Subtract — cut object B from object A
  • Intersect — keep only the overlapping volume

Enter the object indices for A and B, then click the operation. The originals are replaced with the result.

Boolean subtract

Scene Management

The Scene section shows all objects by index. The selected object is marked with *.

  • Delete Sel. — remove the selected object
  • Clear All — remove everything

Save / Load

Your designs are saved as JSON files containing the full B-Rep (boundary representation) data.

  • Save JSON — downloads a .json file
  • Load JSON — opens a file picker to restore a saved scene

The JSON format preserves exact geometry — no tessellation loss.

Camera Controls

InputAction
Left dragRotate camera
Scroll / pinchZoom in/out
Right-click dragMove light source
Touch (1 finger)Rotate camera
Touch (2 finger pinch)Zoom in/out

Video Lessons

Short walkthrough videos showing each feature in action:

Keyboard Shortcuts

Coming soon — keyboard shortcuts for common operations.

Screenshots and videos auto-generated by Playwright tests. Run task test:screenshots or task test:lessons to update.