Memory Landscape

The terrain at rest. Every point, card and wire position is computed from the dataset.
What it is
Memory Landscape is a generative terrain that runs in the browser. It's built from a structured dataset of the places I've lived, the memories attached to them, and the languages they happened in. Every visual and sonic parameter comes from a field in that dataset. It renders as a WebGL point cloud sphere with orbit and zoom controls, and the audio reacts as you move.
Source material
The source material is a set of physical documents collected across two countries and two languages: train tickets, receipts, photographs, letters, official papers. Each carries partial structured information. A ticket holds a date and a price. A letter holds a recipient and a language. The formats don't match from one type to the next.
Before modeling, each item was cataloged as an object with a fixed set of properties: place, period, type, language, and sentiment.

Memory cards over Nanjing. Receipts, photos, documents and letters each have their own card layout.
The schema
Each location is a record: years, duration, intensity, significance, valence, and a language balance between English and Chinese, each normalized to a 0 to 1 range. Each memory attached to a location is a child record with a type, a sentiment score, and a language. Nothing in the piece is styled by hand. Every visual quality is driven by a field, and any quality that cannot be written as a number is excluded.
The schema has about a dozen fields per location and three per memory.

The loading screen. The dataset is parsed and the terrain computed before the first frame renders.
The mappings
Each field is bound to one visual or sonic output through a plain function from input range to output range. Every binding is documented in the piece's process view. The core bindings:
Intensity scales elevation amplitude. Significance sets plateau height and erosion rate. Valence controls ridge sharpness in both directions from neutral. Duration adds surface roughness detail. Eighteen years in Nanjing produces the highest plateau with the slowest erosion. No terrain features are placed manually.

The surface up close, with plateaus and ridges computed from the location fields.

The process view inside the piece, which lists each mapping as a function.

Each binding shows its source field, output channel, and transfer function.
Cards and wires
Each memory renders as a card in a ring around its location, connected to the surface by a wire. Connections between locations arc across the sphere. Connection strength sets arc height and brightness. Cards activate by pointer proximity rather than click. Within a threshold distance of a card's anchor, the card rises, the anchor scales up, and the wire brightens.

A letter card lifted by the pointer, with its wire lit back to its anchor.

Focus on Nanjing, with the underlying record printed at the edge of the frame.
Camera and audio
Audio parameters are bound to navigation state. Camera distance drives a low pass filter cutoff. Pointer position pans the stereo field and shifts timbre. Hovering a cluster sets the pitch and harmonic spread of two oscillators from the same fields that shape the local terrain.

The full dataset at maximum camera distance, with the year spiral visible around the sphere.
