whatisgithub

What is eric-graham-1987-juggler-raytracer-1.0?

alphapixel/eric-graham-1987-juggler-raytracer-1.0 — explained in plain English

Analysis updated 2026-05-18

54CAudience · generalComplexity · 2/5LicenseSetup · hard

In one sentence

An archive of the original 1987 Amiga source code for The Juggler, an early landmark 3D raytraced animation, preserved with the creator's permission.

Mindmap

mindmap
  root((Juggler Raytracer))
    What it does
      Preserves 1987 source code
      Extracts old Amiga disk image
      Documents Juggler history
    Tech stack
      C
      Amiga executables
      Python extraction tool
    Use cases
      Read vintage raytracer code
      Study computer graphics history
      Rebuild the classic scenes
    Audience
      Retro computing fans
      Graphics history researchers
      Hobbyist programmers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Read the original C source to learn how a mid 1980s raytracer generated shaded 3D scenes.

USE CASE 2

Watch or convert the archived Juggler animation frames preserved as image and video files.

USE CASE 3

Study the disk extraction process used to recover old Amiga software for modern systems.

USE CASE 4

Compare this original implementation against modern reimplementations in Rust or WebGL.

What is it built with?

CAmiga OSPython

How does it compare?

alphapixel/eric-graham-1987-juggler-raytracer-1.0redteamfortress/pplshademaftymanicemu/dukex
Stars545452
LanguageCCC
Setup difficultyhardhardhard
Complexity2/55/55/5
Audiencegeneralresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

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.

Public domain, released by the original author with the one request that he be credited when the code is used.

So what is it?

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.

Copy-paste prompts

Prompt 1
Explain how the ray sphere intersection math in this raytracer's C source works, line by line.
Prompt 2
Walk me through how a 1987 Amiga raytracer like this one produced HAM format color images.
Prompt 3
Summarize the history of the Juggler animation and why it mattered for early computer graphics.
Prompt 4
Suggest how I could port this raytracer's core logic to a modern language like Python or Rust.

Frequently asked questions

What is eric-graham-1987-juggler-raytracer-1.0?

An archive of the original 1987 Amiga source code for The Juggler, an early landmark 3D raytraced animation, preserved with the creator's permission.

What language is eric-graham-1987-juggler-raytracer-1.0 written in?

Mainly C. The stack also includes C, Amiga OS, Python.

What license does eric-graham-1987-juggler-raytracer-1.0 use?

Public domain, released by the original author with the one request that he be credited when the code is used.

How hard is eric-graham-1987-juggler-raytracer-1.0 to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is eric-graham-1987-juggler-raytracer-1.0 for?

Mainly general.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.