scottstts/threejs-awesome-graphics-agent-skills

threejs-procedural-planets

Author procedural planetary bodies in Three.js.

Vedi sorgente
Documento Skill originale

Contenuto dal repository con titoli, esempi, codice, tabelle, link e immagini preservati.

Procedural Planets

Build a planet as a coupled field system evaluated on a unit direction. The same geological causes must drive geometry, color, roughness, normal, atmosphere handoff, and distance filtering.

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.

Required build order

  1. Establish planet-space direction, radius, sea level, and world-unit scale.
  2. Build macro silhouette fields before any surface material.
  3. Add named geological structures: continents, basins, ridges, craters, lava fields, or ice.
  4. Derive slope, cavity, altitude, latitude, exposure, and shoreline fields.
  5. Classify broad biomes from those causes.
  6. Derive displacement, color, roughness, and normal from the shared field bundle.
  7. Filter bands by represented mesh scale and camera altitude.
  8. Couple the material to atmosphere and lighting using the same planet transform.

Read references/planet-field-and-atmosphere-systems.md for terrain, biome, gas-giant, material, altitude-LOD, and atmosphere-handoff mechanisms, including a known CPU/GPU field-parity failure mode.

Read the procedural planet surface implementation and its shared terrain field for undeformed sphere coordinates, shared CPU/GLSL terrain, coupled biome and material causes, derivative bump, and altitude-filtered detail.

Non-negotiable constraints

  • Domain-warp tangentially and renormalize; do not distort the sphere radially.
  • Craters need floor, wall, rim, and optional ejecta—not dark circles.
  • Continents and biomes must be region fields, not isolated threshold bubbles.
  • Geometry displacement and shader normals must describe the same height function.
  • Close detail may disappear with altitude; the macro silhouette may not.
  • Expose individual field views and a displacement exaggeration mode.

Completion test

The body must remain intentional in:

  • unlit silhouette;
  • flat albedo with no atmosphere;
  • grazing directional light;
  • orbit view;
  • close approach;
  • biome-mask and normal-only views;
  • at least three seeds without losing the chosen planetary identity.

Routing boundary

Use $threejs-procedural-fields for a reusable field bundle without a complete body, and $threejs-atmosphere-aerial-perspective for scattering independent of planet generation. This skill owns the coupled planetary surface.

dallo stesso repository

Altri Skills

Tutti gli Skills
scottstts
Community

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.

installazioni
2
GitHub Stars
911
Aggiornato
15 ott
scottstts
Community

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.

installazioni
2
GitHub Stars
911
Aggiornato
15 ott
scottstts
Community

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.

installazioni
2
GitHub Stars
911
Aggiornato
15 ott
scottstts
Community

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.

installazioni
2
GitHub Stars
911
Aggiornato
15 ott