Implement production bloom in advanced Three.js scenes. Use for HDR signal ordering, bloom-node controls, dual selective bloom with guaranteed material restoration, scene-relative emissive hierarchy, and effect-isolation diagnostics.
Start a fresh conversation. Replace the highlighted placeholders.
Use threejs-bloom to implement production HDR bloom in [Three.js scene], with [objects or materials] selected for bloom, correct pre-tone-map compositing, transactional restoration for selective passes, and base/contribution/final diagnostics.
Required inputs
[Three.js scene]
[objects or materials]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: threejs-bloomdescription: Implement production bloom in advanced Three.js scenes. Use for HDR signal ordering, bloom-node controls, dual selective bloom with guaranteed material restoration, scene-relative emissive hierarchy, and effect-isolation diagnostics.
Bloom
Bloom is a camera/display response to bright HDR signal. Establish scene exposure and emissive luminance before tuning blur.
Workflow
Inspect pre-tone-map luminance.
Choose which scene values should bloom.
Choose a single-node or dual selective-render ownership model.
Calibrate threshold, radius, smooth width, and strength in HDR.
Restore all substituted materials transactionally for selective passes.
Composite before exposure/tone mapping.
Validate base, contribution, and final views.
Read references/hdr-bloom-system.md for the
HDR ordering, dual selective-bloom transaction, compact emissive hierarchy,
and the costs and limits of each ownership model.
Apply the material substitution/restoration ownership pattern in the
reference before adding selective bloom to a composed scene.
Failure conditions
bloom creates the only visible form of an effect;
all bright materials share one arbitrary emission multiplier;
threshold is tuned after tone mapping;
selective bloom requires mutating scene materials every frame without restoration guarantees;
transparent particles disappear from extraction because pass ownership is unclear;
bloom radius changes wildly with resolution;
highlights become gray because energy is clamped too early.
Routing boundary
Use $threejs-exposure-color-grading for metering, adaptation, tone mapping,
and LUTs. Load $threejs-image-pipeline only when bloom must be composed with
several shared image-space systems. A per-pixel ray integrator that owns its own
reduced-resolution target and accumulation history keeps its bloom internal;
route that to $threejs-raymarched-space-effects.