Files
bubblechambersimart/roadmap.md
noisedestroyers 7d6d5c232e Colour palettes, depth/exposure, disk & halo effects; stop tracking rasters
Generator
- Depth & exposure dynamics: per-track chamber depth (z) + event age drive
  opacity, bubble size and defocus (depthFactors); depth/aging dials.
- Palette abstraction (src/render/palette.js) — one registry entry per "feel":
  mono, charge, beta, kind, kindlife, kindrise, lifecycle, psychedelic,
  cyanotype, magentarise. Per-track ink + per-bubble bubbleInk hooks.
- Global colour controls: saturation, hue shift; paper toning (cream/sepia/
  selenium/cool/olive/neutral + brightness + gas-glow), bubble edge softness,
  iridescent disk (spectral sunburst), chromatic halo. Ink blend chosen by
  ground luminance so light-on-dark chemistries composite correctly.
- Tracks carry charge q; bubbles carry lifecycle position + local beta.
- All effects in raster + layered SVG + CMYK/OCG PDF; B&W remains the default.

Tooling & art
- tools/find-semicircle.mjs; render-svg/pdf --seed mode + k=v overrides.
- Curated vector SVG sets under output/ with browsable index.html.

Repo hygiene
- .gitignore: stop tracking generated rasters/PDFs (reproducible from seeds),
  the reference image, and a stray db; keep curated SVGs + code + docs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 15:55:03 -04:00

147 lines
8.8 KiB
Markdown

# Roadmap — artistic direction & development
This is the creative north star plus a staged plan. The technical backlog lives at
the bottom; the top is about *why*, because every feature should serve a feeling.
---
## What these images are, and what they evoke
A bubble-chamber photograph is **evidence of the invisible**. You cannot see a
particle; you can only see where it has been — a wake, a trace, a confession. The
plate is the one proof that something happened. There is something devotional in
that: faith made visible, an instrument straining to record the unseeable.
It is also **a single millisecond, embalmed.** The collision is over before the
flash fires; what we keep is the frozen aftermath, an instant given the permanence
of a relic. So the picture is always already a memory — which is why the worn,
stained, scratched plate feels *more* true than a clean one. The damage is time
itself, made visible alongside the event.
And it is **a rhyme across scales.** The δ-ray's tight logarithmic spiral is the
nautilus, the fern, the hurricane, the galaxy arm. The radial shock disk is a
sun, a pupil, a drain, a mandala, a struck bell. A subatomic event quotes the
shapes of the cosmos. Stand a person in front of a four-metre print and the
collapse of scale — the very small wearing the clothes of the very large —
produces vertigo and recognition at once.
Finally there's the **human urge to read it.** We can't help scanning these tracks
like entrails, tea leaves, constellations — looking for the message, the figure,
the meaning in marks that were authored by chance under deterministic law. Order
*and* chaos, in the same gesture.
### The feelings to chase
- **Awe / reverence** at the unseen made manifest.
- **Contemplative stillness** — despite the violence of a collision, the plate is silent.
- **Melancholy / nostalgia** — the aged document, the people who once bent over it with calipers.
- **Vertigo of scale** — atom and galaxy in one frame.
- **Uncanny familiarity** — "I have seen this shape before," in water, smoke, bone, sky.
- **The numinous** — physics as a secular mysticism, the search for the fundamental.
### Principles for invoking them
1. **Scale is content.** At wall size the viewer is *inside* the event, not looking at a diagram. Design for the body, not the thumbnail.
2. **Depth and layering are time.** A palimpsest of events reads as history; volumetric depth reads as a real chamber you could fall into. (This is your layered-print instinct, and Phase 1 & 3 below.)
3. **Colour is transcendence — when it is meaningful.** False-colour that *encodes physics* (charge, speed, depth, time) bridges the scientific and the mystical; arbitrary rainbow does not. Earn the colour.
4. **Keep the hand in it.** The smudge, the grease-pencil ring, the handwritten angle — traces of the human who studied the plate — are what separate "artifact" from "render."
5. **The series is an argument.** One plate is an image; a grid of them is a worldview (taxonomy, the archive, the scientific gaze). Becher typology energy.
6. **Determinism is a feature.** The seed as a true name. Every piece is reproducible, citable, ownable — a hash you can print on the frame.
---
## Staged plan
### Phase 1 — Depth & exposure dynamics ✅ done
Make per-trail intensity *mean* something instead of being event-flat.
- **Depth (z) per event/track** → opacity, softness, and bubble size. Tracks near
the focal plane sharp & dark; deep tracks faint, soft, slightly smaller. Turns
the flat diagram into a volume.
- **Event age** → background events read as *earlier in the cycle*: fainter,
fuzzier, slightly bloated bubbles (risen/diffused). Layering becomes time.
- **Overall exposure** → global dial for accumulated faint background trails +
veiling fog. "Single trigger" ↔ "the chamber ran all night."
- Variation is *driven by these axes*, not free noise, so it reads as depth/time.
### Phase 2 — Parameterised colour ("regimes") ◐ in progress
Colour as a first-class, seeded, swappable layer (`palette.js` abstraction; B&W
default). Each regime is a mapping from physics → colour via palette hooks
(ink/paper/feature/vign), consumed uniformly by all renderers.
- **False-colour (scientific sublime):** ✅ `charge` duotone and `beta` (velocity →
spectral) shipped.
- **Per-bubble colour hook:** ✅ done — `bubbleInk` + per-bubble `life`/`beta`.
- **Lifecycle:** ✅ `lifecycle` feel — colour follows each particle birth→death.
- **By particle type:** ✅ `kind` (one hue per type) and `kindlife`/`kindrise`
(type→hue, lifecycle→intensity, fading or rising). `magentarise` ✅ shows a
composed, restrained feel (magenta family + burnt-orange disk).
- **Saturation/intensity** ✅ global dial.
- **Paper toning & shading** ✅ separate from ink (absolute paper tones: cream/
sepia/selenium/cool/olive/neutral + strength + brightness + gas-glow).
- **Hue shift** ✅ global hue rotation of any palette; **psychedelic** ✅ hue-cycle
along trails (`hueCycles`); **cyanotype** ✅ a full chemistry (paper+ink override,
blueprint). Renderers now choose blend by **ground luminance**, so light-on-dark
chemistries composite correctly.
- **Iridescent disk** ✅ (`diskSpectrum`) — spectral hue across the sunburst
striations/rings/rim (raster + SVG + PDF). **Chromatic halo** ✅ (`halo`,`haloHue`)
— a hue-shifted blurred aura around trails: coloured drop-shadow on light grounds,
neon glow on dark (raster; SVG/PDF approximation TBD via filter).
- Next: more chemistries (Van Dyke, platinum); per-bubble β (local velocity hue);
SVG halo via feGaussianBlur+feFlood filter.
- **Spectral / narrowband:** astronomical palettes (Hubble SHO, emission lines) —
the chamber as deep-sky object.
- **Analog photographic:** cyanotype, sepia/albumen, silver-gelatin, blueprint —
alternate *plate chemistries* rather than hues.
- **Psychedelic (mind set free):** hue cycling *along* each track (rainbow wakes),
hue-by-depth, complementary bloom/halation, solarisation, oil-on-water
iridescence on the shock disk. Energy, synaesthesia, the numinous turned up.
- All seeded and parameterised; a "colour" axis orthogonal to geometry, so any
existing seed can be re-coloured without changing its forms.
### Phase 3 — Literal depth (the chamber as a volume)
Take "depth is time/space" all the way.
- **Depth-of-field:** true z-based blur in the raster compositor (cinematic focus).
- **Stereo pairs / anaglyph:** render two eye-views from the z-model → 3D diptych,
or red/cyan anaglyph. Real bubble chambers were shot in stereo for exactly this.
- **Translucent layered print:** export the existing render layers (tracks / disk /
damage / depth-bands) as separate files designed to be printed on acetate or
film and **physically stacked with air gaps** — a real, three-dimensional plate
the viewer can move around. The strongest fusion of your layered-print plan and
the chamber's actual geometry.
### Phase 4 — The archive & the human hand
- **Plate series / typology:** deterministic grids (MUON-001…024), contact-sheet-
as-artwork, a fabricated catalogue with consistent archival furniture.
- **Annotation fiction:** hand-drawn measurement marks — angle arcs at vertices,
momentum labels, grease-pencil circles around a "find," ruled scales, stamped
plate numbers, a faux logbook caption. The forensic, studied layer.
- **Archival apparatus:** fiducial coordinate grids, exposure metadata, a "lab"
identity system (letterpress-style headers, reference codes).
### Phase 5 — Time & cross-modal (stretch / exhibition)
- **Animation:** the event *forming* — particles drawing inward, δ-rays spiralling
to rest; a slow living plate for screens/projection.
- **Sonification:** map tracks/curvature/density to sound — the plate as score;
long cosmics as drones, δ-ray spirals as glissandi.
- **Field visualisation:** optional rendering of the B-field the particles obey —
the invisible cause behind the visible trace.
### Cross-cutting
- **Composition control:** golden-ratio / thirds vertex placement, multi-vertex
narratives, deliberate placement of the disk as anchor; "art-directed" seeds.
- **Material & print:** metallic / duotone inks, risograph, substrate tests; the
hash printed on the frame as title/edition.
- **Curation tools:** favourite/lock seeds, a named collection manifest, side-by-
side compare in the app.
---
## Immediate next steps
1. **Phase 1** depth/exposure dynamics (answers the open "more per-trail variation?"
question — yes, depth- and age-driven).
2. **Phase 2** colour regimes, starting with charge duotone + a β false-colour, then
the psychedelic set.
3. Decide Phase 3 direction with the physical print plan (acetate-stack test).
> Guiding test for any new feature: *does it deepen the sense that we are looking at
> a real trace of something unseen — and does it reward standing closer?*