Phase 4 — Frontend Graphics
Duration: ~14 working days
Critical-path predecessor: Phase 1
Status: in progress
Deliverables
- Leaflet multi-layer map — extended from Phase 1/2
- MapLibre GL JS vector engine — feature-flagged, GPU-accelerated
- Three.js + R3F 3D Himalayan terrain — heightmap displacement + POM
- GLSL shader pipeline: atmospheric scattering, snow surface, volumetric clouds
- Post-processing: SSAO, Bloom, ChromaticAberration, Vignette
- Cinematic camera path — deterministic Catmull-Rom spline (Tandi → Salal)
- Engine switcher + quality toggles — runtime Leaflet / MapLibre / 3D
- FPS monitor — diagnostic overlay targeting ≥ 55 fps on M1
- Lighthouse CI gate — 90/95/95/90 budgets on every deploy
Acceptance Gate
60 fps on M1-class machines with all overlays active.
cd snow-ir-app
pnpm dev
# switch engine to "3D" — FPS badge should show ≥ 55 fps on M1+
Parallax Occlusion Mapping
16-step POM in the snow fragment shader delivers micro-topographic detail at zero geometry cost.
Camera Determinism
Per §6.3, all flyovers are deterministic Catmull-Rom splines. The same hazard event renders identically across briefings.