Surf the DreamJustin Avery

Things I build · 03

Project SYZYGY

Fully on-chain generative art where the Ethereum block that mints each body decides its mass, position and velocity.

projectsyzygy.xyz

Stage
Live
Started
2026
Built with
Ethereum, Solidity, p5.js, Cloudflare Workers
Six SYZYGY test bodies seen through Integrated Light, the on-chain HD renderer: two light, two medium and two heavy, each a glowing star in its own field of dust, rings or lobes.

SYZYGY is a generative-art collection built around the three-body problem. Nothing is pre-assigned: each body’s mass, position and velocity are written by the block that mints it, and the image is decoded straight from the contract’s tokenURI, with no off-chain image hosting.

Phase I, The Expansion, is open: 5,316 bodies (three times 1,772, the year Lagrange wrote his three-body memoir) with a dynamic mint price. The four phases after it are sealed for now.

The trailer: 57 seconds, built frame by frame from the project’s own renderers and scored with an organ cue synthesised in code. Even the tempo is the collection’s maths: one beat is √π/2 seconds, the slowest speed a body can be drawn with.

One body, read from the chain

A body is a handful of numbers: mass, radius, speed, heading, heat. The home page shows a live one, drawn by the contract’s own renderer rather than a stored picture. Every minted body then gets a record page that reads those numbers back from Ethereum and lets you export the plate as a still, a video or a GIF.

The SYZYGY home page: "Mint a body. The block decides who it is." beside a live on-chain body, SYZ-B-107, drawn as a pixel plate.
The home page. The body on the right is rendered live from the contract.
The record page for SYZ-B-0008: its Integrated Light plate, a red star ringed with dust, and its mass, radius, speed, heading, direction and heat as read from Ethereum.
The record for SYZ-B-0008: the plate first, then the numbers its block wrote.

Two telescopes

The art lives on-chain twice over. The original renderer draws a 256-pixel plate called Detector Raw. In July 2026 Renderer V2 went live with Integrated Light, a 1024-pixel view that runs at 24 frames per second in p5.js. The catch is that p5.js is about 980 KB and Ethereum caps a single contract at 24 KB, so the library is compressed and split across 54 bytecode contracts. When anyone reads a token, the contract assembles a self-contained HTML page from those pieces and the browser runs it.

One test body, SYZ-B-0618, in both on-chain presentations: the 256-pixel Detector Raw plate and the 1024-pixel Integrated Light plate with golden bipolar lobes.
One test body in both presentations: Detector Raw at 256 × 256 and Integrated Light at 1024 × 1024.

The catalogue

There’s nothing to browse ahead of time. The catalogue is the register of what’s been minted so far, newest first, every plate read straight from the contract. Bodies come in three classes, light, medium and heavy, while mass, speed and bearing within them are continuous.

The catalogue: a grid of minted bodies, each plate labelled with its number and its class, light, medium or heavy.
The register, newest first.
The Three Gravities estimator on a body page: orange and red orbit traces of three bodies, with the estimated outcome, Collision, beside them.
Three Gravities, on every body page: a preview of how a system of three might move. The site labels it a forecast, not a promise.

An observatory that teaches

The explainers are the heart of it: fifteen published pieces on the science behind the collection, most with a working instrument to play with. They cover why three bodies have no formula, who gets thrown out of a three-body system, how heavy a dead star can be, the eclipse that crossed Iceland and Spain on 12 August 2026, and a relativity field note drawn in the manner of Oliver Byrne’s 1847 Euclid. Start with the list.

The eclipse instrument at totality: the Moon's black disc ringed by the white corona, with controls to run or scrub the eclipse of 12 August 2026.
The eclipse viewer at totality, from “The only syzygy you can stand inside”. It runs the whole 2 hour 38 minute eclipse in 80 seconds.
The travelled paths of survey system 2939: a tangled pair stays at the centre while the third body loops out through the departure gate.
Survey system #2939: the pair that stays and the one that leaves.
A tesseract, a four-dimensional cube projected onto the screen, with buttons to choose the plane it turns in.
A tesseract you can turn, from “What would the fourth dimension look like?”
A chart of white-dwarf radius against mass: 40 Eridani B, Sirius B and ZTF J1901 slide down toward the red Chandrasekhar limit at 1.44 solar masses.
“How heavy can a dead star be?” Three measured white dwarfs on the slope down to the 1.44 solar-mass limit.
The title plate of The Elements of Interstellar Time, set in the manner of Oliver Byrne's 1847 Euclid, with a coloured Pythagorean diagram.
“The Elements of Interstellar Time”, after Oliver Byrne.
The journey planner: at one gravity, a trip to the Andromeda Galaxy takes 28.6 years aboard and 2.54 million years at home.
Its journey planner: Andromeda in 28.6 years aboard, while 2.54 million pass at home.

Other skies

SYZYGY also reads other on-chain collections as skies of their own. In the Normies nebula, 10,000 Normies come together as the portrait of Normie #0. Fly in to find a holding address’s cluster, then resolve each Normie as a SYZYGY body. It’s an independent study, not a partnership.

The Normies nebula: 10,000 Normies drawn as points of light that together make the portrait of Normie #0.
The Normies nebula: 10,000 originals, 1,805 holding addresses, one familiar face.

Under the hood

The site is plain HTML, CSS and JavaScript on Cloudflare Workers. A Worker signs each mint after a human check, looks up ENS names and ownership, and draws the share cards. Social posts wait in a Telegram review queue until a person approves them. Even the trailer is code: the bodies, telescopes, collision, galaxy and black hole all come from the project’s own renderers.

Phase I is open at projectsyzygy.xyz.

    Type to search titles and full text. ↵ opens the full results page.