scottstts/threejs-awesome-graphics-agent-skills

threejs-precipitation-surfaces

Build coupled precipitation and affected surfaces in Three.js.

Zobacz źródło
Oryginalny dokument Skill

Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.

Precipitation Surfaces

Treat weather as a coupled event, particle, and surface-response system. Do not add rain or snow particles that are visually disconnected from the ground.

This skill contains exemplary examples and assets beyond descriptive guidance, they're worth studying, referencing, or even copying. Use them sufficiently when relevant and do NOT blindly skip them.

Build order

text
weather envelope
  -> falling precipitation volume
  -> world/object surface mask
  -> displaced or optical surface response
  -> impact residue and splashes
  -> shared lighting/post presentation

Read references/precipitation-surface-systems.md for snow accumulation, object capping, wrapped precipitation volumes, wet puddle masks, procedural ripple normals, splash placement, debug outputs, and licensing boundaries.

Read the snow accumulation implementation for camera-wrapped snowfall, shared wind/time uniforms, world-space snow masks, single-source snow height and normals, model snow capping, and optional ice surface composition.

Read the wet puddle rain implementation for rain-progress wetness, asphalt puddle masks, procedural ripple normals, instanced rain streaks, upward-surface splash sampling, and flipbook splashes. This example includes GPL-licensed source material; preserve its license boundary when copying or publishing it.

Required controls

  • precipitation density and speed;
  • wind direction and strength;
  • shared weather progress or coverage;
  • wetness, snow, or puddle mask threshold and softness;
  • ripple or drift normal strength;
  • surface roughness response;
  • particle/splash opacity;
  • debug modes for masks, normals, particles, and event progress.

Failure conditions

  • falling precipitation ignores the wind or timing used by surface response;
  • snow height and snow normals come from different fields;
  • model snow sticks to vertical faces without an upward-facing filter;
  • puddles only lower roughness without a mask, normal response, or ripples;
  • splashes appear on downward or hidden faces;
  • rain streaks allocate per drop or fail to wrap around the camera;
  • temporal wetness is faked with unrelated time noise;
  • the license boundary for GPL-derived rain code is removed or obscured.

Routing boundary

Use $threejs-water-optics for bounded pool simulation, caustics, Fresnel, refraction, and Beer-Lambert water volumes. Use $threejs-procedural-vfx for general sparks, plasma, trails, and non-weather particles. Use $threejs-temporal-surfaces for screen-space touch history or frost clearing. This skill owns precipitation events and the surfaces they visibly alter.

z tego samego repozytorium

Więcej Skills

Wszystkie Skills
scottstts
Społeczność

threejs-atmosphere-aerial-perspective

Implement physically motivated sky and aerial-perspective systems in Three.js. Use for planetary atmospheres, ground-to-space transitions, Rayleigh/Mie scattering, precomputed LUTs, depth-based transmittance and inscattering, sun/moon discs, and atmosphere-aware lighting.

instalacje
2
GitHub Stars
911
Aktualizacja
15 paź
scottstts
Społeczność

threejs-bloom

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.

instalacje
2
GitHub Stars
911
Aktualizacja
15 paź
scottstts
Społeczność

threejs-camera-direction

Direct advanced Three.js camera systems. Use for scale-aware chase rigs, thrust lag, side/orbit cameras, body-relative up vectors, quaternion handoffs, authored cinematic framing, floating origins, pointer-look controls, camera collision constraints, projection ownership, and lifecycle restoration.

instalacje
2
GitHub Stars
911
Aktualizacja
15 paź
scottstts
Społeczność

threejs-exposure-color-grading

Build a measured exposure and grading path in Three.js. Use for a 64x36 encoded luminance meter, asynchronous readback, weighted log-average exposure, asymmetric adaptation, single tone-map ownership, and a generated 32-cube post-tone-map LUT.

instalacje
2
GitHub Stars
911
Aktualizacja
15 paź