mcpbeat

Threejs Shadow Systems

scottstts/threejs-shadow-systems

Implement stable, scalable directional-shadow systems for Three.js. Use for large procedural worlds, city scenes, terrain, moving cameras, WebGPU/TSL shadow nodes, cascades, cached clipmaps, texel stabilization, update budgets, and targeted invalidation.

3k 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-shadow-systems

The instruction itself

4 sections, as written by the author

Shadow Systems

Use a single shadow map only when its receiver region is genuinely bounded. For large moving views, make shadow coverage an explicit spatial hierarchy.

Cached clipmap workflow

  • Define concentric light-space square levels.
  • Snap each level center to its own texel grid.
  • Cross-fade adjacent levels in shader space.
  • Refresh near levels continuously.
  • Cache coarse levels and update them under a frame budget.
  • Invalidate intersecting levels when important casters or streamed terrain change.
  • Scale normal bias by world-space texel width.

Read references/cached-clipmap-shadows.md before implementing a large-world directional light.

Read the

cached shadow clipmaps

for three light-space square levels, per-level texel snapping, containment

cross-fades, cached coarse updates, scaled bias, and unshadowed outside weight.

Failure conditions

  • projection centers move by fractions of a texel;
  • shader containment does not match the map's committed center;
  • all cascades refresh every frame without evidence;
  • coarse levels freeze moving casters indefinitely;
  • depth texture samples occur in divergent fragment control flow;
  • the same normal bias is used across radically different texel sizes;
  • level boundaries become visible under camera motion.

Routing boundary

Use this skill for light-space directional shadow maps. Use

$threejs-screen-space-ambient-occlusion for view-dependent ambient

visibility; AO is not a replacement for cast shadows.

How to use it

Copy the folder

Take scottstts/threejs-shadow-systems 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.