William PoolIndustrial automation & IT/OT convergence
ENFR
All projects

01Personal project · 2026

Palletising robot cell — digital twin

An interactive digital twin of a KUKA palletising cell: real robot CAD, closed-form kinematics, a KRL-style program, cell I/O and a safety chain, all running in the browser.

  • Axes6 + gripper
  • Cycle≈ 8 s / crate
  • Model39 MB → 1.1 MB
RoleDesign and development, from CAD conversion to cell logic
ContextPersonal project · 2026
Stack
  • three.js
  • TypeScript
  • Inverse kinematics
  • KRL
  • OpenCascade
  • glTF
  1. 01STEPNX export, 39 MB
  2. 02OpenCascadetessellation, normals
  3. 03Per-axis splitjoint axes measured
  4. 04glTF + meshopt1.1 MB
  5. 05three.jsIK · program · I/O
Fig. 01.1 — From CAD to a running cell

Why

A portfolio says “robotics”; a running cell shows it. The goal was a cell a visitor can actually operate: start it, stop it, jog the axes and trip the safety chain — with behaviour that matches what happens on a real machine.

Kinematics

The six joint axes were measured directly on the cylindrical bearing faces of the STEP file (A2 at 330 / 1345 mm, A3 1350 mm above, 115 mm wrist offset, 1420 mm forearm, 240 mm flange). The model is split per axis and re-expressed around each joint.

Inverse kinematics is solved in closed form for a vertical tool, with A6 holding the crate orientation. Motions are PTP (synchronous joint interpolation) or LIN (Cartesian, IK every frame), with minimum-jerk profiles and a program override.

Cell logic

  • Accumulating roller conveyor with photo-eye and pneumatic stopper.
  • 3 / 4 / 3 interlocked layer pattern on a 1200 × 800 Euro pallet, with clearance for the side-clamp gripper.
  • Automatic pallet exchange through a muted light curtain while the robot waits at HOME.
  • A KRL-style program, I/O image and stack light all driven by the same state machine.

Safety

  • E-stop: stop category 0, latched until reset.
  • Interlocked door: protective stop in AUTO, restart requires a new start command.
  • T1: manual jog at reduced speed, gripper locked while a load is held.

▶Try it

A palletising cell, running live in your browser

Preparing the 3D cell