Seams
- An exterior-class MOBA batch inside an interior group (the inn's cellar stair) took the
night sky; its authored day weight is now scaled by the sun, so it joins the room law after
dark. Exterior-class SHELL groups keep the sky law (moving them to the room law painted
facades black at dusk).
- Containment claims cross portals larger than 28 yd² (floor splits, gallery voids) at full
weight, so a floor cut by a group boundary lights continuously. interiorDebug 4 colours WMO
fragments by lane. wmolights prints group names, lane, portal areas.
Fire
- Flame lights flicker: band-limited sines + smoothed noise per fixture, candle fast/light to
bonfire slow/deep, seeded by position, mean exactly 1; lamps never; authored fixtures only
when warm. Cvar fireFlicker.
Outdoor torch shadows (step a)
- At night exterior fire lights become cube-map casters (half the map budget), WMO exteriors
and models receive them with a world-distance fade; held torches never cast; a fire's own
model is excluded from its map; daylight is bit-identical. Cvar exteriorShadows.
Performance
- Torch lane: static-scene fingerprint walk gated on a residency/part census (was 4 full
walks per frame), entity caster rebuilt at interiorShadowEntityRate Hz (30) and gathered
only within each fixture's reach, receiver shadow taps skipped at zero contribution, table
and claim uploads and the torch bind group skipped when unchanged. Live bank sized to 8
dynamic slots (VRAM 192 -> 144 MiB).
- Sun lanes: live cvars shadowMapSize (default 2048, was 4096), shadowFilter,
characterShadowRate / worldShadowRate (30 Hz proxy rebuilds), shadowCasterReach.
- Measured (inn, 1080p): debug 45 -> 61 FPS, release 83 FPS with everything on.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>