EXP-059 · live demo
Crane Signals · Human + AI Interfaces

Peak swing told us nothing.

A gantry crane whose load hangs on a physics joint, so it behaves as a pendulum. We built it to fault trainees whose load swung too much, then measured what swing actually looks like. The swing during a traverse is the same every time. What is left at the end depends entirely on when you stop.

0.0DEG SWINGSignal · stop
Manual
Drag to orbit · scroll to zoom · Q hoist · A lower · ← → travel · space stop
Starting the physics…
Drive
Stop timing
Swing now
–
Peak during traverse
–
Left afterwards, amplitude
–
Pendulum period
2.10 s

How we built it

A load that keeps moving after the crane stops

  1. Hang the load, don't animate it

    The load is a dynamic body on a spherical joint beneath a kinematic trolley, solved by Rapier. Swing is not authored: it emerges from how the trolley is driven, which is the only way the exercise can teach anticipation.

  2. Read the signal from the hand

    In the full WebXR version the four signals — index up to hoist, index down to lower, index out to travel, flat palm to stop — are rules over hand-joint positions rather than a trained model, so each can be read and explained. This page drives the same rig with buttons and keys instead.

  3. Set a swing limit by eye, and get it wrong twice

    We assumed bad driving meant a load swinging wide, and set the fault at 18°. Nothing reached it. We recalibrated to 10° from readings taken as the crane changed phase, which looked like measurements but were not peaks. Then we quoted a residual figure that was worse still: the angle at the single frame a run ended, which samples a pendulum at whatever phase it happens to be in.

  4. Measure the amplitude, not the instant

    Residual swing is now the maximum angle over a full period after the signal stops. The difference is not academic. Ending a traverse at 1.10 s reads 0.19° at that instant, because the load is passing through vertical, while the swing it is actually carrying is 18.25°.

  5. The number that moves is stop timing

    Sweeping traverse length from 0.8 s to 3.0 s, the peak swing during the move is 9.76° every single time: it is set by the acceleration at the start, not by the journey. What changes is what is left. Stopping after one full pendulum period leaves 1.0°; stopping half a period out leaves 18.25°. The rope sets the period — 2 pi root L over g is 2.10 s for our 1.1 m rope — and the whole skill is arriving on it. That is anticipation, and it is measurable.

Limits

  • An interactive demo for showing what a physically simulated load teaches, not accredited safety training. The plant, the signals and the assessment are ours, and nothing here maps to a recognised banksman qualification.
  • This page is driven by buttons and keys. The hand-signal recognition runs in the WebXR build, and has so far been tested against simulated hand poses rather than real hand tracking in a headset.
  • One load, one rope length, no wind and no load rotation about its own axis. The period we quote is the simple-pendulum one, which this rig matches because the load is small against the rope. A real hook block, a longer rope or a swinging jib would all move it.
  • Our figures are simulation measurements taken headlessly at a fixed timestep, not frame-rate or timing measurements taken in a browser.