verve.gl — Cascaded Shadow Maps (CSM)

Slice 2 capstone: ONE directional light casts shadows split into FOUR cascades. The view frustum is sliced near→far (practical split λ=0.5) and each slice gets its own tight depth pass packed into the shadow atlas. Near shadows stay crisp at high resolution while far shadows stay covered; the fragment shader picks the right cascade per pixel and blends across cascade boundaries so the transitions are seamless. The shadow falls on a flat floor plane that recedes into the distance — near-crisp vs far-smooth is directly observable on the ground receiver — both WebGL2 and WebGPU backends decode all four cascades from the Slice-1 shadow atlas.

Drag to orbit · wheel to zoom · Freeze pins the orbit. Look for a crisp shadow edge close to the cube and a softer shadow where the floor recedes into the distance — different cascade bands at work.