← ClaudeAtlas

kookaburra-lighting-authoringlisted

Authoring and extending Kookaburra Cut's v9 scene lighting - the three-layer LightingSpec (theme, project, scene), the sun, free lights and their World/Camera/Subject spaces, emissive light fixtures and repeat arrays, HDRI environments, lighting keyframes, presets, and the display transform (tone mapping + exposure). Use when asked to "light a scene", "add a light", "make a corridor", "add an HDRI", "change the environment", "add a lighting preset", "animate the lighting", "change tone mapping or exposure", or when touching src/engine/sceneLighting.ts, src/engine/fixtures.ts, src/engine/lightingState.ts, src/engine/renderSettings.ts, src/toolkit/lighting/, src/toolkit/stage/StageLights.tsx, or a sidecar's `lighting` block.
michael-palmes/kookaburra-cut · ★ 4 · API & Backend · score 70
Install: claude install-skill michael-palmes/kookaburra-cut
# kookaburra-lighting-authoring Lighting is per-scene AUTHORED DATA, not scene code. It lives in each scene's sidecar (`scenes/<stem>.json`) under `lighting`, is edited through the inspector's Lighting section, and renders through `<SceneStage>`. Scene TSX should never mount lights directly. ## Read this first: determinism cannot see an orientation bug Verify compares run to run, so a frame that renders consistently WRONG passes cleanly. Seven render bugs in this batch did exactly that: area lights emitting sideways out of their own tubes, rim lights aimed backwards at the lens, housings sitting across the aperture they were meant to back. Every one verified EQUAL. **Any change to a lighting render path needs a frame grab.** That is what `ws:lighting-audit` exists for: 9 scenes (env mirror, housed props, the shadow cap, one per preset) staging the same four subjects, so only the `lighting` block varies. Re-shoot it after any lighting render-path change: ```bash pnpm kookaburra:run --action export --project ws:lighting-audit --aspect 16:9 --codec libx264 # then pull mid-scene frames (1000ms scenes, 60fps) and LOOK at them ``` It is deliberately not in a gate. It is the human check the gate structurally cannot perform. Fixture design matters: subjects must be matte solids that show falloff plus one glossy solid for reflections. A device alone is a bad test subject, because a handset is mostly its own unlit screen texture, so a completely broken light type still looks fin