← Kiran Kasuvosula

Case study · personal project · 2026

DigitalWork Instructions

Shop-floor assembly instructions are still mostly static PDFs with screenshots. I wanted to see how far a zero-install browser viewer could go: animated 3D steps, a part tree, and a mode an operator can use with gloves on.

The viewer showing a drone mid-assembly with the step list and part tree
Role
Sole designer & developer
Stack
Three.js · Vite · OpenCASCADE · glTF-Transform
Data
Public community CAD model, sample step text
Runs on
Any modern browser, desktop or tablet

The problem

A STEP assembly of a small aircraft is tens of megabytes of exact geometry. Browsers can't show that quickly, and operators don't need exact B-rep surfaces; they need to see which part goes where, in what order, with which tool.

Approach

  1. Convert once, at build time. OpenCASCADE (WebAssembly) tessellates the STEP file; the model is centred, rotated to Y-up and split by face colour so each part keeps an ID.
  2. Compress hard. glTF-Transform deduplicates, welds and simplifies meshes, then applies quantisation and meshopt compression.
  3. Describe steps as data. A small rules file groups parts into steps and gives each one text, tools, a check, an approach direction and a camera view.
  4. Make time the single source of truth. The whole animation is a pure function of time, so the slider can scrub forward and backward and every frame is reproducible.
  5. Design for the workbench. Shop-floor mode shows one step at a time in large type, with swipe and keyboard navigation.
STEP CADTessellateCompressStep rulesBrowser

Results

Tested with scripted real clicks (play, pause, step jumps, shop-floor mode, exit) and on phone-sized screens. The viewer also recovers if the browser drops the graphics context.

What I'd do next