skills/r3f-scene-polish/SKILL.md
Art-direct an EXISTING three.js / React Three Fiber scene to premium, cinematic quality — postprocessing (bloom, depth-of-field, N8AO, tone mapping), HDRI/PBR lighting, contact & accumulative shadows, transmission/glass materials, and camera choreography. Use for look-development and "make this 3D scene cinematic / premium / hyperrealistic" once it already renders. Do NOT use for scene setup or correctness — route Canvas/createRoot lifecycle, loaders, GLTF, disposal, SSR/client boundaries, and DPR to web-three-r3f; native (Expo/RN) motion to expo-motion; repo-wide motion-system direction to design-motion-system.
npx skillsauth add bjornmelin/dev-skills r3f-scene-polishInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Take an already-working three.js / React Three Fiber scene and art-direct it to a premium, cinematic result. This skill owns the aesthetic layer: postprocessing, physically-based lighting, shadows, materials, tone mapping, and camera choreography.
This skill is the second half of a 3D scene — the look-dev pass after it renders correctly. It does not own setup or correctness:
web-three-r3f.expo-motion.design-motion-system.If the scene doesn't render yet, start in web-three-r3f, then return here.
references/art-direction.md — the current-API (2026) look-dev recipes:
the @react-three/postprocessing quality ladder, drei Environment /
ContactShadows / AccumulativeShadows / MeshTransmissionMaterial, tone
mapping (AgX vs ACES), selective bloom, and the WebGPU/TSL caveat. Verify
every API against the repo's installed versions before editing — the
reference pins the versions it was written against.references/motion-vocabulary.md for named camera/lighting decisions.references/performance-accessibility.md before final QA.Environment) for image-based lighting; add
key/fill/rim intentionally; ground the subject with ContactShadows or
AccumulativeShadows (or float it deliberately).NoToneMapping; the R3F
<Canvas> defaults to ACESFilmicToneMapping. Prefer AgX / Neutral for
accurate highlight rolloff; don't double-tonemap (renderer or the
postprocessing ToneMapping effect, not both).MeshTransmissionMaterial for glass, sharing one FBO for
many transmissive objects.useFrame); this skill
assumes web-three-r3f's correctness rules (no setState in the frame loop,
reuse math objects, dispose) — see that skill, don't re-derive them here.Return complete code changes or a complete look-dev plan, depending on the request.
This skill ships scripts/audit.mjs, a static auditor for R3F/three.js
art-direction quality — tone mapping (double-tonemap, legacy API), color
management (deprecated outputEncoding/sRGBEncoding), lighting (unlit scenes),
postprocessing quality (missing quality ladder, legacy SSAO, WebGPU mismatch), and
material color-space. This is the visual layer web-three-r3f's lifecycle audit does
not cover; run both. Optional — findings are leads.
node scripts/audit.mjs doctor # list every rule
node scripts/audit.mjs scan --root . --format json
Verify each finding against the repo's installed package versions before changing behavior.
development
Pre-PR multi-model review, parallel opus and codex exec adversarial lanes, then adversarial verification of merged findings. Read-only. Use before shipping nontrivial diffs.
tools
Independent gpt-5.6 diff review via the Codex CLI, normal or steerable adversarial with JSON findings. Use before shipping nontrivial changes.
development
Delegate implementation, investigation, or bulk work to gpt-5.6 codex via pinned codex exec. Use for clear-spec builds, migrations, debugging, or any task MODELS.md routes to codex.
development
Adversarial pre-mortem: imagine the plan failed, work backwards to surface risky assumptions + irreversible bets, then harden them. Proactively offer it (after the current request; confirm first) before a hard-to-reverse or one-way-door call (API, schema, framework, a hire), an all-upside plan, or unvalidated assumptions. Also on request.