Summary
Paired RFCs that bring the seven-RFC audio arc's depth to the visual side. RFC-019 introduces a visual identity switch and a post-FX bus (the visual analogue of RFC-012); RFC-020 introduces multi-source layer compositing with the feedback layer as the keystone primitive. Ships paired — post-FX operates over composited output, the identity switch broadcasts coherent layer defaults.
The primitives are grounded in three reference aesthetics surfaced by a parallel aesthetic research pass: Ryoji Ikeda (stroboscopic minimalism), Bill Viola (slow cinematic meditation), Memo Akten (accumulated trails + flow). The single most important architectural insight: a parameterised feedback buffer serves all three aesthetics from one primitive (fade = 0.0 / 0.96-0.98 / 0.99+ for Ikeda / Akten / Viola respectively).
RFCs
Scope — RFC-019
- Visual identity switch: `cinematic` (Akten) / `minimalist` (Ikeda) / `meditative` (Viola) / `painterly` / `technical`
- Post-FX chain primitive — ordered effects pipeline, every param polymorphic per RFC-014
- Effect catalogue: bloom (threshold range matters: Viola high / Akten low), glow, chromatic aberration (centre / velocity-source), grain (per-frame regen default), vignette, color_grade (LUT), two_tone_grade (Viola submerged palette), threshold_binarize (Ikeda), nearest_scale (Ikeda pixel-grid integrity), blur_radial, scanline, displacement
- LUT bank in `visual/luts//metadata.yaml` with license gate (CC0 / CC-BY / open) — mirrors RFC-012's vocal sample bank discipline
- Always-on subtle drift — Cloud Filter analogue, low-depth low-frequency displacement
- Camera as envelope-able layer (pan / zoom / rotation / orbit) with built-in motion presets (static / slow_pan_right / slow_orbit / push_in / breathe)
- Pipeline ffmpeg `filter_complex` canonical for export; browser WebGL shaders for preview at perceptual tolerance (SSIM ≥ 0.98)
Scope — RFC-020
- Top-level `layers:` block — ordered list of layers
- Four layer types: `sketch` (wraps existing p5/canvas), `feedback` (the keystone), `texture` (medium overlay), `motion_graphics` (annotations / titles / markers)
- Feedback layer keystone primitive: `buffer[t] = fade * transform(buffer[t-1]) + source[t]`
- `fade: 0.0` → Ikeda hard cuts
- `fade: 0.95-0.98` → Akten accumulated trails
- `fade: 0.99+` → Viola long temporal smear
- Per-layer envelopes / clocks / macros via RFC-014/016/017 polymorphism
- Blend modes: normal / multiply / screen / add / overlay / soft_light
- Texture bank in `visual/textures//` with same license + provenance discipline as LUTs
- Motion graphics templates: `data_label` / `title_card` / `progress_bar` / `marker` — triggerable on RFC-007 detected key moments
- Backward-compatible — legacy single-sketch recipes render unchanged via implicit `__legacy` layer
Dependencies
- RFC-014 (envelope primitive — drives post-FX and layer params)
- RFC-016 (clocks — per-layer rhythmic motion)
- RFC-017 (macros — cross-modal coordination between audio + visual)
Closes into
- ADR-044 — Visual identity + post-FX chain
- ADR-045 — LUT bank + provenance
- ADR-046 — Layer compositing primitive
- ADR-047 — Feedback layer + accumulator semantics
Notable design calls
- Identities grounded in artists, not generic moods — each identity composes coherent defaults from a real reference aesthetic rather than averaging into a generic look
- Single feedback primitive for three aesthetics — parameterising one number serves Ikeda / Akten / Viola without bespoke implementations
- Pipeline-canonical / browser-preview architecture — bit-identical export at the cost of preview-mode perceptual tolerance; the right trade for distribution
Summary
Paired RFCs that bring the seven-RFC audio arc's depth to the visual side. RFC-019 introduces a visual identity switch and a post-FX bus (the visual analogue of RFC-012); RFC-020 introduces multi-source layer compositing with the feedback layer as the keystone primitive. Ships paired — post-FX operates over composited output, the identity switch broadcasts coherent layer defaults.
The primitives are grounded in three reference aesthetics surfaced by a parallel aesthetic research pass: Ryoji Ikeda (stroboscopic minimalism), Bill Viola (slow cinematic meditation), Memo Akten (accumulated trails + flow). The single most important architectural insight: a parameterised feedback buffer serves all three aesthetics from one primitive (fade = 0.0 / 0.96-0.98 / 0.99+ for Ikeda / Akten / Viola respectively).
RFCs
Scope — RFC-019
Scope — RFC-020
Dependencies
Closes into
Notable design calls