# Rain and wetness a GPU downpour over a rain-slicked courtyard. ```{raw} html ▶ Run in browser ``` **Tags:** `3d` `rain` `wetness` `weather` `particles` Two cooperating halves of the RM-E3 weather system, both driven by one WorldEnvironment. A Rain3D emitter (a camera-relative GPU particle volume that reuses the particle simulation) fills the view with wind-slanted droplets. The same WorldEnvironment publishes ``wetness`` / ``rain_intensity`` / ``ripple_strength`` into the FrameGlobals block, so every material flagged ``wetness_affected`` darkens, turns glossy (roughness drops), and grows an animated ripple normal on its up-facing faces. Turn the weather off (all three back to zero, no Rain3D) and the scene renders exactly as a dry one: the wet path is feature-bit + wetness gated, so it costs nothing when unused. The wide floor and the low blocks are ``wetness_affected``; the sun rakes across them so the wet gloss and the puddle ripples catch the light, while the drops slant with the wind. Usage: uv run python examples/features/3d/rain.py ## Source ```{literalinclude} ../../examples/features/3d/rain.py :language: python :linenos: ```