Zain Dana Harper

Plain index The map

Superframe

Describe a piece in plain words and get it back in every medium at once: a painting, a page of living type, a line drawing, a carved material, a sound and a touch pattern, all from one seeded recipe. Then read it back as a study of its own parts, in whichever sense works for you.

Version
0.2.0
Runs on
Node 24 or later, no dependencies
Licence
FSL-1.1-MIT; fonts under the SIL Open Font License 1.1
Source
HarperZ9/superframe
Paint: rust coral in the upper left, an indigo ink stain and its trail, a teal frost star, a lens of contour lines, an ochre network and a vermilion spray on bone paper. Lines: the same piece as black contour lines on bone paper. Type: a sentence repeated across the page; letters grow heavy and dark where the elements sit. Material: the same piece as grey clay relief under light from the upper left.

One recipe, four of its six readouts. Each one sweeps in as a front from where its strongest element sits; choose one to hold it.

Try it

git clone https://github.com/HarperZ9/superframe
cd superframe
npm run make -- "heavy rust coral upper left, fine teal frost on the right" out/first --seed first

The same words and seed give the same files, byte for byte. Change one word and only that element changes, in every medium, in the same place. Text in quotes inside the description becomes the type.

One recipe, every medium

This piece came from one sentence. Each surface on this site stands in as the law that shares its property: the gallery's seeded plates as a tiling, the Studio's timeline as poured ink, Night School's paths as a mycelium network, the explainers as contour lines, the fractal suite as Turing coral, transparency as frost. The type sets the line "properties and laws, back to one".

The sentence set again and again across the page in Accession Mono; the letters grow heavier and darker where the coral, the ink and the contour lens sit, and stay hairline elsewhere.
Type: letter weight and tone follow the elements
Black contour lines on bone paper: tight meanders where the coral is, a dense lens of rings, the frost star in outline and a loose web of fine lines across the tiling.
Lines: contours at even levels
The same elements as grey clay relief under light from the upper left: the coral ridges stand up, the contour lens is finely grooved and the ink pools as a soft dip.
Material: relief, roughness and sheen
The painting as seen under warm tungsten light: the paper turns golden and the inks shift colour by different amounts.
Paint under tungsten light

Hear it

Left to right is time, top to bottom is pitch. The coral in the upper left plays early and high, and the ochre network plays late and low.

Sixteen seconds of the same piece as sound: 72 partials from 70 Hz to 7 kHz, each one's loudness read from a band of the picture.

The piece as its own study

Every render can draw a study plate from its own data. The graph joins each element to each medium, and an edge's width is how much of the element survived the crossing, measured from the outputs. The strip below it is the sound, drawn back as a spectrogram: the picture again, read as a score.

A study plate on a dark ground: a fan of four prints of the piece, as relief, lines, type and paint; a graph joining seven elements (coral, ink, mycelium, frost, contour, symmetry, spray) to five media (type, paint, lines, material, sound), with thick edges into paint, material and sound and thin ones into type; and the sound drawn as a spectrogram that looks like the picture itself.
Study plate, drawn by the engine from the render's own study

Hear an image, see a sound

Every element is a law acting on a field: reaction-diffusion coral, marbling, frost, ink in a fluid, a slime-mould network, Kepler orbits and nine more. Each medium reads that field its own way, and the mapping is fixed and stated, so a person can learn to hear where things are and to see what a sound holds. You pick the readout that works for you, or layer two. The engine's room opens a private local space for this, where words, numbers, pictures and sound turn into one another. It is a creative tool, and it makes no claims about therapy or outcomes.

A study for every reader

Each render writes a study of its own parts. study.md gives one plain sentence per element and alt text for each medium, for people and screen readers. study.json gives the properties, the weights each law read and the ones it ignored, and a measured record of how much of each element survived into each medium, for software and language models. tactile.json is a vibration pattern for a phone.

Change it freely

node superframe/cli/superframe.mjs artifact out/first/recipe.json out/b --isomer permute
node superframe/cli/superframe.mjs artifact out/first/recipe.json out/c --metamer coral
node superframe/cli/superframe.mjs artifact out/first/recipe.json out/d --route coral:sound:0
Isomer
the same weights in a new arrangement
Metamer
an ink that matches in daylight and splits under tungsten
Route
how much of an element passes into a medium; 0 silences it there
Edit
one weight, by its path in the recipe
A close crop of the coral: rust ridges with soft edges and a fine grain over the paper between them.
Paint at 200%: the coral's own grain, with paper tooth between
A close crop of the type: hairline grey letters on the left grow bold and dark on the right, where the contour lens sits.
Type, close up: the weight is the law's weight

What is tested

271 tests run with npm test. The same recipe repeats byte for byte in every medium. A one-weight edit changed 37,122 paint pixels inside its element's region and none outside, and no sound outside its time window. The same check after a global step finds 186,861 pixels outside, so it can fail. A word the reader does not know changes nothing.

Limits