E516 — Duncan Fewkes reel analysis digest
- 20 reels ingested (`reels-ingest/{shortcode}/`): - DT-prefix (E500–E521 era): DT0G7SyCtGg E519, DT2tfJzip8A E520, DT6IlEfig-k E521, DTbJvnKCrHO E509, DTBUJiDCvPQ E500, DTEEQNnCvHh E501, DThrF5Miq0- E512, DTmyro9CqUa E514, DTQRPBFiu2v E504, DTr5TQfCpG4 E516 - DS-prefix (E475–E494 era): DSLMOE6iuFH E479, DSA7b7MClVf E475, DScEatyilnk E489, DSDVSJ0itoN E476, DSfZYMUChIi E490, DShj9nlivqf E491, DSkpKC_iie8 E491, DSPfEuWCmTg E483, DSvasHCCiSX E494, DSZmIhOCrTv E488 - 4 Gemini visual analyses successful (DT0G7SyCtGg, D
Full Public Reader
E516 — Duncan Fewkes reel analysis digest
Source video: `../reels/E516-DTr5TQfCpG4.mp4` (symlink to `[home-path]`)
Caption: `../reels/E516-DTr5TQfCpG4.txt`
This file aggregates every playbook chunk section that cites E516. Sections are de-duplicated by heading.
Source data
_From `lume-duncan-playbook-chunk-DT-DS.md`_
- 20 reels ingested (`reels-ingest/{shortcode}/`):
- DT-prefix (E500–E521 era): DT0G7SyCtGg E519, DT2tfJzip8A E520, DT6IlEfig-k E521, DTbJvnKCrHO E509, DTBUJiDCvPQ E500, DTEEQNnCvHh E501, DThrF5Miq0- E512, DTmyro9CqUa E514, DTQRPBFiu2v E504, DTr5TQfCpG4 E516
- DS-prefix (E475–E494 era): DSLMOE6iuFH E479, DSA7b7MClVf E475, DScEatyilnk E489, DSDVSJ0itoN E476, DSfZYMUChIi E490, DShj9nlivqf E491, DSkpKC_iie8 E491, DSPfEuWCmTg E483, DSvasHCCiSX E494, DSZmIhOCrTv E488
- 4 Gemini visual analyses successful (DT0G7SyCtGg, DT6IlEfig-k, DTBUJiDCvPQ, DScEatyilnk). DSfZYMUChIi + DSZmIhOCrTv hit Gemini 429 quota exhaustion; captions on those are still detailed.
---
NEW preset taxonomy (revealed by E521 visual analysis text overlays)
_From `lume-duncan-playbook-chunk-DT-DS.md`_
The recent playbook only exposed `Multiparticle_Spine_FX` and `slime/water/chrome` material names. E521's screen recording shows the actual UI panel cycling through every preset. Update the LUME `LumeVfxEditor.cs` slot enums to match:
### `Depth:` slot (the surface visual on the human silhouette)
- `GhostChromatic2` — translucent particle-filled ghost, chromatic aberration on edges
- `GlassThin` — thin refractive glass sculpture
- `GlassThick` — solid heavy glass form
- `GlassScan1` / `GlassScan2` / `GlassScan3` — three styles of scan-line / fragmented glass
- (E520 reveals) `DepthCubes` with a runtime LOD randomizer — VFX Graph mesh particles fed by live depth buffer, audio-reactive trigger script flips LOD level on beat
### `VFX:` slot (the additional particle layer on top)
- `Clones Audio Drop Bright` — beat-snapshot clone with gravity drop + speed-to-brightness boost (the headliner)
- `Particle Clone` (single colour, mirror silhouette only)
- `Particle Clones Audio` (multi-clone audio variant — what gets ringed in E479's kaleidoscope)
- `Swirly Particles` family (E509, E512, E514, E516) — floor-spawn vortex particles around the user
### `Lighting:` slot (every lighting rig has a name — copy these)
- `FogSpotLeftRight1` — two fog spotlights, sides
- `FogSpotLeftRight2` — variant of the above (different colour/intensity)
- `FogSpotRight` — single fog spot from right
- `FogSpotOverhead` — single fog spot from above
- `FogPointOrbitPulse` — pulsating point lights orbiting the figure (E521 shows a strong red orbiting one)
- `BrightRoom` — neutral bright fill
- `SpotsLeftRightWithFill` — dual side spots + fill
- `None` — no realtime lights, only emissive particles + depth projection (E516 verbatim: "looked interesting without any realtime lights because the emissive particles and live 3D depth projection makes it look like solid shadow/negative space punch through.")
### `Background:` slot
- `TestRoomDark` — dark gridded test environment
- `StudioBG_Grey` (from prior playbook)
- (sunset / salt flats — recent only)
### Critical UX rule: every preset list ENDS with "None" / "Off"
> E516 verbatim: "Cycling through test lighting presets and the last is always 'None' (same for the script for cycling through depth visuals, VFX, backgrounds etc — always allow for 'Off' to be an option)"
→ For LUME `LumeVfxEditor.cs`: every preset enum's last entry MUST be `None`. The "Off" state is a feature, not a bug. The negative-space look that emerges from `Lighting=None + emissive depth particles` is its own aesthetic.
---
`VFX:` slot (the additional particle layer on top)
_From `lume-duncan-playbook-chunk-DT-DS.md`_
- `Clones Audio Drop Bright` — beat-snapshot clone with gravity drop + speed-to-brightness boost (the headliner)
- `Particle Clone` (single colour, mirror silhouette only)
- `Particle Clones Audio` (multi-clone audio variant — what gets ringed in E479's kaleidoscope)
- `Swirly Particles` family (E509, E512, E514, E516) — floor-spawn vortex particles around the user
---
`Lighting:` slot (every lighting rig has a name — copy these)
_From `lume-duncan-playbook-chunk-DT-DS.md`_
- `FogSpotLeftRight1` — two fog spotlights, sides
- `FogSpotLeftRight2` — variant of the above (different colour/intensity)
- `FogSpotRight` — single fog spot from right
- `FogSpotOverhead` — single fog spot from above
- `FogPointOrbitPulse` — pulsating point lights orbiting the figure (E521 shows a strong red orbiting one)
- `BrightRoom` — neutral bright fill
- `SpotsLeftRightWithFill` — dual side spots + fill
- `None` — no realtime lights, only emissive particles + depth projection (E516 verbatim: "looked interesting without any realtime lights because the emissive particles and live 3D depth projection makes it look like solid shadow/negative space punch through.")
---
Critical UX rule: every preset list ENDS with "None" / "Off"
_From `lume-duncan-playbook-chunk-DT-DS.md`_
> E516 verbatim: "Cycling through test lighting presets and the last is always 'None' (same for the script for cycling through depth visuals, VFX, backgrounds etc — always allow for 'Off' to be an option)"
→ For LUME `LumeVfxEditor.cs`: every preset enum's last entry MUST be `None`. The "Off" state is a feature, not a bug. The negative-space look that emerges from `Lighting=None + emissive depth particles` is its own aesthetic.
---
Evolution arc (E475 → E521)
_From `lume-duncan-playbook-chunk-DT-DS.md`_
Reading the captions in chronological order surfaces his actual learning curve:
1. E475–E479 (DS, Human Kaleidoscope): Form-mirroring spatial symmetry. Discovers 16-clone is the readability sweet spot. Rejects per-clone variance.
2. E483–E491 (DS, Audio Particle Clones): Pivots from spatial to temporal (snapshots on beat). Discovers speed-to-brightness as the alive-feeling parameter. Discovers blend-shape→fluid-sim feedback loop.
3. E494 (DS, Metaball Lighting): Tests material variants against lighting rigs. Settles on opaque core (slime) over fully translucent for shape readability under strong backlight.
4. E500–E504 (DT, Turntable Snapshots + Mic Input): Productionizes the input path (mic) and viewing tools (debug camera turntable for face closeups + multi-angle review).
5. E509–E516 (DT, Swirly Particles): Iterates spawn topology (floor-spawn discovery) and audio-axis mapping (XZ-twist vs Y-lift bulges). Establishes "always have an Off entry" rule.
6. E519–E521 (DT, Chromatic Glass + Lighting Rigs): Decouples Depth shader from VFX layer; cycles through 8+ named lighting presets in one demo. The system becomes operator-friendly.
Key finding: between E479 and E521 he transitioned from a single hand-crafted demo per reel to a swappable preset matrix (Depth × VFX × Lighting × Background). This is the design pattern LUME should aim for from Wave 2 onwards. The earlier work was bespoke; the later work is a control surface.
---
Complete VFX Editor data model (v2 — supersedes v1)
_From `lume-duncan-playbook.md`_
The v1 model had ~7 slots with placeholder names. v2 has 9 slots with verbatim preset names from his UI overlays (E516, E521, E532, E534, E568):
VFX Editor
├── Auto Cycle VFX [checkbox] # BPM/16-bar phrase auto-transition
│
├── Depth: <preset> # surface treatment of human silhouette
│ options: GhostChromatic2, GlassThin, GlassThick, GlassScan1/2/3, DepthCubes, HolePunch, None
│
├── VFX 01: <preset> # additional particle layer
│ options: ClonesAudioDropBright, ParticleClone, ParticleClonesAudio,
│ SwirlyParticles, KaleidoscopeRing16, Multiparticle_Spine_FX, None
│
├── VFX 02: <preset> # second layer (compositional)
│ options: ParticleSystem_Spine_Trail, ClonesSnapshotRed, ClonesSnapshotRedPlexus, None
│
├── Painting: <preset> # surface-shader / material slot
│ options: SpotsLeftRightWithFill, Bounce_Frosted, Bounce_Plastic, None
│
├── Lighting: <preset> # named lighting rigs
│ options: FogSpotLeftRight1, FogSpotLeftRight2, FogSpotRight, FogSpotOverhead,
│ FogPointOrbitPulse, BrightRoom, SpotsLeftRightWithFill, EmissiveOnly, None
│
├── LightingProfile: <enum> # NEW from E473 — perf vs cinematic toggle
│ options: EmissiveOnly (160-170 fps, no shadows), SpotShadows (70-110 fps, 7x cast)
│
├── Environment: <preset> # 3D scene around the figure
│ options: Studio_Sky_Sphere, Sunset, BolivianSaltFlats, TestRoomDark, None
│
├── Background: <preset> # 2D backdrop layer
│ options: StudioBG_Grey, Gallery2, TestRoomDark, None
│
├── Logo: <preset> # brand overlay slot — also acts as VFX volume
│ options: HOLOVIS_Letters_AudioBlendshape, KOATJI/LUME_equivalent, Off
│
├── FluidSim: <preset> # 6 verbatim names from E534
│ options: Default, Default_Smooth, LongThrow, MidThrow, ShortThrow, InvertedObstacle
│
├── BodySim: <preset> # NEW from E532 — separate sim slot for body-driven motion
│ options: same value set as FluidSim
│
├── FX: <preset> # additional one-shot effects
│ options: ClonesSnapshotRed, ClonesSnapshotRedPlexus, None
│
├── SpawnTopology: <enum> # NEW from E509 floor-spawn discovery
│ options: FloorPlane, BodyVolume, CeilingPlane, WallPlanes, MidPlane
│
├── NoiseAxisMode: <enum> # NEW from E514
│ options: XZ_Twist_Contained, Y_Lift_With_LowFreqBulges
│
├── Auto Load Default Scene [button]
├── Update Settings Default Scene [button]
│
├── Camera Settings: FOV slider + Sensitivity slider
├── VFX Settings: Intensity, Density, Count, Gravity, InitialVelocity, Lifetime, SpawnRate
├── Render Settings: Exposure, Gamma, AmbientOcclusion, Bloom
├── VFX Color: RGB sliders + hex + color picker
└── FX LiveOnColorClear [checkbox]Critical UX rule (E516 verbatim)
> Cycling through test lighting presets and the last is always 'None' (same for the script for cycling through depth visuals, VFX, backgrounds etc — always allow for 'Off' to be an option).
Every preset enum's last entry MUST be `None`. The negative-space look that emerges from `Lighting=None + emissive depth particles` is its own aesthetic, not a bug. From E516: "looked interesting without any realtime lights because the emissive particles and live 3D depth projection makes it look like solid shadow/negative space punch through."
Depth ≠ VFX: 4×4=16 combos for free
Prior assumption (v1): "depth particles" was one thing. v2 reveals they are two independent slots — `Depth:` (surface treatment of the silhouette) + `VFX:` (the additional particle layer on top). They cycle independently.
Depth: Ghost / Glass / Cubes / Off (~4-6 surface treatments)
VFX: Clones / Particles / Swirl / Off (~4-6 particle layers)= 16+ distinct combinations before lighting/colour/background variation. Operator gets massive variety from a small preset library.
Performance HUD (top-right, persistent in every reel)
avg min max
38 39 60 16.6ms
FPS: 60Build `LumePerfHud.cs` with same layout. F8 toggle. Useful both for dev and operator confidence the install is healthy.
---
Critical UX rule (E516 verbatim)
_From `lume-duncan-playbook.md`_
> Cycling through test lighting presets and the last is always 'None' (same for the script for cycling through depth visuals, VFX, backgrounds etc — always allow for 'Off' to be an option).
Every preset enum's last entry MUST be `None`. The negative-space look that emerges from `Lighting=None + emissive depth particles` is its own aesthetic, not a bug. From E516: "looked interesting without any realtime lights because the emissive particles and live 3D depth projection makes it look like solid shadow/negative space punch through."
---
Self-critiques worth borrowing as LUME design principles
_From `lume-duncan-playbook.md`_
- E534: "Plexus links almost invisible so I need to figure out how to match brightness with the source/linked particles." → emissive consistency between primitives is its own bug class
- E535: "Not very noticeable so needs more definite/large change in motion, but without it going crazy and losing coherence." → audio-transient response: read clearly without losing form coherence
- E548: "Pretty huge fail when I finally check some footage of real kelp and realise mine looks bugger all like an actual kelp forest. I think I must have had some kind of Spongebob cartoony swishy stuff in mind." → reference-check before lookdev
- E556: "Otherwise it would feedback and he'd go apeshit." → coupled sim systems: pick one direction
- E567/E568: "Probably easiest to expose in settings and debug menu to allow for tweak values for each install individually." → ship per-install settings as first-class architecture, not afterthought
- E516: "Always allow for 'Off' to be an option." → every preset enum ends with `None`
- E488: "Another lesson to myself to push past the disappointing failures and keep digging to see if there's anything there." → don't quit at first disappointing test
- E521 / E479 evolution arc: Duncan transitioned from bespoke per-reel demos to a swappable preset matrix (Depth × VFX × Lighting × Background). LUME should target this pattern from Wave 2 onwards. Earlier work was bespoke; later work is a control surface.
- #normalizefailure — he tags failures and shows them. Authenticity move worth borrowing for LUME devlog culture.
---
Promotion Decision
Keep in the searchable backlog until it intersects a live paper or system.
Source Anchor
lume-commerce/hardware/reference/duncan/analyses/E516-DTr5TQfCpG4.md
Detected Structure
Method · Figures · Architecture