mcpbeat

Threejs Procedural Fields

scottstts/threejs-procedural-fields

Build coherent procedural scalar and vector fields for Three.js materials and geometry. Use for terrain, planets, wear, biomes, clouds, water masks, displacement, roughness, normals, domain warping, and any visual where several channels must derive from shared causes.

2k tokens
context cost
the whole folder, loaded on every use
3
files
instructions only
0
copies elsewhere
how many repositories repackaged it
527
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/scottstts/Threejs-Awesome-Graphics-Agent-Skills --skill threejs-procedural-fields

The instruction itself

5 sections, as written by the author

Procedural Fields

Do not start by stacking noise. Start by defining the fields the object physically or stylistically needs.

Field contract

Before shader code, write a field bundle:

coordinates
  → macro form
  → meso structure
  → derived causes
  → material channels

Example:

sphereDirection
  → warpedDirection
  → elevation + ridges + craterDepth
  → slope + cavity + latitude + moisture
  → biome + color + roughness + bump

Required workflow

  • Choose coordinates that remain stable under camera and object motion.
  • Lock real or perceptual scale for each frequency band.
  • Create named primary fields. Never hide the whole look in one expression.
  • Derive secondary fields from causes: slope from normals, shore from sea-level distance, wear from exposure, dirt from cavity.
  • Reuse the same fields across color, roughness, normal, displacement, emission, and scattering.
  • Add debug output for every named field.
  • Filter high-frequency fields by derivatives, tessellation density, or camera distance.

Read references/field-stack-recipes.md

before implementation. It records sphere, terrain, water, and

structured-placement field contracts plus common parity defects.

Read the

procedural planet surface

for a shared CPU/GLSL field bundle whose height, continents, climate, biomes,

roughness, and normals remain independently inspectable.

Non-negotiable rules

  • Independent noise per channel produces visual soup. Share structure.
  • Domain warp the coordinates, not every result.
  • Warp spherical coordinates tangentially, then renormalize.
  • Use different frequency bands for silhouette, regions, surface breakup, and micro-normal.
  • Do not displace geometry with frequencies the mesh cannot represent.
  • Keep categorical masks broad enough to avoid isolated “bubble” regions.
  • Parameter names must describe perception: ridgeWidth, coastBlend, cavityDarkening, not noise3Amount.

Routing boundary

Use this skill when the shared field model is the task. Use

$threejs-procedural-materials when the task is channel assembly and material

response, and $threejs-procedural-planets when the deliverable is a complete

planetary body.

How to use it

Copy the folder

Take scottstts/threejs-procedural-fields from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.