Analysis updated 2026-05-18
Read the original C source to learn how a mid 1980s raytracer generated shaded 3D scenes.
Watch or convert the archived Juggler animation frames preserved as image and video files.
Study the disk extraction process used to recover old Amiga software for modern systems.
Compare this original implementation against modern reimplementations in Rust or WebGL.
| alphapixel/eric-graham-1987-juggler-raytracer-1.0 | redteamfortress/pplshade | maftymanicemu/dukex | |
|---|---|---|---|
| Stars | 54 | 54 | 52 |
| Language | C | C | C |
| Setup difficulty | hard | hard | hard |
| Complexity | 2/5 | 5/5 | 5/5 |
| Audience | general | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
The original binaries only run on Amiga hardware or an emulator, the C source would need to be adapted to compile and run on a modern system.
This repository is a historical archive of the source code behind "The Juggler," a 1987 raytraced animation created by Eric Graham for the Commodore Amiga computer. The animation was famous at the time for demonstrating that a personal computer could produce photorealistic 3D rendering, and it influenced many people who went on to work in computer graphics. Raytracing is a technique for simulating how light bounces off surfaces to produce realistic shadows, reflections, and highlights. The archive was assembled by extracting files from an ADF (Amiga Disk Format) disk image found on archive.org. An ADF file is a byte-for-byte copy of a floppy disk from the Amiga era. The repository maintainer wrote a Python tool to extract the disk image into regular files and contacted Eric Graham directly in February 2026 to request permission to publish the code. Graham agreed and placed the code in the public domain with an attribution requirement. The files included cover the full original software stack from 1987. The core raytracer is split across three C source files: one handles ray intersection math, shading, and reflection calculations, one manages scene setup and camera configuration, and one handles the Amiga-specific display code for opening a screen and writing pixels. The Amiga used a display mode called HAM (Hold-And-Modify) that allowed more colors than the hardware normally supported, and several files deal with converting raytraced brightness values into that color format. Plain-text scene description files define the positions, colors, and types of spheres that make up each rendered scene, including the juggler robot, a dragon, and an elephant. Also included are the original Amiga executables for playing back the pre-rendered animation frames, backup copies of source files, and library stub tables the original code linked against. The README provides links to the animation on archive.org, scanned magazine articles from 1987, community threads about recovering the original floppy disk, and modern recreations of the Juggler in WebGL, Rust, and ShaderToy.
An archive of the original 1987 Amiga source code for The Juggler, an early landmark 3D raytraced animation, preserved with the creator's permission.
Mainly C. The stack also includes C, Amiga OS, Python.
Public domain, released by the original author with the one request that he be credited when the code is used.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly general.
This repo across BitVibe Labs
Verify against the repo before relying on details.