What problem does it solve?
Weather effects in Three.js scenes typically fail in two ways: particle volumes sit outside the camera frustum so nothing is visible, or every weather state is built as a separate system that shares nothing. This Skill provides a proven architecture for rain, storms, lightning, and snow that reads as real weather.
Core Features & Use Cases
- Frustum-anchored precipitation: Carry a narrow particle volume in front of the camera with
frustumCulled = false, and thin a single fixed pool with setDrawRange instead of reallocating buffers.
- Unified storm and blizzard logic: A storm is the rain state pushed harder (density, speed, slant scaling with velocity squared), and a blizzard is a slow calm/build/blow/ease envelope over the snow state, not separate systems.
- Lightning and settled snow: A dedicated directional light with multi-pulse flashes and distance-delayed thunder, plus a separate snow-pack variable that whitens ground, stones, and shader-mixed grass over time.
- Use Case: Add a clear/rain/storm/snow control to a hero backdrop or 3D landing page where the viewer can orbit the scene and watch a blizzard arrive, pass, and leave the ground visibly whiter.
Quick Start
Use $threejs-weather to add rain, a storm with lightning, and snow that settles to this Three.js scene.