FERRO

New · Remote-handling robot

Bomb disposal at arm’s length.

Five axes, four cameras and a console that shows where your command will put the arm before the radio gets it there.

Take the controlsSpec

Over a relay, you see the arm answer your command three quarters of a second after you give it.

FERRO draws the command at once, as a line. The arm follows it.

Live · three.js · simulated at 200 Hz

Take the controls

Drive FERRO round the yard and put the canister in the vessel, over a radio link you can make worse.

Lab 01

FERRO

Operator console

  1. 1Reach
  2. 2Grip
  3. 3Lift
  4. 4Place
  5. 00:00.0

Linking

— ms

—

2Mast

1.0×

3Gripper

4Drive

5Rear

Linking to FERRO

How it runs

FERRO is a tracked bomb-disposal robot, designed for this page and built by script in Blender: a 1.85 m arm on a turret, a gripper with its own camera, a mast camera that pans, tilts and zooms, and cameras front and back. The job in the yard: take the inert canister to the vessel.

The robot runs in a Web Worker at 200 steps a second, on the far side of a simulated radio. Commands go up 30 times a second and telemetry comes down 50 times a second, each way delayed, jittered and lossy as you set it. The console never sees the robot itself, only what came down the link.

Orange is intent. The ghost is the robot where your commands will put it once they arrive: the arm at the angles you sent, the hull run forward from its last report through the same drive limits. It fades as the robot catches up. It is the predictive display Bejczy, Kim and Venema built for teleoperation over a time delay at NASA’s Jet Propulsion Laboratory in 1990.

Faults are the robot’s, not the page’s. The E-stop goes on its own channel and stops it in 40 ms whatever the radio is doing; it stays stopped until you release it and reset. If no command arrives for half a second the robot holds, and when the link comes back it waits for you to acknowledge. A command more than a second old is thrown away. The shoulder is rated for 270 N m: too far out with the 23.5 kg canister and it won’t lift.

Controls

WS AD
Drive, turn
←→
Turret
↑↓
Reach out, in
RF
Raise, lower
QE ZX
Tilt and roll the gripper
G H
Grip, home
L V T
Gripper level, down; mast follows
Space Enter
E-stop; reset or acknowledge
1–5 C
Views; cut the link
Shift
Fine

In the twin, drag the orange ring to move the gripper and drag anywhere else to look round. In the mast camera, drag to aim and scroll to zoom; in the gripper camera, drag to move in its picture. Hold and drag a drive camera to drive. A gamepad works too.

Made of

Robot
An original design, after published photos of tracked bomb-disposal robots. Built by Python in Blender from one spec file: 103 parts, 96,568 triangles, 97 kg. Its reference sheet
Sim
TypeScript in a Web Worker: joints, tracks, grip by friction, payload, contact
Views
One WebGL2 canvas: the twin and four cameras, each with its lens, noise and the slices a lossy link drops
Light
Studio Small 09 and Overcast Industrial Courtyard, Poly Haven (CC0)
Tech
three.js, WebGL2, GLSL, Web Workers

Rendered · Blender Cycles

Up close

Renders of the robot as it was built: Cycles, frame by frame, every loop closing on itself.

  1. 01 The line Your command, drawn the moment you give it. Over a relay the arm gets there 0.76 s later.
  2. 02 Wrist Rolls 270° each way. The jaws open to 200 mm.
  3. 03 Deck M8 cap screws, driven home in 6.4 turns.
  4. 04 103 parts Built by script from one file of dimensions, every part free to move.
  5. 05 Track 56 shoes a side round a 228 mm sprocket.
  6. 06 Turret ±175°, at 40° a second.
  7. 07 Mast camera Pans ±170°, tilts from −80° to +40°, zooms from 62° to 6.5°.
  8. 08 E-stop On its own channel: stopped in 40 ms, whatever the radio is doing.

Spec

Every number comes from the one file the robot is built from, the same one the console’s simulation runs on.

Reach, from the turret
1.85 m
On its tracks, arm included
97 kg
Lifted at 1.17 m out
23.5 kg
Top speed on its tracks
1.2 m/s
Turret, shoulder, elbow, wrist pitch and roll, and the jaws
5+1 axes
Mast, gripper, drive and rear
4 cameras
FERRO’s reference sheet: front, side, top and section views with its dimensions in millimetres.
Reference sheet, drawn from the spec file. Open it
Brief
Make a bomb-disposal robot you could take the controls of in a browser, and launch it like a product. The hard part is the delay: over a radio relay every command arrives late, so the console shows where the arm is going before it gets there.
Client
FJERN, an imagined Copenhagen maker of remote-handling robots for bomb squads, fire and chemical crews. The company, the robot and the numbers are a concept. Fjern is Danish for remote, and for remove.
Role
Concept, identity, 3D, interface, motion and code.
Deliverables
The robot built by script; a live hero; eight Cycles loops; the operator console with its simulation; the reference sheet.
Model
Blender, built by Python from one file of dimensions: 103 parts, 96,568 triangles, every joint free to move. The loops are rendered from the same model in Cycles.
Live
The hero and the console on WebGL2. The robot runs in a Web Worker at 200 steps a second on the far side of a simulated radio; the line is a predictive display, after Bejczy, Kim and Venema at NASA’s Jet Propulsion Laboratory, 1990.
Tech
Blender, Python, Cycles, three.js, WebGL2, GLSL, Web Workers, React
Year
2026

A concept by Oliver Kure Olsen. Get in touch

Index 16 projects