Back to all projects Project

Amiga Juggler HTML/JS Raytracer

A browser-based reconstruction of Eric Graham's 1987 Amiga Juggler raytracer, built as a single self-contained HTML file with source-faithful and modern profiles alongside reconstructed juggling motion.

2026 Creator and developer
  • HTML
  • TypeScript
  • JavaScript
  • Raytracing
  • Canvas
  • Browser
Amiga Juggler HTML/JS Raytracer project cover

The original

Eric Graham's Juggler was the animation that convinced a lot of people the Amiga was a serious graphics machine. In 1987 he raytraced a chrome humanoid juggling three reflective spheres on a checkerboard floor, ran the resulting frames on a stock Amiga 1000, and used it both as the basis for what became Sculpt 3D and as a public demonstration of what a desktop computer could do. The clip circulated on Amiga user-group disks for years and became one of the defining pieces of 1980s home-computer graphics.

AlphaPixel recently published the original source code, scene files, and recovered media in a archive. This project is a weekend response to that release.

Motivation

What I wanted to find out was whether modern coding could take 1987 Amiga C source and turn it into something that runs in a current browser. The short answer is yes, they can. The reconstruction here was driven through agentic tooling against the recovered source, and the original rendering behavior survives the translation closely enough to be worth comparing side by side.

What it is

A reconstruction of the Juggler as a single index.html file that runs from disk without a server or build step. The original .dat scene descriptions for the juggler, elephant, and dragon are parsed directly, and the renderer can be switched between a Classic Source profile that preserves the HAM output and source-like quirks, and modern profiles that layer on RGB output, soft shadows, ambient occlusion, depth of field, and anti-aliasing.

The juggling motion itself is not in the source .dat files, which describe static scenes. The 24-frame body and ball animation here is reconstructed from historical movie material and reference reimplementations, with per-frame metadata so it can be compared back to the original output.

Technical shape

Raytracing runs on the CPU with a acceleration structure, web for still renders, and a live preview path for scrubbing without buffering frames. Camera paths, timeline scrubbing, and animation manifests sit on top, and frames or full animation ranges can be exported.

The interface is visually inspired by Amiga Workbench (collapsible windows, a compact command strip) but does not try to behave like it. Navigation includes a view with pointer lock, WASD, and gamepad input for orbiting the scene.