Explore the 26 original 1080p / 30 FPS stage videos →

Toyota GAZOO Racing WRT Digital Twin · Complete Engineering Journey · October 2026 75 commits · 10 engineering chapters · verified candidate & deployed

“Could we vibe-code a WRC racing visualizer?”

What started as a simple prompt and a schematic browser Three.js telemetry ribbon evolved—through 75 commits, three cloud GPU architectures, and ten iterative engineering chapters—into a survey-grounded, 80 Hz physics-coupled photoreal rally stage renderer. Here is the complete story of how we built it, every dead-end we hit along the way, and the frame-accurate evidence behind what runs today.

00 → 09ten iterative engineering chapters across 75 commits, from browser WebGL to cloud GPU ray queries
682k + 4.1Mcurved PN-triangle GR Yaris Rally1 (native 8K PBR) + 8-species scanned botanical forest
80 Hztelemetry-coupled 6-DOF gravel physics, +0.78 m front-axle drift pivot & ballistic Reiger suspension
112 + 42verified 1080p/4K still captures and 5 s / 30 FPS motion & physics A/B clips
01 / From a spark to a digital twin

How a conversational prototype became a full rally simulation.

We did not start with a game engine, a pre-built rally track, or a commercial asset pack. We started with raw 10 Hz World Rally Championship telemetry for #69 Kalle Rovanperä and #33 Elfyn Evans, a browser window, and a question: could we conversationally build (“vibe-code”) an interactive 3D WRC visualizer from scratch?

Each time the prototype worked, the next visual or physical limitation became immediately obvious in the frame. Fixing those bottlenecks one by one forced us to outgrow the browser, bring up bare-metal cloud GPUs (AMD Radeon Pro V710 → NVIDIA A100 → NVIDIA RTX PRO 6000 Blackwell), write custom shaders for 260,000 hair-ribbon grass strands and two-phase hydrodynamic spray, subdivide the car to 682,182 triangles, replace synthetic sine-wave scenery with national LiDAR/topographic surveys, and solve 80 Hz nonlinear vehicle dynamics.

Day 1 / Browser WebGL Prototype (Commit 98e9116) Day 1 browser Three.js WebGL telemetry ribbon prototype with blocky extruded cars
Where it started: a client-side Three.js telemetry viewer with blocky procedural cars, a glowing pink/mint road ribbon, floating LiDAR dots, and a blurred heightmap.
Today / Survey-Grounded Cloud GPU & 80 Hz Physics (Commit dd02879) Current 682k-triangle Toyota GR Yaris Rally1 in a survey-grounded Estonian forest at golden hour
Where it stands today: 682,182-triangle PN-subdivided GR Yaris Rally1, 12-pass 3D wheel shutter blur, 260k-strand Bezier grass, 4.1M-tri botanical bundle, national geodata landscapes, and 80 Hz coupled gravel physics.

1. Multi-source open data fusion

Synchronized 10 Hz WRC telemetry and an A100 CUDA friction-circle optimal ghost (#00) with 30 Hz University of Tartu RTK-GNSS trajectories, Estonian Maa-amet 1 m numeric LiDAR DTMs/nDSMs, Riegl point clouds, ETAK topographic vectors, and Finnish SYKE / Metsäkeskus forest inventories across SS2/SS5 Elva, SS3/SS6 Neeruti, SS4/SS7 Otepää and SS22 Ruuhimäki.

2. Custom cloud GPU rendering pipeline

When browser WebGL hit its ceiling, we moved rendering to cloud GPUs streaming 1080p frames back to the browser HUD. The renderer combines a 260,000-strand Cubic-Bezier hair grass system, an 8-species 4.10M-triangle scanned botanical forest, crown-first 3D Perlin-Worley cumulus clouds, two-phase gravel dust and Weber-breakup puddle spray, and corridor-relative golden-hour lighting.

3. 682k-triangle car & 80 Hz 6-DOF physics

The monolithic car GLB was topologically split into five articulated assemblies (body + FL/FR/RL/RR), subdivided to 682,182 curved PN-triangles with native 8K PBR livery and 12-pass 3D rotational wheel blur, and driven by an 80 Hz sub-stepped single-track bicycle ODE fusing onboard accx/accy G-sensors, a +0.78 m front-axle drift pivot, parabolic crest flight, and decoupled unsprung wheel knuckles.

4. Survey-grounded world & honest audit

Every major visual claim on this page is backed by matched before/after captures, 1080p/30 FPS motion clips, and explicit root-cause diagnostics—including the dead-ends we had to throw away (“bare brown sticks” tree imports, crushed ink-black shadows, faceted far-canopy sheets, and weightless turntable yaw filters).

How to read this page: Start with Section 02 (The Complete 10-Chapter Evolution) to follow the project chronologically from the first WebGL prototype to the final renderer, inspect the close-up Vehicle & Mechanical Zooms (02b) and 80 Hz Physics A/B Videos (02c), and then dive into Sections 03–10 for the deep-dive engineering verification of our survey-grounded landscape architecture (112 formal stills, 26 landscape clips, and 1.91M placed vegetation instances).

What this is—and what it is not: This is an engineering and visual-computing journey showing how far iterative human-AI co-engineering can push a custom scientific/motorsport visualizer when every critique is answered with math, real survey data, and GPU code. It is not an official historical survey or a claim of 30 FPS live throughput at maximum offline capture settings; what is measured, modeled, or approximated is stated explicitly throughout.

02 / The ten-chapter engineering journey (Ch. 00 → Ch. 09)

Step by step: how each bottleneck forced the next breakthrough.

How did we get from a question—“could we vibe-code a WRC racing visualizer?”—and a schematic Three.js WebGL telemetry ribbon to the cloud-rendered digital twin shown above? Across 75 commits and ten major engineering iterations (Chapters 00–09), every leap in visual and physical fidelity came from looking honestly at what felt fake in the current build, diagnosing the exact mathematical or hardware root cause, and re-engineering the subsystem—including several dead-ends that had to be openly abandoned. Click any image below to inspect it in the full-screen lightbox (use ← and → to step chronologically across the entire evolution, or jump to the Vehicle & Mechanical Feature Zooms and the 80 Hz Vehicle Physics A/B Video Showcase).

Six-stage visual snapshot from Day 1 to today

Stage 0 / WebGLEarly browser Three.js WebGL prototype with blocky extruded cars and glowing ribbon road
0. Browser WebGL prototype (98e9116): extruded procedural cars, glowing pink/mint road ribbon, blurred vertex-colored heightmap.
Stage I / First Cloud RTFirst V710 ray-traced frame with procedural green cone trees
1. First V710 ray-traced frame (609a8f1): remote cloud GPU bring-up, procedural cone trees, first wet-rut ray query.
Stage II / 260k Grass260,000-strand Cubic-Bezier hair-ribbon grass carpet
2. Hair-system grass revolution (55f525d): 260,000 Cubic-Bezier strands (1.82M verts) with Kajiya-Kay & Marschner backlighting.
Stage III / Brown SticksRaw Poly Haven 3D tree import showing bare brown sticks
3. The 'bare brown sticks' crisis: raw 3D tree import lost 97.5% canopy area and mip-bled alpha cards to black.
Stage IV / 4.1M Forest + 682k Car4.10M-triangle botanical bundle and 682k-triangle PN-subdivided GR Yaris Rally1
4. 4.10M-tri 8-species botanical bundle (2ff3a0d) + 682k-tri Curved PN-Triangle GR Yaris Rally1 (5b03395) on RTX PRO 6000.
Stage V / Surveyed WorldFinal survey-grounded Elva landscape with metsaserv edge and C2 camera
5. Survey-grounded landscape (edb4b04): Maa-amet/SYKE geodata, 3-tier metsaserv edge, C2 camera, and clip-space stability fix.

Complete chapter index (Ch. 00 → Ch. 09)

Chapter / EraCommitsHardware & Core SubsystemDiagnostic Bottleneck / Dead-EndEngineered Solution
00 / Browser WebGL Prototype98e9116Client-side Three.js / WebGL (src/main.js, src/carMesh.js)Browser WebGL lacked hardware ray tracing, multi-million-triangle botanical budgets, and high-res LiDAR shading; cars were blocky procedural extrusions on a blurry vertex-colored heightmap.Built the initial 5-source telemetry/LiDAR fusion & interactive telemetry HUD in WebGL, then pivoted to dedicated cloud GPU rendering when vmCopilotV710 became available.
01 / Origin & Cloud RT98e9116 -> 609a8f1AMD Radeon Pro V710 (54 RDNA 3 Ray Accelerators)3D terrain scans and WRC telemetry are never distributed together; local Hyper-V VM had no hardware GPU.Fused 5 open datasets (10 Hz WRC telemetry, 30 Hz UT-ADL RTK-GNSS with EPSG:3301 offset discovery, 1 m LiDAR DTM, Riegl .laz clouds, WMS imagery) and injected gc_11_0_3 firmware into initramfs to bring up Vulkan ray queries.
02 / 260k-Strand Hair Grass55f525d, c02c88eOpenGL 4.6 / ModernGL + 6-layer moss shellSparse billboard tufts looked artificial; ModernGL's (LINEAR, NEAREST) texture filter snapped grass along the road every 5.5 m.Built a 260,000-strand (1.82M-vertex) Cubic-Bezier hair-ribbon groom in a rolling 92 m window with Kajiya-Kay + Marschner shading, 54,000 3D gravel pebbles, and explicit 32-bit float texelFetch spline interpolation.
03 / Rally Estonia Grounding & Card-Tree Pivotab66786, bbb12a9Native 1920x1080 streaming + shadow FBO fixglDisable(GL_DEPTH_TEST) prevented shadow_fbo depth writes after frame 0; steering angle was multiplied by 0.075 twice; procedural tree cards looked flat.Restored shadow-map depth testing and true Ackermann wheel angles, calibrated against 8 Rally Estonia photos, and pivoted away from procedural tree card atlases to 3D scanned botanical meshes.
04 / 4.10M-Tri Botanical Bundle2ff3a0dcompile_ultra_highpoly_forest.py (8 species x 3 LODs)Raw Poly Haven 3D tree GLTFs rendered as dead brown skeletons ('bare brown sticks').Solved 4 compounding causes: topological connected-component cluster scaling, morphological solid-color dilation (alpha=255 on 3D needles), Estonian summer chlorophyll re-grading (G/R = 1.30), and lower canopy skirts.
05 / Golden Hour, 682k Yaris & Blackwella2aacbf -> 3beb128V710 -> A100 -> NVIDIA RTX PRO 6000 BlackwellFixed world-space sun pointed from behind the camera on north-west stages; 231k car mesh had faceted arches; V710 hit Hyper-V SR-IOV VF timeout (-110).Switched to corridor-relative cross-lighting (54 deg azimuth, 13.6 deg elevation) with 3D ray-locked shafts, subdivided the GR Yaris Rally1 to 682,182 curved PN-triangles with native 8K/4K atlases, and migrated to RTX PRO 6000.
06 / 15-Still Forensic Audit (RCA-1..8)c665256 -> a0b2a0a6 parallel engineering threads120 px carEllip UV smear; 50% f_tris[::2] rival car decimation; barns buried to their eaves in 1.8x terrain; crystalline pebbles; low banded clouds.Implemented 12-pass 3D wheel shutter blur, Kevlar wheel liners, UE5 Landmass-style graded building pads, spring-damper camera prop avoidance, two-phase dust + Weber V-curtain water spray, and crown-first 3D Perlin-Worley cumulus clouds at 1.45 km LCL.
07 / Broadcast Director & Shadow-Floor Calibration89c9388 -> 63cbb266-shot camera director + exclusive stream sessionsFull 3D tree shadow maps (FOREST_SHADOW_VERT_SHADER) stacked with Option C's 0.03 ambient shadow floor, crushing forest interiors to ink-black.Re-engineered terrain/foliage/road shadow floors with open Baltic blue sky-fill, warm bounce, and self-shadow lift while preserving Option C golden-hour contrast and exclusive stream-session ownership.
08 / Survey-Grounded Landscapes & Temporal Stabilityedb4b04Maa-amet 1 m + ETAK + SYKE 2 m + Metsakeskus + C2 cameraAll four stages still looked like the same uniform green tunnel; 345 m vertex teleportation to vec4(2,2,2,1) caused sky gashes and paused-frame flicker (max diff 105).Built stage-specific national geodata fields, 3-tier Estonian metsaserv edges, frustum-first LOD selection, anticipatory C2 crown-clearance cameras, and proper GPU frustum clipping (paused max diff 105 -> 1).
09 / Telemetry-Coupled 80 Hz Vehicle Physics & Ballistic Suspensiondd02879Cloud EGL + Browser WebGL (v710_renderer.py, a100_renderer.py, src/main.js, src/carMesh.js)Cars felt weightless ('on a turntable'): 2 Hz synthetic straight-line yaw sine wiggle (rut_yaw_kicks), uncoupled lateral crabbing, ignored accx/accy G-sensors, rigid wheel-to-body tilt, and clamped linear spring heave over jumps.Fused auto-calibrated 10 Hz onboard G-sensors (accx, accy) into an 80 Hz sub-stepped nonlinear single-track bicycle ODE with non-holonomic velocity heading, +0.78 m front-axle drift pivot, parabolic crest flight (-7.2 cm droop, 2.35x Reiger damping), and decoupled 4-corner unsprung wheel knuckles.
Chapter 00Commit 98e9116Browser Three.js / WebGL Prototype (src/main.js + src/carMesh.js)

Where It All Started: The Browser WebGL Prototype & The Remote-GPU Pivot

“we have this VM, can we do remote rendering from there - vmCopilotV710”

Before any cloud GPU servers, scanned botanical trees, or hair-ribbon grass existed, the very first version of TGR-WRT-demo ran entirely in the browser as a client-side Three.js / WebGL application (src/main.js and src/carMesh.js). Even at this earliest stage, the core analytical idea was already in place: synchronizing #69 Kalle Rovanperä, #33 Elfyn Evans, and the #00 A100 CUDA Optimal friction-circle ghost across SS22 Ruuhimäki, SS13 Neeruti, SS14 Elva and SS12 Otepää with live speed/throttle/brake telemetry traces and a 1 m LiDAR elevation profile scrubber.

Visually, however, the browser WebGL scene was purely schematic: the cars were blocky procedural extrusions with glowing orange/red proximity rings, the stage road was a flat pink-and-mint ribbon, LiDAR returns were floating colored dots, and the terrain was a low-resolution vertex-colored green heightmap with zero trees or grass. The turning point came mid-conversation (left panel below) when we inspected a 500k-triangle Toyota GR Yaris mesh and decided to move rendering off the browser onto a dedicated cloud GPU VM (vmCopilotV710).

Ch. 00 / The Remote-GPU PivotEarly screenshot showing the Copilot session pivot to vmCopilotV710 alongside the initial WebGL prototype
The exact moment of the architectural pivot: inspecting the 3D GR Yaris mesh on the left while the initial Three.js WebGL telemetry prototype runs on the right.
Ch. 00 / Early WebGL Viewport & HUDFull view of the early WebGL telemetry viewer with blocky procedural cars and glowing road ribbon
Close-up of the original WebGL viewer: blocky procedural cars (#69, #33, #00), glowing telemetry corridor ribbon, floating point dots, and blurred green heightmap.
Chapter 01Commits 98e9116 → 609a8f1AMD Radeon Pro V710 MxGPU (54 RDNA 3 Ray Accelerators)

Origin: Fusing Five Disconnected Open Datasets & First Cloud Hardware Ray-Tracing Bring-Up

The project began from a fundamental data gap: high-resolution 3D terrain scans and competitive WRC rally telemetry are never published together. To build a physically grounded 3D Digital Twin for Toyota GAZOO Racing (TGR-WRT) without proprietary stage packs, we engineered an automated data-fusion pipeline combining five open scientific and government sources:

  • WRC 10 Hz Merged Telemetry & CUDA Optimal Ghost (#69 Rovanperä, #33 Evans, #00 Optimal): Synchronized speed, RPM, gear, throttle, brake, steering and 3D GPS traces across SS2/SS5 Elva, SS3/SS6 Neeruti, SS4/SS7 Otepää and Ruuhimäki, paired with an offline GPU forward-backward friction-circle optimal-control solver (#00).
  • University of Tartu Autonomous Driving Lab (UT-ADL) 30 Hz RTK-GNSS: Extracted厘米-accurate trajectories from summer2021-positions.parquet after discovering the exact local-to-L-EST97 coordinate offset (E = 650000 + x, N = 6465000 + y in EPSG:3301).
  • Estonian Land Board (Maa-amet) 1 m Float32 LiDAR DTM & Riegl VQ-1560i LAZ Point Clouds: Parsed raw 1 m elevation rasters and 2023 airborne laser scanning returns (ground class 2, water class 9, buildings class 6, vegetation classes 3/4/5) alongside 2048×2048 WMS aerial orthophotos.

Because the local workstation environment exposed only a virtual Microsoft Hyper-V Video adapter, we provisioned cloud GPU instances (vmCopilotA100 and vmCopilotV710). On the AMD Radeon Pro V710, the Linux kernel initially failed to initialize the GPU with missing firmware amdgpu/gc_11_0_3_mes1.bin (error -2). Injecting the gc_11_0_3 firmware suite into initramfs unlocked all 54 RDNA 3 hardware Ray Accelerators (VK_KHR_acceleration_structure + VK_KHR_ray_query), powering a custom C++/Vulkan ray-query bridge (libv710_vk_rt.so) over a 36,000-triangle terrain/car BLAS. Visually, however, the first live frames were purely geometric: trees were procedural green cones and the road was a simple ribbon.

Ch. 01 / Frame 1Very first hardware ray-traced frame on AMD Radeon Pro V710
v710_rt_frame1.jpg: The very first hardware ray-traced frame on V710. Procedural green cones for trees, basic terrain ribbon, first wet-rut ray reflection.
Ch. 01 / Chase v2Early chase view with procedural hills and basic gravel road
v710_chase_v2.jpg: Early telemetry-driven chase camera over the LiDAR relief with simple procedural surface shading.
Ch. 01 / Chase v4Early chase view with synthetic puddles and sparse cone/card trees
v710_chase_v4.jpg: Added basic puddle reflections and roadside props, exposing how sparse tufts and cone trees broke realism.
Chapter 02Commits 55f525d, c02c88e, a335de7260,000 Strands / 1.82M Vertices + 54k 3D Pebbles

The Grass & Micro-Surface Revolution: 260,000 Cubic-Bezier Hair Strands & 32-Bit Spline Interpolation

“I don't like the grass, this is just tufts here and there. We should have something like hair systems… Which rendering engine are we using actually? Should we switch to unreal or unity?”

Rather than scattering isolated cross-quad grass tufts (`v710_chase_moss_v1.jpg`), we architected a UE5-Groom / Ghost of Tsushima style instanced 3D curved Cubic-Bezier hair-ribbon grass system (while also generating a companion UE5.4 C++/Python project scaffold with Niagara dust and Chaos Vehicle configs):

  • 260,000 Dynamic 7-Vertex Curved Ribbons (1.82M vertices): Continuously recycled inside a camera-locked 92 m rolling field around the car, with species zones (tall golden-headed Calamagrostis reed grass on outer banks, lush Festuca meadow fescue on ditch slopes, and short Poa pratensis verge turf near the gravel edge).
  • Physical Fiber Shading: Combined Kajiya-Kay anisotropic longitudinal strand highlights with Marschner backlit subsurface chlorophyll transmission and a 6-layer volumetric moss shell raymarcher on ditch shoulders.
  • The 5.5 m Texture-Filter Snapping Bug: Early hair-grass renders exhibited periodic step-snapping along the road every 5.5 m. Root cause: ModernGL mapped a 2-tuple filter on a 32-bit float road-spline texture to (LINEAR, NEAREST), disabling hardware linear interpolation! Switching to explicit sub-texel texelFetch linear interpolation in GLSL eliminated the stepping completely. We also added 54,000 instanced 3D gravel pebbles in a 28 m rolling window.
Ch. 02 / Before GroomSparse grass tufts before the 260,000-strand hair system
v710_chase_moss_v1.jpg: Before the hair-ribbon system — sparse tufts over a 6-layer moss shader.
Ch. 02 / First 260k GroomFirst 260,000-strand Cubic-Bezier hair-grass prototype
v710_hair_chase.jpg: First 260,000-strand Cubic-Bezier hair-grass pass before spline texelFetch and botanical color tuning.
Ch. 02 / Groom v3Calibrated 260,000-strand hair-grass carpet with Kajiya-Kay and Marschner shading
v710_hair_chase_v3.jpg: Calibrated 260,000-strand groom with Kajiya-Kay specular, Marschner backlit translucency, and sub-texel spline interpolation.
Ch. 02 / Low OrbitLow-orbit inspection of the 260,000-strand grass carpet and gravel verge
v710_hair_orbit_v4.jpg: Low-orbit inspection showing continuous ditch-to-meadow fiber density.
Chapter 03Commits ab66786, bbb12a9Native 1080p + Shadow FBO Fix + Procedural Tree Pivot

Ground-Truth Rally Estonia Calibration, Depth-Buffer Shadow Fix & The Procedural Tree Dead-End

“ok stop, this is a dead end. do extensive research first to see best practices in generating procedural trees, failing that, just download very high poly tree models that fit… abandon these generated trees, they look terrible.”

With the grass carpet working, we audited the renderer against eight real WRC Rally Estonia photographs from Otepää, Elva and Tartu, upgraded the live stream pipeline from 720p to native 1920×1080 (bbb12a9), and uncovered two critical rendering bugs:

  • Missing Real 3D Shadows after Frame 0: Calling glDisable(GL_DEPTH_TEST) at the end of render_frame left depth testing disabled when the next frame's shadow_fbo pass began. Because OpenGL suppresses depth-buffer writes whenever GL_DEPTH_TEST is disabled, the 2048×2048 shadow map stayed frozen at 1.0 after frame 0, leaving only a rectangular analytic traceCarBox proxy under the car!
  • Double-Attenuated Ackermann Steering (0.075 × 0.075): Steering wheel angle was multiplied by 0.075 both during telemetry ingestion and inside render_frame, reducing a 25° wheel lock to an imperceptible 0.3°.
  • The Procedural Tree Card-Atlas Dead-End: We built a 5-column procedural tree atlas (baltic_3d_tree_atlas_v6) with normal-mapped bark and foliage cards (`v710_v6_low_orbit_trees.jpg`). Under close orbit inspection, intersecting alpha cards still read as flat paper cutouts. Following the user's pivot, we abandoned procedural card trees entirely in favor of real 3D botanical geometry.
Ch. 03 / Palette & Shadow FixRally Estonia palette calibration and restored shadow FBO depth writes
v710_estonia_ultra_chase.jpg: Restored shadow_fbo depth writes and limestone/sand gravel grading, still limited by procedural trees.
Ch. 03 / Front Quarter & Steering FixFront-quarter inspection after restoring true +/-25 deg Ackermann steering lock
v710_v6_front_quarter.jpg: Front-quarter view after fixing the double-attenuated (0.075x0.075) steering bug and restoring real shadow FBO depth writes.
Ch. 03 / Procedural Tree Dead-EndLow-orbit view of the procedural v6 tree card atlas that was abandoned
v710_v6_low_orbit_trees.jpg: The procedural v6 card-atlas dead-end that prompted the pivot to real 3D scanned botanical meshes.
Chapter 04Commit 2ff3a0d4.10M Triangles / 8 Species × 3 LODs

From “Bare Brown Sticks” to the 4.10M-Triangle 8-Species Botanical Bundle

When we first imported raw 3D tree GLTF models from Poly Haven (`v710_ph3d_chase.jpg` and `v710_ph3d_forest_orbit.jpg`), the result was a visual shock: the trees rendered as dead, skeletal brown sticks. A four-part forensic diagnosis revealed why naive 3D plant imports fail at rally viewing distances:

  1. 97.5% Canopy Surface-Area Loss from Uncompensated Subsampling: The source conifer scans modeled 4.14M individual 1 cm × 2 mm 3D needles (148 m² total needle area). Subsampling to 100k triangles without scaling up the surviving needle clusters reduced canopy area to 3.6 m²!
  2. 75% Alpha-Card Knockout & Black Mip-Bleeding on 3D Needles: A twig-card alpha texture (75% transparent [0,0,0,0] pixels) was bound to already-3D-modeled individual needles and leaves. Worse, trilinear mipmapping averaged the transparent [0,0,0,0] background into the needle RGB texels (`mean_rgb = [27, 27, 15]`), turning surviving foliage pitch-black at distance.
  3. Dry South African Scan Albedo: The raw scans had drought-brown foliage (R > G, [101, 98, 46]) instead of lush July Estonian chlorophyll (G/R = 1.30).
  4. Missing Lower Canopy Skirts: High-branching scans had no foliage below y = 0.45, leaving an empty trunk hallway at the 2.8 m chase-camera eye height.

We built scripts/compile_ultra_highpoly_forest.py to compile 13 Poly Haven botanical scans into an 8-species × 3-LOD runtime bundle (4.10M LOD0 triangles, 2,068,548 vertices): finding exact topological needle/leaf clusters via scipy.sparse.csgraph.connected_components and scaling each cluster around its 3D centroid, forcing alpha = 255 with 5-pass morphological solid-color dilation, re-grading foliage to Estonian summer chlorophyll, and grafting lower canopy skirts (`uhp` v1 → v3 → v7).

Ch. 04 / Raw Import FailureInitial Poly Haven 3D tree import rendering as bare brown sticks
v710_ph3d_chase.jpg: Initial raw 3D tree import — 97.5% needle area loss + black alpha-mip bleeding produced 'bare brown sticks'.
Ch. 04 / Skeletal OrbitOrbit view of the bare brown stick failure before cluster scaling
v710_ph3d_forest_orbit.jpg: Orbit inspection confirming that unscaled 1 cm 3D needles vanish below 1 pixel at 25 m.
Ch. 04 / UHP v1First UHP pass with connected-component cluster scaling
v710_uhp_chase.jpg: First connected-component cluster scaling pass (uhp v1) restoring crown volume.
Ch. 04 / UHP v3Mid-iteration UHP v3 with alpha dilation and summer chlorophyll
v710_uhp3_chase.jpg: UHP v3 after morphological solid-color dilation (alpha=255) and Estonian summer chlorophyll grading.
Ch. 04 / UHP v7 Final BundleCompleted 4.10M-triangle 8-species botanical bundle uhp7
v710_uhp7_chase.jpg: Completed 4.10M-triangle 8-species botanical bundle (uhp7) with full lower canopy skirts.
Ch. 04 / UHP v7 Close-UpClose-up of UHP v7 foliage and roadside straw bale
v710_uhp7_bale_closeup.jpg: Close-up verification of uhp7 needle/leaf cluster density and roadside bale detail.
Chapter 05Commits a2aacbf → 3beb128682,182-Tri GR Yaris Rally1 + RTX PRO 6000 Blackwell

Nordic Golden Hour, 682k-Triangle PN-Subdivided GR Yaris Rally1 & Cloud GPU Migration

Next we tackled atmospheric lighting, hero vehicle fidelity, and cloud GPU resilience:

  • Corridor-Relative Nordic Golden Hour (a2aacbf): A fixed world-space sun vector ([-0.64, 0.25, -0.73]) pointed from behind the camera on north-west stages (dot(fwd, sun_dir) = -0.35), eliminating Henyey-Greenstein forward scattering in dust and foliage translucency. Switching to a stage-corridor-relative low sun (54° cross-track azimuth, 13.6° elevation, 3800K amber key against 7500K zenith sky fill) and 3D ray-locked canopy shafts (projecting world points along the sun vector to canopy height 14.5 m) restored dramatic golden side-rim lighting across all four stages.
  • 682,182-Triangle Curved PN-Triangle GR Yaris Rally1 (5b03395): We replaced the 231k-triangle car mesh and downscaled 4K diffuse atlas with crack-free edge-welded Curved PN-Triangle subdivision (682,182 triangles) and a native 1:1 8192×8192 Albedo + 4096×4096 Tangent-Space Normal + 4096×4096 Packed ORM material pipeline with dual-lobe carbon-weave clearcoat and micro-flake metallic paint.
  • Hardware Migration to NVIDIA RTX PRO 6000 Blackwell (5276d92, 3beb128): When vmCopilotV710 suffered a hypervisor SR-IOV VF PCIe reset timeout (error -110), we built the dual-backend a100_renderer.py / v710_renderer.py parity architecture and migrated onto NVIDIA RTX PRO 6000 Blackwell with hardware 10-bit AV1 NVENC and WebCodecs low-latency streaming.
Ch. 05 / Golden Hour ShaftsCorridor-relative 54-degree Golden Hour cross-lighting and 3D ray-locked canopy shafts
v710_lumen2_chase.jpg: Corridor-relative 54 deg Golden Hour cross-lighting with 3D ray-locked canopy light shafts.
Ch. 05 / A100 Parity Bring-UpThree-quarter hero view on NVIDIA A100 during cloud GPU migration
a100_lumen_quarter.jpg: Three-quarter hero view on NVIDIA A100 validating cross-vendor renderer parity.
Ch. 05 / 682k Yaris Hero682,182-triangle Curved PN-Subdivided GR Yaris Rally1 with native 8K albedo atlas
rtx6000_682k_front_quarter.jpg: 682,182-triangle Curved PN-Subdivided GR Yaris Rally1 with native 8K albedo + 4K normal/ORM atlases on RTX PRO 6000 Blackwell.
Ch. 05 / 682k Front OrbitFront orbit view of the 682k-triangle GR Yaris Rally1
rtx6000_682k_orbit_front.jpg: Close front-orbit view showing smooth PN-subdivided wheel arches, livery crispness, and 3D rotational wheel blur.
Chapter 06Commits c665256 → a0b2a0a15-Still Forensic Audit & 6 Parallel Engineering Threads

The 15-Still Forensic Audit (RCA-1..8): Cars, Graded Farmstead Pads, Props, Hydrodynamics & Cumulus Sky

Instead of judging quality from a single flattering chase angle, we captured a 15-still forensic matrix covering pack races, close-up wheel wells, rural buildings, roadside props, dry gravel roost, puddle splashes and sky horizons, then dispatched six parallel engineering workstreams to eliminate every artifact:

  • RCA-1..4 — Car Motion Smear, Rival Mesh Integrity & 12-Pass 3D Wheel Blur (69d7330, 13cfd20): Removed the hardcoded screen-space UV ellipse (carEllip) that smeared close-up and pack cars by 120 px; removed f_tris[::2] 50% triangle deletion on rival cars #33 and #00; corrected tire ground-contact heights and added radial contact-patch sidewall bulge; enclosed hollow wheel arches with 3D Kevlar liners; and implemented 12-pass 3D rotational shutter accumulation for spinning wheels.
  • RCA-5 — Graded Farmstead Pads & Rural Photogrammetry (054534f, b617736): Because terrain relief used a 1.8× vertical exaggeration, a 14 m wide barn placed on a 12° hillside had a 5.3 m elevation delta across its footprint — burying the uphill wall to its eaves (`topic2_08_barn_elva_t77.20.jpg`). We implemented UE5 Landmass-style smoothstep foundation pad grading in _build_stage plus scanned rural buildings (`B1..B6`).
  • RCA-7 — Camera Prop Avoidance, White LLDPE Silage Bales, Catenary Banners & Oblate Pebbles (526c405): Added spring-damper camera prop collision repulsion, replaced orange cylinders with white LLDPE-wrapped silage bales and birch marker stakes, added sagged 3D catenary stage banners, and flattened jagged crystalline gravel into oblate river pebbles.
  • RCA-6 & RCA-8 — Two-Phase Dust, Weber-Breakup Water Spray & Crown-First 3D Cumulus Clouds (6a307e2, e741743, 9015b73): Separated ballistic gravel roost from translucent Beer-Lambert silt wakes, built a dedicated hydrodynamic V-curtain liquid sheet shader for puddle splashes, and replaced low horizon-hugging cloud bands with a crown-first (hFrac = 1.0 - s) 3D Perlin-Worley cumulus layer at the 1.45 km Estonian summer lifting condensation level.
Ch. 06 / RCA-5 Before (Buried Barn)Barn buried up to its roof eaves in ungraded 1.8x exaggerated hillside
topic2_08_barn_elva_t77.20.jpg: Before pad grading — 1.8x terrain slope buried the uphill wall of the barn up to its roof eaves.
Ch. 06 / RCA-5 After (Graded Pad)Barn sitting cleanly on a UE5 Landmass-style graded level building pad
after_08_barn_elva_t77.20.jpg: After UE5 Landmass-style smoothstep foundation pad grading and gravel apron blending.
Ch. 06 / RCA-7a Camera Collision FixBefore and after spring-damper camera prop collision avoidance
topic4_rca7a_camera_collision_before_after.png: Spring-damper camera repulsion prevents roadside banners and stakes from clipping the lens.
Ch. 06 / RCA-7b White LLDPE BalesWhite LLDPE wrapped silage bales and birch marker stakes
topic4_rca7b_white_lldpe_bales_stakes.png: Authentic Baltic white stretch-film (LLDPE) silage bales and painted birch marker stakes.
Ch. 06 / RCA-7c Catenary Banners3D catenary rally banners with wind sag and wooden stakes
topic4_rca7c_catenary_banner_wooden_stakes.png: Subdivided 3D catenary banner geometry with natural gravity sag and wooden support stakes.
Ch. 06 / RCA-7d Oblate PebblesOblate water-worn gravel pebbles replacing sharp crystalline shards
topic4_rca7d_oblate_pebbles_validation.png: Oblate spheroid scaling + bottom-hemisphere normal clamping eliminates sharp crystalline facets.
Ch. 06 / Two-Phase Gravel DustTwo-phase ballistic gravel roost and translucent Beer-Lambert silt wake
after_12_particles_dry_dust_fast_t10.35.jpg: Two-phase dry dust — dark ballistic gravel roost at the tire contact patch + backlit silt aerosol wake.
Ch. 06 / Hydrodynamic Water SprayWeber-breakup hydrodynamic V-curtain puddle splash in chase view
after_14_particles_water_splash_chase_t13.31.jpg: Hydrodynamic V-curtain liquid sheet shader with Fresnel sky reflection and Mie mist.
Ch. 06 / Water Splash Close-UpClose-up of Weber-breakup water spray and ligament breakup
after_15_particles_water_splash_closeup_t10.95.jpg: Close-up showing liquid core, ligament breakup, and bounded brake-light scatter.
Ch. 06 / 3-Car Pack Roost & Silt WakeThree-car pack chase with two-phase gravel roost and backlit silt wake
car_pack_chase_particles_after.jpg: Multi-car pack chase combining watertight 682k rival meshes with two-phase gravel roost and backlit silt wakes.
Ch. 06 / Hydrodynamic Splash SheetHydrodynamic puddle splash sheet with Fresnel sky reflection
car_water_splash_hydro_after.jpg: Full-stage hydrodynamic puddle splash with Weber-breakup liquid sheet and wet road reflections.
Ch. 06 / Cumulus Sky (Noon)Crown-first 3D Perlin-Worley cumulus sky-dome at noon
cumulus_verify_01_noon.jpg: Crown-first 3D Perlin-Worley cumulus clouds at 1.45 km LCL with silver-lining phase scattering (noon).
Ch. 06 / Cumulus Sky (Golden Hour)Crown-first 3D Perlin-Worley cumulus sky-dome at golden hour
cumulus_verify_06_golden.jpg: Same 3D volumetric cumulus dome under low-angle golden-hour cross-lighting.
Chapter 07Commits 89c9388 → 63cbb26Broadcast Director + Stream Ownership + Shadow-Floor Fix

Broadcast Camera Director, Exclusive Stream Ownership & Fixing the Ink-Black Shadow Regression

As the live viewer matured with a 6-shot broadcast camera director, pursuit-drone aerodynamics (7fa3d50, 641e666), 10 Hz mistake-zone telemetry overlays (079ac4e), and single-owner stream session protection (09c4dfa), a subtle lighting interaction appeared when we restored the dramatic Option C Cinema Golden-Hour Contrast preset (567ea12):

  • Why Shadows Turned Ink-Black (`05_current_black_shadows_chase_t12.jpg`): When Option C was first tuned, only the car wrote to shadow_fbo. Later, full 3D tree shadow casting (FOREST_SHADOW_VERT_SHADER) was enabled across the 170 m ortho shadow cascades. Stacking real 3D tree shadow maps with Option C's 0.03 terrain shadow floor, 0.20 AO floor, and 1.15 ACES power curve multiplied shadowed terrain down to 0.6% albedo before ACES crushed it to pure black!
  • Open Sky-Fill Shadow Calibration (63cbb26): We decoupled shadowed sky-dome diffuse irradiance from direct sun occlusion — lifting the terrain shadow floor to 0.22, adding Baltic blue sky-fill (vec3(0.055, 0.068, 0.082)) and warm ground bounce in shadowed foliage, and relaxing ACES shadow toe compression (`06_fixed_open_shadows_chase_t12.jpg`).
Ch. 07 / Pre-Option C BaselineFlat daylight baseline before Option C golden-hour restoration
00_baseline_chase_t12.jpg: Earlier flat daylight baseline before restoring Option C Cinema Golden-Hour contrast.
Ch. 07 / Ink-Black Shadow RegressionCrushed ink-black shadows when 3D tree shadow maps stacked with 0.03 shadow floor
05_current_black_shadows_chase_t12.jpg: Regression when full 3D tree shadow maps stacked with Option C's 0.03 shadow floor.
Ch. 07 / Calibrated Open ShadowsCalibrated open sky-fill shadows preserving golden-hour contrast and bark/gravel detail
06_fixed_open_shadows_chase_t12.jpg: Calibrated open sky-fill shadow floor (63cbb26) preserving both golden-hour drama and shadow detail.
Chapter 08Commit edb4b04Maa-amet 1 m + ETAK + SYKE 2 m + Metsäkeskus + C2 Camera

Breaking the “Procedural Corridor”: Survey-Grounded Landscapes, Metsaserv Edges & Temporal Stability

Even with 4.10M-triangle scanned trees, 260k-strand grass, a 682k-triangle car and golden-hour lighting, all four rally stages still looked like the same uniform green tunnel. Our final investigation — documented in full detail across Sections 03 through 10 of this report — traced that homogeneity to six structural root causes in _build_forest_mesh and the vertex shaders:

  1. Unused Real Geodata: _build_forest_mesh ignored LiDAR canopy heights and orthophotos, driving all four stages with the same 1D trigonometric wave _eval_biome_openness(s_m, side).
  2. Savanna Thinning vs. Binary Stand Mosaic: Dropping trees via independent Bernoulli trials (prob = base_prob * (1 - openness * 0.85)) turned closed forests into sparse golf-course savannas instead of alternating between 100% open agricultural meadows and tight, closed-canopy stands.
  3. The w_s Crown-Width Illusion: Height-normalized conifer meshes have a model-space radius of only 0.13..0.25 units, making their true world-space crowns 4× narrower than nominal w_s assumed.
  4. Missing 3-Tier Estonian Metsaserv (Forest Edge): Real hemiboreal stand boundaries seal the lower 0–10 m with a continuous curtain of ditch ferns/shrubs (skirt), grey alder/hazel/willow saplings (mantle), and interlocking pine/spruce/birch crowns (overstory).
  5. Post-Slice Frustum Culling & Distant Component Thinning: Slicing [:n2] before frustum culling let off-screen trees consume half the visible quota, while fol_all[::2] / fol_all[::4] thinned distant crowns.
  6. The 345 m Connected-Mesh Clip-Space Teleportation Bug: Moving individual vertices beyond 345 m to gl_Position = vec4(2.0, 2.0, 2.0, 1.0) stretched boundary triangles across the screen and caused paused-frame flicker (max diff 105 → 1 after restoring hardware frustum clipping and 1.0 far sky depth).

The rest of this report presents the complete geospatial data pipeline, engineering implementation, 54 matched still pairs, and 26 five-second 1080p/30 FPS motion clips proving Chapter 08 in detail.

Chapter 09Commit dd0287980 Hz Nonlinear Single-Track ODE + Onboard G-Sensors + Ballistic Reiger Suspension

Giving the Car Real Mass: Telemetry-Coupled 80 Hz Vehicle Dynamics, Front-Axle Drift Pivoting & Unsprung Wheel Articulation

“the cars move in a way that doesn’t quite seem believable, they don’t seem to have the ‘weight’ behind it. Especially the heading, it seems the cars just turn on a dime, as if the steering wheel directly changes the heading (as if it’s on a platform).”

Inspecting the car’s motion in playback exposed five mathematical causes behind that “weightless / turntable” feel: (1) lateral offset (lat_offset) and yaw slip (slip_angle) were solved as two uncoupled filters while heading referenced the static road centerline tangent rather than the car’s displaced velocity vector (“crabbing on a dolly”); (2) corner-entry yaw added up to 23° of algebraic curvature slip around the center (0,0,0) while rut_yaw_kicks injected a synthetic 2.0 Hz straight-line yaw sine wiggle (±6.5° to ±22.9° on straightaways); (3) real 10 Hz onboard accelerometer channels (accx, accy) in the WRC telemetry JSON were ignored (and had inverted axis polarity on ruuhimaki); (4) all four wheels were multiplied by the sprung chassis_mat (w_world = chassis_mat @ w_local), tilting the tires rigidly off the road when the body rolled or dived; and (5) crest jumps used a clamped symmetric linear spring (ζ = 0.28) with no parabolic free-fall or rebound damping control.

In commit dd02879 (scripts/v710_renderer.py, scripts/a100_renderer.py, src/main.js, src/carMesh.js), we replaced the uncoupled filters with a coupled 80 Hz sub-stepped nonlinear 6-DOF rally physics engine. See Section 02c below for the full mathematical architecture and 8 synchronized 1920×1080 / 30 FPS A/B video comparisons.

02b / Vehicle & mechanical feature deep-dives

Zooming in on the car: wheel blur, 682k mesh & articulated wheels.

Landscape fidelity only works if the hero Toyota GR Yaris Rally1 (#69) and its pack rivals (#33, #00) hold up under close-up broadcast scrutiny. Below we zoom into the three most important vehicle-level engineering breakthroughs — pairing calibrated 1:1 high-magnification macro crops with the full 1920×1080 before/after frames. Click any macro card or close-up to inspect it at up to 500% magnification in the full-screen lightbox.

Feature SubsystemBefore (Diagnostic Failure Mode)After (Engineered 3D Solution)Commits / RCAs
01 / Wheel Blur & Wheel-Well Enclosure120 px screen-space UV ellipse (carEllip) smeared car bodywork horizontally while 3D wheel geometry rendered in 1 static pass (frozen spokes at 142 km/h) inside hollow open wheel arches.Removed screen-space carEllip UV smear; added 12-pass 3D rotational shutter accumulation (N_WHEEL_BLUR = 12 over 180 deg shutter angle), radial contact-patch sidewall bulge, and 3D Kevlar inner fender liners.69d7330, 13cfd20 (RCA-1, RCA-3, RCA-4)
02 / Mesh Subdivision, Native 8K PBR & Rival Integrity231,098-tri base mesh had polygonal wheel arches and a downscaled 4096x4096 atlas; rival cars (#33, #00) used f_tris[::2] 50% triangle deletion, turning bodywork into 'Swiss-cheese' holes.Edge-welded Curved PN-Triangle subdivision to 682,182 triangles + native 8192x8192 sRGB Albedo + 4096x4096 Normal & ORM atlases with dual-lobe clearcoat; restored full 682k watertight mesh on all rival cars.5b03395, 69d7330 (RCA-2)
03 / 5-Part Articulated Wheels, Steering & Braking DiveMonolithic static GLB mesh could not spin or steer wheels independently; steering angle was multiplied by 0.075 twice (0.3 deg max lock); chassis lacked braking pitch and arch compression.Connected-component 5-part topological split (body + FL/FR/RL/RR wheels) keeping struts on chassis; true +/-25 deg Ackermann kingpin yaw + cumulative axle spin integral(v/r dt) + telemetry braking pitch/dive.ab66786, 69d7330, 13cfd20
Feature Zoom 01Commits 69d7330 → 13cfd20RCA-1 + RCA-3 + RCA-4 · 12-Pass 3D Shutter Accumulation

12-Pass 3D Rotational Wheel Blur, Tire Contact Squish & Enclosed Kevlar Wheel Liners

In earlier builds, high-speed motion blur was approximated in the post-process shader using a hardcoded 120 px screen-space UV ellipse (carEllip, RCA-1), while the 3D wheel geometry itself was drawn in a single static pass (0 rotational shutter samples). At 142 km/h on SS2/SS5 Elva, this produced two simultaneous visual contradictions:

  • Smudged Bodywork + Frozen Spokes: The screen-space UV ellipse smeared the stationary Panasonic rear wing, #69 door number, and TOYOTA tailgate horizontally across 120 pixels, yet the white 12-spoke OZ Racing gravel rims remained completely frozen as if parked.
  • Hollow Wheel-Arch Sky Leaks (RCA-4) & Rigid Tires (RCA-3): Because the raw car shell lacked inner fender wells, bright sky and background grass leaked straight through the gap behind the front tires, and the tires floated rigidly without radial load deflection at the gravel contact patch.

The Fix: We removed carEllip screen-space smearing from the car body and implemented true 12-pass 3D rotational shutter accumulation (N_WHEEL_BLUR = 12 sub-frame rotor steps distributed across a 180° shutter angle Δθ = ω · Δtshutter around each wheel’s 3D hub axis), added radial contact-patch sidewall bulge (RCA-3), and sealed all four wheel wells with 3D matte Kevlar inner fender liners (RCA-4).

Macro Zoom 01a / Rear 3/4 Radial Wheel Blur & Dust PlumeHigh-magnification 3.0x loupe comparison of Rear-Right (1A/2A) and Front-Right (1B/2B) wheels showing 12-pass 3D radial spoke blur
zoom_wheel_blur_macro.jpg: Calibrated Rear 3/4 comparison with 3.0x loupes on the Rear-Right (1A vs 2A) and Front-Right (1B vs 2B) wheels. Left: 120 px carEllip UV smear with frozen spokes. Right: 12-pass 3D radial spoke blur, tire contact squish, and volumetric gravel dust.
Macro Zoom 01b / Front 3/4 Kevlar Liner & Radial Spoke BlurHigh-magnification 3.0x loupe comparison of Front-Right (1A/2A) and Rear-Right (1B/2B) wheel arches and radial spoke blur
zoom_wheel_liner_front34_macro.jpg: Calibrated Front 3/4 comparison with 3.0x loupes on the Front-Right (1A vs 2A) and Rear-Right (1B vs 2B) wheels. Left: Hollow wheel well leaks background behind static spokes. Right: Enclosed 3D Kevlar inner fender liner + 12-pass 3D radial blur.
Full Frame Before / Rear 3/4 Close-UpFull 1920x1080 Rear 3/4 close-up before fixing carEllip UV smear and frozen wheels
car_closeup_rear34_before.jpg: Full 1080p Rear 3/4 close-up before RCA-1/3/4 — 120 px horizontal UV smear across the car body and frozen white spokes.
Full Frame After / Rear 3/4 Close-UpFull 1920x1080 Rear 3/4 close-up after 12-pass 3D wheel shutter blur and carEllip removal
car_closeup_rear34_after.jpg: Full 1080p Rear 3/4 close-up after RCA-1/3/4 — crisp Panasonic/TGR livery, 12-pass 3D spinning rims, and grounded tire contact.
Feature Zoom 02Commits 5b03395 & 69d7330682,182 Curved PN-Triangles + Native 8K PBR + RCA-2 Rival Mesh Fix

Mesh & Material Upgrade: 231k Faceted & 50%-Decimated Rivals → 682,182 Curved PN-Triangles & Native 8K PBR

Close-up cameras exposed two separate geometric bottlenecks — one on the hero car and a catastrophic decimation bug on the pack rival cars:

  • Hero Mesh Subdivision & Native 8K PBR Pipeline (5b03395): The original 231,098-triangle GLB exhibited polygonal, faceted silhouettes along the flared carbon wheel arches and front splitter, while its diffuse texture had been downscaled to 4096×4096, softening thin sponsor scripts (DMG MORI, CCI, DENSO, Pirelli). We implemented crack-free edge-welded Curved PN-Triangle subdivision to 682,182 triangles and bound the native 1:1 8192×8192 sRGB Albedo atlas alongside 4096×4096 Tangent-Space Normal and 4096×4096 Packed ORM (Occlusion / Roughness / Metallic) maps with dual-lobe carbon-weave clearcoat and micro-flake metallic paint.
  • Eliminating the 50% Rival Car “Swiss-Cheese” Decimation (RCA-2, 69d7330): In pack-chase views, rival cars #33 Evans and #00 A100 Optimal had been rendered with f_tris[::2] — slicing out every second triangle (50% polygon deletion) as a crude optimization. That left both rival cars looking like shattered polygon soup with missing doors, roof holes, and broken bumpers (`car_pack_decimation_before.jpg`). Restoring the full watertight 682,182-triangle mesh on all three cars eliminated every gap.
Macro Zoom 02a / 231k + 4K vs 682k PN + Native 8K PBRHigh-magnification 3.0x loupe comparison of Door Livery (1A/2A) and Front Aero & Headlight (1B/2B)
zoom_mesh_improvement_macro.jpg: Calibrated Front 3/4 comparison with 3.0x loupes on Door Livery (1A vs 2A: DENSO / Monte-Carlo badge) and Front Aero & Headlight (1B vs 2B: Panasonic / OMP splitter). Left: 231k mesh + 4K diffuse. Right: 682,182 Curved PN-Triangles + native 8192x8192 Albedo.
Macro Zoom 02b / Rival Car 50% Decimation Fix (RCA-2)High-magnification 3.0x loupe comparison of #33 E. Evans (1A/2A) and #69 K. Rovanpera (1B/2B) in pack chase
zoom_rival_decimation_macro.jpg: Calibrated pack-chase comparison with 3.0x loupes on #33 E. Evans (1A vs 2A) and #69 K. Rovanpera (1B vs 2B). Left: f_tris[::2] deleted 50% of triangles on rival cars, leaving 'Swiss-cheese' holes. Right: Full watertight 682k mesh across the pack.
Full Frame Before / Front 3/4 Close-UpFull 1920x1080 Front 3/4 close-up before RCA-1..4
car_closeup_front34_before.jpg: Full 1080p Front 3/4 close-up before fixing screen-space smear, hollow wheel liners, and static spokes.
Full Frame After / Front 3/4 Close-UpFull 1920x1080 Front 3/4 close-up with 682k PN-Triangles, native 8K livery, Kevlar liners, and 12-pass wheel blur
car_closeup_front34_after.jpg: Full 1080p Front 3/4 close-up with 682,182 Curved PN-Triangles, native 8K PBR livery, Kevlar wheel liners, and 12-pass spoke blur.
Full Frame Before / Pack Chase (f_tris[::2] Bug)Full 1920x1080 pack chase showing shattered rival cars with 50% missing triangles
car_pack_decimation_before.jpg: Pack chase at t=6.2s on SS2 Elva before RCA-2 — rival cars #33 and #00 have 50% of their triangles deleted via f_tris[::2].
Full Frame After / Pack Chase (Watertight 682k Pack)Full 1920x1080 pack chase with watertight 682k meshes on all three cars
car_pack_decimation_after.jpg: Matched pack chase after restoring the full watertight 682k-triangle mesh and removing carEllip smear across all three cars.
Feature Zoom 03Commits ab66786, 69d7330, 13cfd205-Part Connected-Component Split + Ackermann Yaw + Braking Pitch

Articulated 5-Part Wheels: Topological Mesh Separation, Ackermann Steering & Braking Dive Kinematics

The raw Toyota GR Yaris Rally1 asset was delivered as a single monolithic static mesh — the wheels, tires, brake calipers, coilover struts, and chassis were all fused into one vertex buffer. To make the car respond physically to 10 Hz / 30 Hz WRC telemetry, we engineered a three-stage mechanical articulation pipeline:

  1. 5-Part Topological Connected-Component Separation: Using scipy.sparse.csgraph.connected_components combined with axle spatial bounding volumes (z_front = +1.23 m, z_rear = -1.32 m, y_axle = 0.33 m, r_wheel = 0.35 m), we partitioned the mesh into five independent articulated groups (body + FL, FR, RL, RR wheel/tire/rim assemblies) while keeping the upper orange/gold coilover suspension struts rigidly attached to the body shell so they never spin with the wheel (`yaris_5part_topological_split.jpg`).
  2. True Ackermann Kingpin Steering & Cumulative Axle Spin (ab66786): Early builds multiplied steering wheel telemetry by 0.075 during ingestion and again by 0.075 inside render_frame (0.075 × 0.075 = 0.005625), clamping a 25° cornering lock down to an invisible 0.3°! Fixing the double attenuation restored full ±25° kingpin yaw articulation (Y axis) composed with cumulative angular wheel integration θ(t) = ∫(v / rtire) dt around each hub’s local X axis (`zoom_articulated_wheels_macro.jpg`).
  3. Dynamic Braking Pitch, 880 °C Glowing Brake Rotors & Steered Rotor Blur (69d7330, 13cfd20): Under heavy braking entering the chicane, longitudinal deceleration drives forward chassis pitch/dive, compresses the front wheel arch down over the tire, heats the ventilated steel brake discs to a visible 880 °C orange-red thermal glow behind the calipers, and composes kingpin steering lock with 12-pass 3D rotational spoke blur (`zoom_braking_dive_macro.jpg`).
Diagnostic 03a / 5-Part Connected-Component Mesh Split4-view orthographic diagnostic showing the 5-part topological separation of the GR Yaris Rally1 into body and FL/FR/RL/RR wheel assemblies
yaris_5part_topological_split.jpg: 4-view orthographic diagnostic of the connected-component topological split — separating FL (red), FR (green), RL (blue), and RR (gold) wheel assemblies around axle centers while retaining upper suspension struts on the chassis.
Macro Zoom 03b / 5-Part Articulated Hubs, Radial Blur & Hydro WakeHigh-magnification 3.0x loupe comparison of Rear-Right (1A/2A) and Front-Right (1B/2B) articulated wheel hubs and radial blur
zoom_articulated_wheels_macro.jpg: Calibrated 3.0x loupes on the Rear-Right (1A vs 2A) and Front-Right (1B vs 2B) wheel assemblies — comparing static monolithic wheels against 5-part articulated hubs with cumulative axle spin, Ackermann steering yaw, and hydro-splash wake.
Macro Zoom 03c / Side-Profile Braking Dive, 880 °C Glowing Rotors & Radial Spoke BlurHigh-magnification 3.0x loupe comparison of Rear (1A/2A) and Front (1B/2B) wheels and glowing 880 °C brake rotors under heavy braking
zoom_braking_dive_macro.jpg: Calibrated side-profile braking comparison with 3.0x loupes on the Rear (1A vs 2A) and Front (1B vs 2B) wheels. Left: carEllip horizontal smear + frozen spokes. Right: Forward braking dive, 880 °C glowing brake rotors visible through 12-pass radially blurred spokes.
Full Frame Before / Side Profile Braking (t=22.80s)Full 1920x1080 side profile under 48% braking before fixing carEllip smear and static wheels
car_closeup_side_braking_before.jpg: Full 1080p side profile at t=22.80s (58 km/h, 48% brake) before RCA-1/3/4 — smeared decals and static wheels.
Full Frame After / Side Profile Braking (t=22.80s)Full 1920x1080 side profile under 48% braking showing forward suspension dive, steered front wheel, and 12-pass 3D wheel blur
car_closeup_side_braking_after.jpg: Full 1080p side profile at t=22.80s after RCA-1/3/4 — crisp #69 livery, forward braking pitch, enclosed arches, and 12-pass 3D rotational blur.
02c / Coupled 80 Hz vehicle physics & suspension overhaul (commit dd02879)

From a weightless turntable to a 1,230 kg gravel rally car.

Even with survey-grounded forests and a 682,182-triangle car mesh, motion playback is only convincing if the car carries authentic rotational inertia, weight transfer, and unsprung wheel compliance. When we audited why the car previously felt “weightless / on a platform / turning on a dime,” we traced the artifact to five mathematical shortcuts in the 40 Hz spline pre-integrator and wheel transform hierarchy — and replaced them in commit dd02879 across both the cloud EGL renderers (scripts/v710_renderer.py, scripts/a100_renderer.py) and the browser WebGL client (src/main.js, src/carMesh.js).

Physics SubsystemBefore (40 Hz Uncoupled Linear Filters)After (80 Hz Coupled 6-DOF Dynamics, Commit dd02879)Implementation / Evidence
1 / Onboard G-Sensor Fusion & Auto-PolarityIgnored 10 Hz onboard accelerometer channels (accx, accy); relied solely on Gaussian-smoothed 10 Hz GPS spline curvature kappa * v_x^2; Ruuhimaki logger had inverted accx polarity.Loads 10 Hz accx/accy, auto-calibrates axis polarity via dot-product against GPS curvature & pedal effort (fixing Ruuhimaki), and fuses lat_accel = 0.64*(kappa*v_x^2) + 0.36*(accx*g) and lon_accel = 0.45*dv/dt + 0.30*(accy*g) + 0.25*pedals.StageAssets.__init__, _build_vehicle_physics_splines
2 / Straight-Line Momentum vs. 2 Hz Sine WiggleInjected synthetic spatial sine waves (rut_weave + rut_yaw_kicks) that oscillated heading up to +/-22.9 deg at 2.0 Hz on 160 km/h straightaways with zero lateral force.Removed synthetic straight-line yaw/lateral sine waves; heavy-mass racing-line ODE (omega_n = 2.25 rad/s, zeta = 0.66) tracks straightaways with 1,230 kg momentum.AB01 (Otepaa t=49-54s), AB07 (Neeruti t=142.5-147.5s)
3 / Non-Holonomic Velocity Heading & +0.78 m Front-Axle PivotUncoupled lateral filter translated the car sideways while pointing parallel to the centerline ('dolly crabbing') and rotated slip around geometric center (0,0,0).Couples lateral velocity into travel heading (gamma_vel = gamma_road - atan2(lat_vel, v_x)) and shifts drift pivot +0.78 m forward (lat_offset = lat_line + 0.78*sin(beta)) so front tires stay pinned to the inside apex while the rear tail swings wide.AB02 (Ruuhimaki t=233-238s), AB08 (Otepaa t=327.5-332.5s)
4 / Coupled 80 Hz Single-Track Bicycle Yaw InertiaMemoryless algebraic drift target (-0.36 * tanh(lat_accel / 5.4)) double-counted turn rate at corner entry ('turning on a dime') and snapped to 0 deg mid-S-bend.80 Hz sub-stepped single-track yaw-sideslip ODE with longitudinal weight transfer (lon_wt_ratio), trail-braking turn-in moment (dkappa/dt * brk), and mid-air angular momentum conservation (wn_beta scaled by w_gnd).AB06 (Elva pack t=22.5-27.5s), AB07 (Neeruti t=142.5-147.5s)
5 / True Ballistic Parabolic Crest Flight & 2.35x Reiger DampingClamped symmetric linear spring ([-6.2, +9.5] cm, zeta = 0.28) never entered free-fall (Fz -> 0), clamped droop to -5.6 cm, and pogo-bounced after jumps.Detects airborne unloading (w_gnd -> 0 over crests), integrates parabolic free-fall with full -7.2 cm Reiger wheel droop, progressive hydraulic bump stops (+4.4 cm), and 2.35x asymmetric rebound-to-bump damping (c_rebound = 23.5 vs c_bump = 10.2).AB03 (Ruuhimaki jump t=255-260s), AB04 (Elva 177 km/h crest t=106.5-111.5s)
6 / Decoupled 4-Corner Unsprung Wheel KnucklesMultiplied all 4 wheels by sprung chassis_mat (w_world = chassis_mat @ w_local) with only 55% jounce transfer — tilting wheels rigidly off the ground when the body rolled or dived.Counter-rotates wheel knuckles against sprung body roll (-0.82 * susp_roll) and pitch (-0.85 * lon_pitch_rad) with MacPherson camber gain (-2.2 deg + 0.52*j_w) and 100% kinematic 4-corner jounce so tires stay locked flat in the 3D gravel ruts.AB05 (Neeruti 93% brake t=268.5-273.5s), V710CloudRenderer._draw_car
Architecture / Front-Axle Pivot, Unsprung Knuckles & Reiger Damper3-panel kinematic diagram comparing front-axle drift pivot, decoupled unsprung wheel knuckles, and 2.35x asymmetric Reiger damping
physics_ab_kinematics_diagram.jpg: (1) +0.78 m front-axle drift pivot vs (0,0,0) turntable; (2) decoupled unsprung wheel knuckles vs rigid block tilt; (3) asymmetric Reiger damper (c_rebound = 23.5 vs c_bump = 10.2).
Telemetry & ODE Traces / 40 Hz Uncoupled vs 80 Hz Coupled 6-DOF4-panel telemetry and ODE trace comparison across Otepaa, Ruuhimaki, and Neeruti
physics_ab_telemetry_traces.jpg: Direct spline comparisons showing (A) elimination of the 2 Hz straightaway yaw sine wiggle, (B) -7.2 cm airborne wheel droop over jumps, (C) +0.78 m front-axle pivot shift, and (D) 100% decoupled unsprung diagonal jounce.
AB01 / Straightaway Stability1920×1080 · 30 FPS · 150 Frames (5.0 s)Matched Corridor Camera

SS4 Otepää (t = 49.0–54.0 s, 138 km/h) · Eliminating the 2 Hz Straight-Line “Turntable” Sine Wiggle

On fast straightaways and gentle kinks, the previous solver injected spatial sine waves (rut_yaw_kicks and rut_weave) that swung the car’s sideslip between -23.0° and +22.9° (`max |Δβ| = 26.6°`) as if rotating on a motorized turntable. The new 80 Hz coupled engine removes synthetic straight-line sine forcing and drives the heavy-mass racing line (ωn = 2.25 rad/s, ζ = 0.66) strictly from calibrated onboard lateral G (accx) and road curvature.

Before Video / AB01 / Straightaway Stability
Before (40 Hz Uncoupled + Sine Wiggle): Fake +/-22.9 deg turntable yaw oscillation on straightaway.
After Video (dd02879) / AB01 / Straightaway Stability
After (80 Hz Coupled 6-DOF, dd02879): Composed 1,230 kg straight-line tracking driven by real onboard accx.

Peak Keyframe Before / AB01 / Straightaway Stability1080p keyframe before physics overhaul for ab01_otepaa_straight_stability
Before (40 Hz Uncoupled + Sine Wiggle): Fake +/-22.9 deg turntable yaw oscillation on straightaway.
Peak Keyframe After (dd02879) / AB01 / Straightaway Stability1080p keyframe after 80 Hz coupled physics overhaul for ab01_otepaa_straight_stability
After (80 Hz Coupled 6-DOF, dd02879): Composed 1,230 kg straight-line tracking driven by real onboard accx.
AB02 / Front-Axle Drift Pivot1920×1080 · 30 FPS · 150 Frames (5.0 s)Matched Corridor Camera

SS1 Ruuhimäki (t = 233.0–238.0 s, 176 km/h, 1.01G Lateral) · Auto-Calibrated G-Sensor Fusion, Velocity Heading & +0.78 m Front-Axle Pivot

On ruuhimaki, the raw onboard accx channel had inverted logger polarity and was previously ignored. In the Before clip, the car translates laterally across the road while pointing parallel to the centerline (“crabbing on a dolly”) and pivots around (0,0,0) while bouncing on fake vertical bump waves (+8.1 cm). In the After clip, auto-calibrated accx (1.01G) fuses with curvature, travel heading aligns with the non-holonomic CoM velocity vector (γvel = γroad − atan2(˙ey, vx)), and the +22.5° power slide pivots around the biting front axle (+0.78 m ahead of CoM) so the front wheels stay pinned on the inside apex groove while the rear tail swings wide.

Before Video / AB02 / Front-Axle Drift Pivot
Before (40 Hz Uncoupled): Center (0,0,0) turntable rotation, sideways dolly crabbing, and +8.1 cm fake bump bounce.
After Video (dd02879) / AB02 / Front-Axle Drift Pivot
After (80 Hz Coupled, dd02879): Auto-calibrated 1.01G accx fusion, velocity heading, and +0.78 m front-axle apex pivot.

Peak Keyframe Before / AB02 / Front-Axle Drift Pivot1080p keyframe before physics overhaul for ab02_ruuhimaki_drift_pivot
Before (40 Hz Uncoupled): Center (0,0,0) turntable rotation, sideways dolly crabbing, and +8.1 cm fake bump bounce.
Peak Keyframe After (dd02879) / AB02 / Front-Axle Drift Pivot1080p keyframe after 80 Hz coupled physics overhaul for ab02_ruuhimaki_drift_pivot
After (80 Hz Coupled, dd02879): Auto-calibrated 1.01G accx fusion, velocity heading, and +0.78 m front-axle apex pivot.
AB03 / Ballistic Crest Jump1920×1080 · 30 FPS · 150 Frames (5.0 s)Matched Corridor Camera

SS1 Ruuhimäki (t = 255.0–260.0 s, 162 km/h) · True Ballistic Parabolic Crest Flight (Fz → 0), −7.2 cm Full Wheel Droop & 2.35× Reiger Landing

Over the signature Finnish Ruuhimäki jump crest at 162 km/h, the previous model used a clamped symmetric linear spring (ζ = 0.28, droop limited to −5.6 cm) that never entered free-fall and pogo-bounced after landing. The new 80 Hz ballistic solver detects spring unloading (wgnd → 0), launches the chassis along a true parabolic arc (+9.1 cm heave) with all four wheels extending to −7.2 cm full Reiger droop below the sills, conserves angular momentum in mid-air, and absorbs the multi-G landing impact into progressive hydraulic bump stops (+4.4 cm) with 2.35× rebound-to-bump damping (crebound = 23.5 vs. cbump = 10.2).

Before Video / AB03 / Ballistic Crest Jump
Before (40 Hz Linear Spring): Clamped -5.6 cm droop, rigid wheel tilt, and post-jump pogo oscillation.
After Video (dd02879) / AB03 / Ballistic Crest Jump
After (80 Hz Ballistic Reiger, dd02879): Parabolic free-fall (+9.1 cm heave), -7.2 cm full wheel droop, and 2.35x damped landing.

Peak Keyframe Before / AB03 / Ballistic Crest Jump1080p keyframe before physics overhaul for ab03_ruuhimaki_crest_jump
Before (40 Hz Linear Spring): Clamped -5.6 cm droop, rigid wheel tilt, and post-jump pogo oscillation.
Peak Keyframe After (dd02879) / AB03 / Ballistic Crest Jump1080p keyframe after 80 Hz coupled physics overhaul for ab03_ruuhimaki_crest_jump
After (80 Hz Ballistic Reiger, dd02879): Parabolic free-fall (+9.1 cm heave), -7.2 cm full wheel droop, and 2.35x damped landing.
AB04 / 177 km/h Crest Unloading1920×1080 · 30 FPS · 150 Frames (5.0 s)Matched Corridor Camera

SS2 Elva (t = 106.5–111.5 s, 177 km/h) · High-Speed Crest Unloading & Progressive Hydraulic Bump-Stop Compression

Framed from a low 3/4 wheel-arch tracking camera at 177 km/h on SS2 Elva, this pair isolates high-speed vertical unloading followed by compression into a fast left-hander. Notice how the After suspension extends all four tires to full −7.2 cm rebound droop over the crest and then compresses cleanly into the outside-right wheel arch without lifting the inside tires off the gravel bed.

Before Video / AB04 / 177 km/h Crest Unloading
Before (40 Hz Uncoupled): Minimal crest extension and rigid chassis/wheel block roll.
After Video (dd02879) / AB04 / 177 km/h Crest Unloading
After (80 Hz Ballistic Reiger, dd02879): Full +9.2 cm crest unloading, -7.2 cm droop, and progressive hydraulic bump-stop compression.

Peak Keyframe Before / AB04 / 177 km/h Crest Unloading1080p keyframe before physics overhaul for ab04_elva_crest_launch
Before (40 Hz Uncoupled): Minimal crest extension and rigid chassis/wheel block roll.
Peak Keyframe After (dd02879) / AB04 / 177 km/h Crest Unloading1080p keyframe after 80 Hz coupled physics overhaul for ab04_elva_crest_launch
After (80 Hz Ballistic Reiger, dd02879): Full +9.2 cm crest unloading, -7.2 cm droop, and progressive hydraulic bump-stop compression.
AB05 / Unsprung Wheel Decoupling1920×1080 · 30 FPS · 150 Frames (5.0 s)Matched Corridor Camera

SS3 Neeruti (t = 268.5–273.5 s, 93% Brake, −0.81G Decel) · Decoupled 4-Corner Unsprung Wheel Knuckles vs. Rigid Block Tilt

Under 93% trail-braking and −0.81G longitudinal deceleration into the Neeruti corner, the car pitches +3.8° nose-down and leans −5.6° in roll. Previously, w_world = chassis_mat @ w_local tilted all four wheels rigidly with the sprung body using only 55% jounce transfer — tilting the rear tire sideways off the road. In dd02879, the wheel knuckles counter-rotate against sprung body roll (−0.82 · susp_roll) and pitch (−0.85 · lon_pitch) with 100% kinematic 4-corner jounce ([−7.2, +4.4] cm), keeping every tire planted flat in the 3D gravel ruts while the body visibly dives and rolls above them.

Before Video / AB05 / Unsprung Wheel Decoupling
Before (Rigid Wheel Multiply): Wheels tilt sideways with the rolled chassis; only 55% jounce transfer.
After Video (dd02879) / AB05 / Unsprung Wheel Decoupling
After (Decoupled Unsprung Knuckles, dd02879): Tires stay locked flat in 3D gravel ruts while body dives +3.8 deg and rolls -5.6 deg.

Peak Keyframe Before / AB05 / Unsprung Wheel Decoupling1080p keyframe before physics overhaul for ab05_neeruti_braking_unsprung
Before (Rigid Wheel Multiply): Wheels tilt sideways with the rolled chassis; only 55% jounce transfer.
Peak Keyframe After (dd02879) / AB05 / Unsprung Wheel Decoupling1080p keyframe after 80 Hz coupled physics overhaul for ab05_neeruti_braking_unsprung
After (Decoupled Unsprung Knuckles, dd02879): Tires stay locked flat in 3D gravel ruts while body dives +3.8 deg and rolls -5.6 deg.
AB06 / 3-Car Pack Braking & Weight Transfer1920×1080 · 30 FPS · 150 Frames (5.0 s)Matched Corridor Camera

SS2 Elva (t = 22.5–27.5 s, 3-Car Pack Chase) · Longitudinal Weight Transfer, Trail-Braking Turn-In & Pack-Wide 80 Hz Dynamics

Entering the Elva chicane with all three pack cars visible (#69 Rovanperä, #33 Evans, and #00 Optimal), the uncoupled model swung #69 through a 34.5° sideslip discrepancy with abrupt center-pivot yaw snaps. The coupled 80 Hz solver transfers weight forward under braking (lon_wt_ratio), generates a physical trail-braking turn-in yaw moment (dκ/dt · brk), and coordinates independent racing lines and suspension dive across all three cars.

Before Video / AB06 / 3-Car Pack Braking & Weight Transfer
Before (40 Hz Uncoupled Pack): Abrupt center-pivot yaw swings (34.5 deg discrepancy) and uncoupled lateral sliding.
After Video (dd02879) / AB06 / 3-Car Pack Braking & Weight Transfer
After (80 Hz Coupled Pack, dd02879): Trail-braking weight transfer, front-axle apex bite, and synchronized 3-car suspension dive.

Peak Keyframe Before / AB06 / 3-Car Pack Braking & Weight Transfer1080p keyframe before physics overhaul for ab06_elva_chicane_pack
Before (40 Hz Uncoupled Pack): Abrupt center-pivot yaw swings (34.5 deg discrepancy) and uncoupled lateral sliding.
Peak Keyframe After (dd02879) / AB06 / 3-Car Pack Braking & Weight Transfer1080p keyframe after 80 Hz coupled physics overhaul for ab06_elva_chicane_pack
After (80 Hz Coupled Pack, dd02879): Trail-braking weight transfer, front-axle apex bite, and synchronized 3-car suspension dive.
AB07 / 181 km/h S-Bend Inertia1920×1080 · 30 FPS · 150 Frames (5.0 s)Matched Corridor Camera

SS3 Neeruti (t = 142.5–147.5 s, 181 km/h) · S-Bend Rotational Yaw Inertia & Delayed Centrifugal Exit Drift

Through the 181 km/h Neeruti S-bend transition, the memoryless algebraic curvature formula in Before collapsed sideslip to −0.9° right at the inflection point, making the car snap flat as if on rails before jerking into the next bend. In After, the coupled single-track bicycle yaw ODE carries rotational inertia (Izz) across the inflection point (+19.5° sideslip, +0.39 m centrifugal exit drift) with asymmetric roll damping (cr = 11.8 load / 17.5 recovery).

Before Video / AB07 / 181 km/h S-Bend Inertia
Before (Memoryless Algebraic Slip): Collapses to -0.9 deg dead-straight mid-transition at 181 km/h.
After Video (dd02879) / AB07 / 181 km/h S-Bend Inertia
After (80 Hz Coupled Yaw Inertia, dd02879): Carries +19.5 deg rotational momentum and centrifugal drift through the S-bend exit.

Peak Keyframe Before / AB07 / 181 km/h S-Bend Inertia1080p keyframe before physics overhaul for ab07_neeruti_sbend_transition
Before (Memoryless Algebraic Slip): Collapses to -0.9 deg dead-straight mid-transition at 181 km/h.
Peak Keyframe After (dd02879) / AB07 / 181 km/h S-Bend Inertia1080p keyframe after 80 Hz coupled physics overhaul for ab07_neeruti_sbend_transition
After (80 Hz Coupled Yaw Inertia, dd02879): Carries +19.5 deg rotational momentum and centrifugal drift through the S-bend exit.
AB08 / 187 km/h High-G Sweeper1920×1080 · 30 FPS · 150 Frames (5.0 s)Matched Corridor Camera

SS4 Otepää (t = 327.5–332.5 s, 187 km/h, 91% Brake, −1.10G Decel) · Combined High-G Braking Dive (+3.9°), Roll (−5.6°) & Front-Axle Slide

The highest-energy combined braking and cornering sequence across all four stages (187 km/h, 91% brake pressure, −1.10G longitudinal deceleration, +0.73G lateral acceleration). Demonstrates simultaneous +3.9° nose-dive, −5.6° outside roll lean, −22.9° front-axle pivot drift, opposite-lock counter-steering, and decoupled 4-corner wheel articulation.

Before Video / AB08 / 187 km/h High-G Sweeper
Before (40 Hz Uncoupled): Rigid wheel-to-body tilt and center-pivot crabbing at 187 km/h.
After Video (dd02879) / AB08 / 187 km/h High-G Sweeper
After (80 Hz Coupled, dd02879): Simultaneous +3.9 deg nose-dive, -5.6 deg roll, -22.9 deg front-axle drift, and planted unsprung tires.

Peak Keyframe Before / AB08 / 187 km/h High-G Sweeper1080p keyframe before physics overhaul for ab08_otepaa_highg_sweeper
Before (40 Hz Uncoupled): Rigid wheel-to-body tilt and center-pivot crabbing at 187 km/h.
Peak Keyframe After (dd02879) / AB08 / 187 km/h High-G Sweeper1080p keyframe after 80 Hz coupled physics overhaul for ab08_otepaa_highg_sweeper
After (80 Hz Coupled, dd02879): Simultaneous +3.9 deg nose-dive, -5.6 deg roll, -22.9 deg front-axle drift, and planted unsprung tires.
03 / Grounding & corrections

Use the actual products, not their preview colours.

The most consequential correction to the proposal was to stop treating *_ndsm.jpg as a calibrated metre-scale height raster. A plausible grayscale or coloured height preview does not establish its scale, no-data convention, legend, acquisition date or accuracy. The implementation downloads and reads the numeric Estonian GeoTIFFs, and explicitly treats Finland's source as classified height bands.

What is measured, what is interpreted, what is invented?

Scene componentGroundingModeled or uncertain part
Route and replayStored telemetry positions, elevations and replay samples.A trace is not a survey of road edges. Road width/cross-section, gravel detail and reconstructed suspension/pose are renderer models.
ReliefStored terrain, now a denser numeric Estonian DTM derivative where acquired.The existing default vertical presentation exaggeration is 1.8x. Interpolation, local road/ditch engineering and mapped foundation/water adjustments are not pristine survey values.
Woodland and openingsETAK polygons, numeric Estonian canopy heights, Finnish classified cover/heights and qualified stand inventory.Individual stem positions, species outside inventory, crown shape and understory detail remain deterministic procedural proxies.
Aerial colourExisting stage orthophoto/mosaic files, preserved byte-for-byte through the experiment.The repository has both a Bing VirtualEarth tile downloader and an Estonian Maa-amet WMS builder that can write the same filenames. Comments alone do not prove which run produced a stored JPEG or its vintage.
Buildings and waterMapped footprints and shorelines.Generic building appearance, water elevation, surface/reflection response and historic contemporaneity are not measured here.
Atmosphere and propsPreserved completed lighting, generic licensed scene assets and contextual placement rules.Golden-hour direction/look, HDRI horizon, weather, local rocks/deadwood/signs and camera flight are illustrative, not recovered rally-day observations.

Bing Maps: no Bing runtime feed or new Bing acquisition was introduced in this change. The stored aerial mosaics still contribute limited macro colour. New geographic structure comes from the explicit official canopy/terrain/semantic products below, not an assumed Bing classifier or photogrammetric reconstruction.

StageCanopy / semantic sourceHeight qualificationCoverage definitionVegetation instancesRendered mapped features
Ruuhimäki2 m SYKE height classes + stand inventoryClass midpoints; >20 m refined where inventory exists100.0% of sampled cells in the 430 m belt517,911232 proxies / 1 polygon parts
Neeruti1 m numeric nDSM + ETAK17 route-adjacent tiles100.0% of sampled cells in the 430 m belt315,01394 proxies / 33 polygon parts
Elva1 m numeric nDSM + ETAK29 route-adjacent tiles100.0% of sampled cells in the 430 m belt423,672270 proxies / 63 polygon parts
Otepää1 m numeric nDSM + ETAK36 route-adjacent tiles100.0% of sampled cells in the 430 m belt651,447251 proxies / 103 polygon parts
Four-stage canopy and semantic atlas with stored routes and unknown-height hatching
Own visualization of the acquired derivatives. Hatching is unknown height outside the acquisition belt, not a clearing. Right-hand woodland footprints can be supported by vectors where height is estimated. The output grid is approximately 2 m; a 1 m source does not make the entire renderer a 1 m mesh.

The evidence changed several earlier conclusions

Earlier assumptionVerified interpretation / implemented response
No Finnish class-6 returns means no buildingsFalse. The acquired Finnish semantic product contains building footprints near the route. Absence of a class in a thinned cloud is not an absence certificate.
JPEG values directly decode to exact canopy metresNot established. No deployed metric height uses the proposed grayscale or colour-ramp formula.
Removing seven-tile selection automatically proves complete raw coverageIt removes an artificial limit. Coverage still depends on tile availability, clipping, classification and sampling. The new raster belt is validated separately.
Vegetation-return shares measure forest areaThey do not. Earlier 69.2% / 37.1% / 31.3% / 35.7% figures describe stored return samples, not land-area percentages.
Dropping half the components makes a crown exactly half transparentFalse. Projected coverage, overlap, alpha filtering, viewpoint and lighting matter. The selected distant representation avoids that extra component removal.
Every forest edge must be an opaque lower-ten-metre wallToo categorical. The implementation preserves mapped openings and uses layered, locally varied edge growth rather than enforcing a universal wall.

The north–south registration issue was genuine: raw image row zero and negative world Z both denote north, but the terrain's V coordinate was inverted. Terrain, landscape sampling and grass now share z / worldDepth + 0.5. This fixes the convention; it does not turn an approximately fitted aerial mosaic into an independently surveyed orthorectification.

Data coverage above means finite numeric/classified samples within the specified belt. It is not a survey-accuracy score, a count of individual crowns, or a directly comparable denominator to the old point-cloud station-coverage audit.

04 / Engineering

One world field, shared by the scene.

01 / INPUTS

Numeric terrain and canopy; semantic vectors; Finnish height classes and inventory; existing route and imagery.

02 / WORLD FIELD

Stand footprint, height prior, validity, metric edge distance, land cover, moisture/tint and provenance.

03 / SCENE

Overstory, edge mantle, regeneration, ground/grass, mapped foundations and water, contextual road furniture.

04 / PRESERVATION

Spatial indexing, conservative bounds, stable LODs, cutout filtering, shared wind, planned cameras and measured output.

Area-based woodland and edge structure

Overstory candidates use a 3.8 m world-cell lattice with deterministic jitter and bounded density priors. A separate 2.8 m edge layer supplies shrubs, saplings and small broadleaves; a 7.5 m interior layer introduces sparse regeneration. These spacings are implementation choices, not claims that every Estonian or Finnish forest has one universal stem density. Composite sapling and shrub assets also mean an instance count is not a stem count.

Canopy height and stand boundaries determine eligibility. Water, buildings, rock, roads and the engineered road clearance exclude unsuitable placements. Source-supported isolated patches can survive in open land. The model uses a jittered area process, not a fully calibrated Thomas-process, crown-competition or silvicultural growth simulation.

Measured crown scale rather than nominal width

Meshes are normalized by height, so horizontal instance scale is not a crown diameter. The renderer measures the loaded geometry and derives scale from a desired crown span and actual model radius. The table records the 95th-percentile foliage-vertex radius and maximum radial extent. It is not a leaf-area-weighted botanical crown measurement.

Species / asset slotRadius p95 (model units)Maximum radiusNormalized height
00.2050.2631.000
10.1730.2261.000
20.1740.2361.000
30.3680.5811.000
40.3770.4991.000
50.6340.8611.000
60.2420.3851.000
70.5720.9161.000

Rendering that retains the intended woodland

Per-species spatial indexes restrict the query region, then conservative union bounds are frustum-culled before LOD selection. There is no nearest-N species quota silently reshuffling visible trees. Projected-size selection uses hysteresis; discontinuous seeks/cuts reset it, while a stationary pause does not force a new geometry choice. Complete authored LOD2 foliage is retained at distance, avoiding the previous derived half/quarter-component thinning.

Coverage factors are measured per texture layer and mip level, with bounded scale and an anisotropy-aware lookup. They support alpha-to-coverage and 8x MSAA; they are not an exact optical-depth invariant. Colour, shadow and velocity passes share deformation and cutout logic. Fine ground noise is attenuated when undersampled, and foliage chromatic variation no longer slides through a high-frequency world-space sine as the leaves move.

Detailed crowns fade over 340–430 m into mapped ground treatment and haze. An elevated, source-shaped canopy-sheet prototype was tested and rejected: it produced faceted, blanket-like horizons in wide views. It is not shipped or counted as a visual improvement. Proper distant volumetric/impostor crowns remain future asset work.

A separate wide-view defect came from an existing vertex-culling shortcut: connected terrain and road vertices beyond 345 m were moved individually to one clip-space point without initializing their varyings; the scenery shader had the same defect at 180 m. Mixed triangles stretched across the image. Ordinary GPU primitive clipping now preserves the surface, and the sky fills only untouched far depth. An actual GPU regression checks surface/sky ordering at 3 km.

Terrain, ground and landmarks

The broad road-height floor is removed. A local road/ditch correction ends at 16 m, with modest procedural surface displacement and separate mapped foundation/water adjustments. Vertical presentation exaggeration remains explicit. Estonia uses a denser derivative from the numeric DTM; Finland retains the existing terrain source with denser interpolation, not a newly surveyed 1 m Finnish surface.

Terrain and grass read the same woodland/moisture/tint masks. Open agricultural ground, woodland litter and moist edges therefore change together. Mapped buildings receive contained generic proxies, not automatically generated silos, tractors and companion buildings. Water follows mapped polygon boundaries; estimated levels and approximate reflections are qualified below. Signs and anti-cut bales are sparse curvature-derived illustrations, not claimed observations of the historic course.

Road wetness is derived from smoothed vertical sags and canopy shade. The GPU road surface and CPU tire emissions use the same profile. This removes the stage-independent periodic basin field without pretending to know the actual rally-day rainfall or drainage.

Camera clearance is planned, not hidden

Automatic rigs smooth the horizontal reference with acceleration/jerk checks, anticipate conservative crown and static-scenery bounds, and construct a vertically speed-bounded clearance majorant. The resulting C2 path is independent of render wall time and frame partition. A complete-route 120 Hz audit samples terrain, wind-inflated crown cylinders and building/scenery bounds before acceptance. The old independent gimbal is replaced by subject-directed aiming; manual bumper/orbit controls remain.

Conservative full crown cylinders can unnecessarily lift the camera above empty space beneath high branches. That is a deliberate safety/appearance trade-off, visible in the separately labelled native clips. It is not a proof of triangle-level collision freedom or a complete robotics planner.

05 / Fixed-view evidence

Same camera. Same time. Changed world.

These are real GPU captures, not generated after-images or retouched illustrations. Main comparisons lock the numeric eye, target, FOV, up vector, grass focus, lighting preset and simulation timestamp. Embedded previews are resized JPEGs; the original lossless PNG links retain full output resolution.

ruuhimaki / t=12.35s

Ruuhimaki: mapped woodland replaces the repeated roadside mix

Exact baseline camera and golden lighting. The geographic placement and ground treatment change; the framing does not.

Baseline Ruuhimaki: mapped woodland replaces the repeated roadside mix baseline
Open original · (1920, 1080)
Candidate Ruuhimaki: mapped woodland replaces the repeated roadside mix candidate
Open original · matched baseline poses
neeruti / t=12.35s

Neeruti: a coherent opening rather than uniform thinning

The actual stand footprint changes where trees stop. This is not a blanket density boost.

Baseline Neeruti: a coherent opening rather than uniform thinning baseline
Open original · (1920, 1080)
Candidate Neeruti: a coherent opening rather than uniform thinning candidate
Open original · matched baseline poses
elva / t=35.00s

Elva: reveal the open ground

A mapped open section no longer inherits a synthetic forest wall, fence and repeated standing-water pattern.

Baseline Elva: reveal the open ground baseline
Open original · (1920, 1080)
Candidate Elva: reveal the open ground candidate
Open original · matched baseline poses
otepaa / t=12.35s

Otepaa: terrain and vegetation share geography

The same world-space field controls relief, woodland and understory. Scene identity is not injected by random roadside props.

Baseline Otepaa: terrain and vegetation share geography baseline
Open original · (1920, 1080)
Candidate Otepaa: terrain and vegetation share geography candidate
Open original · matched baseline poses

Landmarks selected from the acquired data

elva / t=30.17s

Elva: a mapped pond

Source-selected landmark location; exact baseline camera, simulation time and lighting. Building appearance and water level remain modeled.

Baseline Elva: a mapped pond baseline
Open original · (1920, 1080)
Candidate Elva: a mapped pond candidate
Open original · matched baseline poses
otepaa / t=81.02s

Otepaa: a mapped water edge

Source-selected landmark location; exact baseline camera, simulation time and lighting. Building appearance and water level remain modeled.

Baseline Otepaa: a mapped water edge baseline
Open original · (1920, 1080)
Candidate Otepaa: a mapped water edge candidate
Open original · matched baseline poses
neeruti / t=294.22s

Neeruti: a source-located building footprint

Source-selected landmark location; exact baseline camera, simulation time and lighting. Building appearance and water level remain modeled.

Baseline Neeruti: a source-located building footprint baseline
Open original · (1920, 1080)
Candidate Neeruti: a source-located building footprint candidate
Open original · matched baseline poses
ruuhimaki / t=41.47s

Finland: absence of building returns was not absence of buildings

Source-selected landmark location; exact baseline camera, simulation time and lighting. Building appearance and water level remain modeled.

Baseline Finland: absence of building returns was not absence of buildings baseline
Open original · (1920, 1080)
Candidate Finland: absence of building returns was not absence of buildings candidate
Open original · matched baseline poses
All 42 fixed-view 1080p pairs, including difficult or obstructed baseline viewpoints

There is no selection rule that discards an inconvenient view. Some old poses are inappropriate after geographic vegetation is restored; native-camera evidence is shown separately.

ruuhimaki / t=12.35s

ruuhimaki still0 chase

Locked baseline view, chase, t=12.35s.

Baseline ruuhimaki still0 chase baseline
Open original · (1920, 1080)
Candidate ruuhimaki still0 chase candidate
Open original · matched baseline poses
ruuhimaki / t=12.35s

ruuhimaki still0 heli

Locked baseline view, heli, t=12.35s.

Baseline ruuhimaki still0 heli baseline
Open original · (1920, 1080)
Candidate ruuhimaki still0 heli candidate
Open original · matched baseline poses
ruuhimaki / t=35.00s

ruuhimaki still1 chase

Locked baseline view, chase, t=35.00s.

Baseline ruuhimaki still1 chase baseline
Open original · (1920, 1080)
Candidate ruuhimaki still1 chase candidate
Open original · matched baseline poses
ruuhimaki / t=35.00s

ruuhimaki still1 heli

Locked baseline view, heli, t=35.00s.

Baseline ruuhimaki still1 heli baseline
Open original · (1920, 1080)
Candidate ruuhimaki still1 heli candidate
Open original · matched baseline poses
ruuhimaki / t=77.20s

ruuhimaki still2 chase

Locked baseline view, chase, t=77.20s.

Baseline ruuhimaki still2 chase baseline
Open original · (1920, 1080)
Candidate ruuhimaki still2 chase candidate
Open original · matched baseline poses
ruuhimaki / t=77.20s

ruuhimaki still2 heli

Locked baseline view, heli, t=77.20s.

Baseline ruuhimaki still2 heli baseline
Open original · (1920, 1080)
Candidate ruuhimaki still2 heli candidate
Open original · matched baseline poses
ruuhimaki / t=166.66s

ruuhimaki still3 chase

Locked baseline view, chase, t=166.66s.

Baseline ruuhimaki still3 chase baseline
Open original · (1920, 1080)
Candidate ruuhimaki still3 chase candidate
Open original · matched baseline poses
ruuhimaki / t=166.66s

ruuhimaki still3 heli

Locked baseline view, heli, t=166.66s.

Baseline ruuhimaki still3 heli baseline
Open original · (1920, 1080)
Candidate ruuhimaki still3 heli candidate
Open original · matched baseline poses
ruuhimaki / t=273.31s

ruuhimaki still4 chase

Locked baseline view, chase, t=273.31s.

Baseline ruuhimaki still4 chase baseline
Open original · (1920, 1080)
Candidate ruuhimaki still4 chase candidate
Open original · matched baseline poses
ruuhimaki / t=273.31s

ruuhimaki still4 heli

Locked baseline view, heli, t=273.31s.

Baseline ruuhimaki still4 heli baseline
Open original · (1920, 1080)
Candidate ruuhimaki still4 heli candidate
Open original · matched baseline poses
neeruti / t=12.35s

neeruti still0 chase

Locked baseline view, chase, t=12.35s.

Baseline neeruti still0 chase baseline
Open original · (1920, 1080)
Candidate neeruti still0 chase candidate
Open original · matched baseline poses
neeruti / t=12.35s

neeruti still0 heli

Locked baseline view, heli, t=12.35s.

Baseline neeruti still0 heli baseline
Open original · (1920, 1080)
Candidate neeruti still0 heli candidate
Open original · matched baseline poses
neeruti / t=35.00s

neeruti still1 chase

Locked baseline view, chase, t=35.00s.

Baseline neeruti still1 chase baseline
Open original · (1920, 1080)
Candidate neeruti still1 chase candidate
Open original · matched baseline poses
neeruti / t=35.00s

neeruti still1 heli

Locked baseline view, heli, t=35.00s.

Baseline neeruti still1 heli baseline
Open original · (1920, 1080)
Candidate neeruti still1 heli candidate
Open original · matched baseline poses
neeruti / t=77.20s

neeruti still2 chase

Locked baseline view, chase, t=77.20s.

Baseline neeruti still2 chase baseline
Open original · (1920, 1080)
Candidate neeruti still2 chase candidate
Open original · matched baseline poses
neeruti / t=77.20s

neeruti still2 heli

Locked baseline view, heli, t=77.20s.

Baseline neeruti still2 heli baseline
Open original · (1920, 1080)
Candidate neeruti still2 heli candidate
Open original · matched baseline poses
neeruti / t=154.62s

neeruti still3 chase

Locked baseline view, chase, t=154.62s.

Baseline neeruti still3 chase baseline
Open original · (1920, 1080)
Candidate neeruti still3 chase candidate
Open original · matched baseline poses
neeruti / t=154.62s

neeruti still3 heli

Locked baseline view, heli, t=154.62s.

Baseline neeruti still3 heli baseline
Open original · (1920, 1080)
Candidate neeruti still3 heli candidate
Open original · matched baseline poses
neeruti / t=253.57s

neeruti still4 chase

Locked baseline view, chase, t=253.57s.

Baseline neeruti still4 chase baseline
Open original · (1920, 1080)
Candidate neeruti still4 chase candidate
Open original · matched baseline poses
neeruti / t=253.57s

neeruti still4 heli

Locked baseline view, heli, t=253.57s.

Baseline neeruti still4 heli baseline
Open original · (1920, 1080)
Candidate neeruti still4 heli candidate
Open original · matched baseline poses
elva / t=12.35s

elva still0 chase

Locked baseline view, chase, t=12.35s.

Baseline elva still0 chase baseline
Open original · (1920, 1080)
Candidate elva still0 chase candidate
Open original · matched baseline poses
elva / t=12.35s

elva still0 heli

Locked baseline view, heli, t=12.35s.

Baseline elva still0 heli baseline
Open original · (1920, 1080)
Candidate elva still0 heli candidate
Open original · matched baseline poses
elva / t=35.00s

elva still1 chase

Locked baseline view, chase, t=35.00s.

Baseline elva still1 chase baseline
Open original · (1920, 1080)
Candidate elva still1 chase candidate
Open original · matched baseline poses
elva / t=35.00s

elva still1 heli

Locked baseline view, heli, t=35.00s.

Baseline elva still1 heli baseline
Open original · (1920, 1080)
Candidate elva still1 heli candidate
Open original · matched baseline poses
elva / t=77.20s

elva still2 chase

Locked baseline view, chase, t=77.20s.

Baseline elva still2 chase baseline
Open original · (1920, 1080)
Candidate elva still2 chase candidate
Open original · matched baseline poses
elva / t=77.20s

elva still2 heli

Locked baseline view, heli, t=77.20s.

Baseline elva still2 heli baseline
Open original · (1920, 1080)
Candidate elva still2 heli candidate
Open original · matched baseline poses
elva / t=190.65s

elva still3 chase

Locked baseline view, chase, t=190.65s.

Baseline elva still3 chase baseline
Open original · (1920, 1080)
Candidate elva still3 chase candidate
Open original · matched baseline poses
elva / t=190.65s

elva still3 heli

Locked baseline view, heli, t=190.65s.

Baseline elva still3 heli baseline
Open original · (1920, 1080)
Candidate elva still3 heli candidate
Open original · matched baseline poses
elva / t=312.67s

elva still4 chase

Locked baseline view, chase, t=312.67s.

Baseline elva still4 chase baseline
Open original · (1920, 1080)
Candidate elva still4 chase candidate
Open original · matched baseline poses
elva / t=312.67s

elva still4 heli

Locked baseline view, heli, t=312.67s.

Baseline elva still4 heli baseline
Open original · (1920, 1080)
Candidate elva still4 heli candidate
Open original · matched baseline poses
otepaa / t=12.35s

otepaa still0 chase

Locked baseline view, chase, t=12.35s.

Baseline otepaa still0 chase baseline
Open original · (1920, 1080)
Candidate otepaa still0 chase candidate
Open original · matched baseline poses
otepaa / t=12.35s

otepaa still0 heli

Locked baseline view, heli, t=12.35s.

Baseline otepaa still0 heli baseline
Open original · (1920, 1080)
Candidate otepaa still0 heli candidate
Open original · matched baseline poses
otepaa / t=35.00s

otepaa still1 chase

Locked baseline view, chase, t=35.00s.

Baseline otepaa still1 chase baseline
Open original · (1920, 1080)
Candidate otepaa still1 chase candidate
Open original · matched baseline poses
otepaa / t=35.00s

otepaa still1 heli

Locked baseline view, heli, t=35.00s.

Baseline otepaa still1 heli baseline
Open original · (1920, 1080)
Candidate otepaa still1 heli candidate
Open original · matched baseline poses
otepaa / t=77.20s

otepaa still2 chase

Locked baseline view, chase, t=77.20s.

Baseline otepaa still2 chase baseline
Open original · (1920, 1080)
Candidate otepaa still2 chase candidate
Open original · matched baseline poses
otepaa / t=77.20s

otepaa still2 heli

Locked baseline view, heli, t=77.20s.

Baseline otepaa still2 heli baseline
Open original · (1920, 1080)
Candidate otepaa still2 heli candidate
Open original · matched baseline poses
otepaa / t=266.82s

otepaa still3 chase

Locked baseline view, chase, t=266.82s.

Baseline otepaa still3 chase baseline
Open original · (1920, 1080)
Candidate otepaa still3 chase candidate
Open original · matched baseline poses
otepaa / t=266.82s

otepaa still3 heli

Locked baseline view, heli, t=266.82s.

Baseline otepaa still3 heli baseline
Open original · (1920, 1080)
Candidate otepaa still3 heli candidate
Open original · matched baseline poses
otepaa / t=437.59s

otepaa still4 chase

Locked baseline view, chase, t=437.59s.

Baseline otepaa still4 chase baseline
Open original · (1920, 1080)
Candidate otepaa still4 chase candidate
Open original · matched baseline poses
otepaa / t=437.59s

otepaa still4 heli

Locked baseline view, heli, t=437.59s.

Baseline otepaa still4 heli baseline
Open original · (1920, 1080)
Candidate otepaa still4 heli candidate
Open original · matched baseline poses
neeruti / t=17.80s

neeruti closeup chase

Locked baseline view, chase, t=17.80s.

Baseline neeruti closeup chase baseline
Open original · (1920, 1080)
Candidate neeruti closeup chase candidate
Open original · matched baseline poses
elva / t=22.50s

elva closeup chase

Locked baseline view, chase, t=22.50s.

Baseline elva closeup chase baseline
Open original · (1920, 1080)
Candidate elva closeup chase candidate
Open original · matched baseline poses
Native 4K fixed-view captures
ruuhimaki / t=12.35s

ruuhimaki still0 chase

Native 3840 x 2160 output from both versions; exact baseline pose. Preview scaled for the page.

Baseline ruuhimaki still0 chase baseline
Open original · (3840, 2160)
Candidate ruuhimaki still0 chase candidate
Open original · matched baseline poses
ruuhimaki / t=166.66s

ruuhimaki still3 heli

Native 3840 x 2160 output from both versions; exact baseline pose. Preview scaled for the page.

Baseline ruuhimaki still3 heli baseline
Open original · (3840, 2160)
Candidate ruuhimaki still3 heli candidate
Open original · matched baseline poses
neeruti / t=12.35s

neeruti still0 chase

Native 3840 x 2160 output from both versions; exact baseline pose. Preview scaled for the page.

Baseline neeruti still0 chase baseline
Open original · (3840, 2160)
Candidate neeruti still0 chase candidate
Open original · matched baseline poses
neeruti / t=154.62s

neeruti still3 heli

Native 3840 x 2160 output from both versions; exact baseline pose. Preview scaled for the page.

Baseline neeruti still3 heli baseline
Open original · (3840, 2160)
Candidate neeruti still3 heli candidate
Open original · matched baseline poses
elva / t=35.00s

elva still1 heli

Native 3840 x 2160 output from both versions; exact baseline pose. Preview scaled for the page.

Baseline elva still1 heli baseline
Open original · (3840, 2160)
Candidate elva still1 heli candidate
Open original · matched baseline poses
elva / t=190.65s

elva still3 chase

Native 3840 x 2160 output from both versions; exact baseline pose. Preview scaled for the page.

Baseline elva still3 chase baseline
Open original · (3840, 2160)
Candidate elva still3 chase candidate
Open original · matched baseline poses
otepaa / t=12.35s

otepaa still0 chase

Native 3840 x 2160 output from both versions; exact baseline pose. Preview scaled for the page.

Baseline otepaa still0 chase baseline
Open original · (3840, 2160)
Candidate otepaa still0 chase candidate
Open original · matched baseline poses
otepaa / t=437.59s

otepaa still4 heli

Native 3840 x 2160 output from both versions; exact baseline pose. Preview scaled for the page.

Baseline otepaa still4 heli baseline
Open original · (3840, 2160)
Candidate otepaa still4 heli candidate
Open original · matched baseline poses
Noon and night lighting smoke views
check-noon / elva_still1_helicheck-noon lighting smoke view
Open original
check-noon / otepaa_still0_chasecheck-noon lighting smoke view
Open original
check-night / elva_still1_helicheck-night lighting smoke view
Open original
check-night / otepaa_still0_chasecheck-night lighting smoke view
Open original

Same geographic candidate under other existing lighting presets. These are smoke checks, not a second lighting redesign or proof of every weather/time combination.

06 / Temporal acceptance

Still-image quality is not the release gate.

Every formal clip has 150 individually rendered output frames at t_start + n / 30, 1920 × 1080 and constant 30 FPS for five seconds. Independent local decoding checks frame count, frame rate and duration. No repeated stills, generated intermediate frames or slowed playback were used to meet that specification.

The report players use size-bounded H264 reading copies, still 1920 × 1080, 150 frames and 30 FPS. Before and after use the same CRF24 / 4 Mbit/s maximum encoding treatment, with no retiming, interpolation, grading or geometry alteration. These compressed previews are not used for subpixel flicker measurements; linked originals and host-retained lossless frames remain the acceptance evidence.

Embedded control: Elva's stationary wind sequence retains the exact baseline camera in both versions. It helps expose unstable cutout edges, moving shadows and colour changes without confusing them with a deliberately changed flight path. Both clips are hosted on this site; the video library provides all original captures. Only the eye is stationary: wind, the car, particles and car-centred shadow coverage continue to evolve. This is not a pure wind-isolation experiment.
Baseline / fixed eye
Original baseline MP4
After / same fixed eye
Original candidate MP4

Moving cameras: separate rendering and composition

Four additional moving-camera A/Bs reuse every baseline camera pose. The ten changed-path native motion clips instead demonstrate the integrated renderer plus the safer camera. Those are not isolated material comparisons. Their simulation times, seed and output cadence remain matched.

Embedded moving-eye control: Ruuhimäki

Baseline / original moving eye
Original 1080p / 30 FPS clip
Candidate / exact same moving eye
Original 1080p / 30 FPS clip

The files contain exact matched camera/time samples. Side-by-side browser playback is only approximately synchronized; it is not the frame-level measurement.

Embedded integrated native flight: Elva

This clip deliberately changes the camera. It demonstrates the integrated scene and planned flight, not an isolated shader improvement.

Candidate / deliberately changed native camera
Original 1080p / 30 FPS clip

The exact-old-path Neeruti control ends inside restored foliage. That uncorrected legacy pose is retained deliberately to keep the A/B honest; it is not the shipped automatic camera path. The native Neeruti clips use the clearance-planned rig and remain unobstructed in the sampled motion views.

Exact-camera chase controlBaseline flow p95, medianCandidate flow p95, median
Ruuhimäki26.024.0
Neeruti20.017.0
Elva24.025.0
Otepää28.024.0
Native / wind caseCamera treatmentBeforeAfterMedian render costFlow residual p95 (median)
ruuhimaki_motion_chasenative camera pathBaseline 1080pCandidate 1080p64.7 ms17.0
ruuhimaki_motion_helinative camera pathBaseline 1080pCandidate 1080p55.1 ms13.0
neeruti_motion_chasenative camera pathBaseline 1080pCandidate 1080p70.7 ms14.0
neeruti_motion_helinative camera pathBaseline 1080pCandidate 1080p50.7 ms17.0
elva_motion_chasenative camera pathBaseline 1080pCandidate 1080p42.3 ms20.0
elva_motion_helinative camera pathBaseline 1080pCandidate 1080p34.0 ms21.0
otepaa_motion_chasenative camera pathBaseline 1080pCandidate 1080p48.7 ms19.0
otepaa_motion_helinative camera pathBaseline 1080pCandidate 1080p38.6 ms16.0
neeruti_near_motionnative camera pathBaseline 1080pCandidate 1080p82.5 ms14.0
elva_near_motionnative camera pathBaseline 1080pCandidate 1080p51.7 ms18.0
elva_wind_stationarymatched baseline posesBaseline 1080pCandidate 1080p75.4 ms7.0

The flow figure is a within-clip diagnostic: quarter-resolution luminance is compared after bidirectional-consistency-filtered optical-flow warping, excluding invalid correspondence. Wind, self-shadowing, occlusion and changing scene content remain confounders. It is not a photorealism score, a universal flicker threshold or proof that a changed camera caused a renderer improvement.

Final Neeruti motion samples including consecutive frames around the largest recorded LOD-change count
Final-source inspection overview: regular samples plus the frame before/at/after the largest recorded LOD-change count in this near-woodland clip. These are downsampled previews, not a subpixel flicker measurement. The original full-HD clip and per-frame logs remain available.

Whole-route conservative clearance

373,804 sampled default-rig poses across complete routes produced 0 proxy intrusions. These are conservative wind-inflated crown/scenery bounds, not exact triangles or a certificate covering every future camera control. Inspected motion evidence and the full-route geometric audit serve different purposes.

StageRig120 Hz samplesProxy intrusionsMax horizontal a (m/s2)Max vertical v (m/s)Max vertical a (m/s2)
ruuhimakichase39,998014.486.463.18
ruuhimakiheli39,998015.336.763.16
neerutichase37,108017.034.523.10
neerutiheli37,108013.016.593.56
elvachase45,757016.715.613.29
elvaheli45,757014.146.033.16
otepaachase64,039015.616.043.83
otepaaheli64,039015.996.013.59

Paused replay and lifecycle behavior

Repeated fixed-time renders over the 42 main candidate stills produced median RGB mean absolute difference 0.000001 on the 0–255 scale; maximum observed channel difference was 3. Camera partition/seek determinism, pause versus cut handling, stable instance identity and frustum/buffer behavior are also tested. A finite corpus cannot establish that all possible views are artifact-free.

07 / Measured cost

Show the price of the better scene.

The actual Spain allocation is NVIDIA RTX Pro 6000 Blackwell DC-2-48Q/PCI/SSE2. It is a 48 GB vGPU profile, not the 24 GB guest used in the older fidelity research and not an assumed full 96 GB physical card. More VRAM does not imply free geometry, shading or encoding throughput.

Baseline chase After, exact old path After, native planned path
Ruuhimäki3619765milliseconds / output frameNeeruti3618571milliseconds / output frameElva416742milliseconds / output frameOtepää3617849milliseconds / output frame
StageBaseline same-time chaseAfter exact old cameraAfter native planned camera
Ruuhimäki36.3 ms197.0 ms64.7 ms
Neeruti36.3 ms184.6 ms70.7 ms
Elva40.6 ms66.8 ms42.3 ms
Otepää35.6 ms178.0 ms48.7 ms

Each value is the median direct-render plus blocking BGR-readback wall time over the corresponding warmed 5 s clip, excluding its first frame. Encoding, download, buffering and browser presentation are not included. Camera changes alter overdraw and visible geometry, so the native column is not an isolated engine optimization result. The exact-old-path column is the controlled workload comparison.

The candidate loads all four stages in approximately 61.0 s in this capture process. First-frame camera planning and cold seek work are separately visible in raw timings; they are not advertised as warmed streaming throughput. The production process remained resident during isolated captures, and these are vGPU observations rather than exclusive physical-card benchmarks.

Loaded GPU inventory (device-wide, including the resident service)
name, memory.total [MiB], memory.used [MiB], driver_version
NVIDIA RTX Pro 6000 Blackwell DC-2-48Q, 49152 MiB, 13153 MiB, 595.91.07

The existing viewer keeps native resolution and adapts timestamp sampling with buffering and congestion headroom. It is allowed to deliver fewer than 30 live FPS for these quality-priority settings. Smooth offline clips establish sampled visual behavior, not a network or real-time performance guarantee.

Delivery must not undo the render

The checked-out viewer's old lease-style requests were incompatible with the finished exclusive-session backend. Its matching registered-client implementation and tests were integrated from the completed rollout rather than weakening the guard. Moving JPEG quality is raised from 56 to 92, matching paused quality; cadence still adapts. This increases delivery cost and does not change the offline render corpus.

Same rendered crop: lossless pixels, JPEG quality 56 and JPEG quality 92
Controlled compression diagnostic from one exact candidate frame, not a scene A/B. The crop is fixed; no contrast, colour or geometry alteration is applied.
JPEG qualityFrame bytesRGB RMSE (0-255)RGB MAE (0-255)
56228,8486.1204.296
92633,6754.1162.800

Compression error is not a temporal stability or photorealism score. The final live owned-session check and browser playback verify the actual delivery path separately.

08 / Negative evidence & boundaries

What was rejected, qualified or left approximate.

Rejected pilot: correct trees, unsafe old camera

The first geographic candidate still put an old aerial eye inside a crown. It was not accepted as a finished improvement, and trees were not deleted to clear the lens. The new path planner addresses that presentation failure.

Rejected first pilot with foreground branches obscuring the vehicle
Actual failed pilot capture, retained rather than discarded.

Revised camera: a different view, explicitly labelled

The second pilot demonstrates clearance at the same route time, but changes the eye and framing. It must not be used as evidence that a shader alone fixed the view.

Second pilot above the canopy with the vehicle unobstructed
Native-camera pilot; composition differs from the fixed reference.

Rejected far-canopy prototype and a real pause-stability defect

The first large candidate corpus passed media-format checks but failed visual review. Wide landmark shots exposed a faceted elevated canopy sheet and missing/stretched ground at the old 345 m vertex boundary. That corpus was retained, not promoted. Removing only a fragment cutoff and moving the sky to true far depth was insufficient. Fixing connected-mesh clipping removed the paused-frame instability; a separate on/off ablation then showed that the canopy sheet still looked worse than the underlying mapped terrain, so it was removed rather than disguised.

Rejected prototype, not the baseline Rejected wide-view candidate showing an elevated faceted canopy horizon
Same landmark, camera, time and lighting. Rejected candidate evidence is retained separately.
Final corrected candidate Final source-located landmark view without the rejected canopy sheet
No envelope geometry; normal primitive clipping and the actual mapped ground remain.

In the controlled Elva fixed-time probe, the rejected version differed by up to 105 channel levels, with 0.0702% of pixels exceeding an 8-level maximum-channel difference. After the clipping fix, eight repetitions in each of five pass ablations had maximum difference 1/255 and no pixels above that diagnostic threshold. Particle-state hashes and LOD counts stayed fixed in both versions. The final main-corpus repeated-render numbers are reported separately above; this is not a universal motion-flicker score.

Rejected version fixed-time difference heatmap with a diagonal instability band
Rejected fixed-time replay: maximum-channel difference, displayed at 4× scale.
Corrected connected-mesh clipping replay difference heatmap
Same camera and time after clipping correction; same heatmap scale.
Proposal / research directionDecision and reason
Decode every nDSM JPEG into exact metresRejected. Numeric rasters/classified products were acquired instead; preview interpretation was not calibration.
Apply universal species percentages and 2.2-3.8m spacing everywhereReplaced with source footprints, measured model bounds and bounded stand/region priors. Exact species and density outside inventory remain inferred.
Guarantee exact optical depth by radially inflating crownsNot adopted as a guarantee. Complete distant authored geometry, measured cutout correction and empirical motion evidence are more defensible.
Push arbitrary woody vertices along normals to reattach floating leavesNot applied. That is not an attachment-aware repair. Existing finished twig/leaf asset work is preserved; extreme close-ups remain asset-limited.
Force an opaque lower-ten-metre wall at every forest edgeRejected as a universal ecological rule. Edge structure is layered but openings and locally sparse woodland are preserved.
Acquire all available raw LiDAR and restricted Finnish dense data immediatelyNot necessary for this implementation. Open numeric/semantic derivatives supplied the required belt. Restricted/paid acquisitions and permissions were not assumed.
Make 1m terrain everywhere or claim centimetre accuracyNot claimed. Source resolution, output derivative resolution, rendering grid, interpolation and vertical exaggeration are distinct.
Treat mapped buildings as exact historic farmsteadsRejected. Generic contained proxies replace fabricated compounds; real roof/facade reconstruction and historic inventory remain future work.
Infer actual water level/weather from a polygon or a sagNot claimed. Levels and wetness are models; shoreline geometry is the mapped component.
Ship a lower-FPS renderer but hide unstable pacing with offline clipsRejected. Offline sampling, render cost and live delivery are reported separately; existing adaptive pacing and ownership guards are preserved.

Surveys and inventories span different years and are not uniformly contemporaneous with the rally replay. Finnish height classes can include power lines or other objects; nDSM includes elevated non-vegetation unless excluded by semantics. The regional species proxies are not a botanical classification of every crown.

The renderer remains a custom OpenGL raster system. Existing Vulkan car-query initialization and shader comments mentioning PCG, Lumen or ray tracing do not establish whole-scene ray-traced forest lighting. Water uses approximate environment/analytical response. Distant individual crowns beyond the detailed range and the finite mapped-extent/horizon transition remain limitations; no rejected canopy sheet is hidden in the final build. No universal photorealism percentage or unmeasured sub-millisecond cost is invented.

09 / Reproduction & integration

Keep the experiment reproducible.

The baseline is the integrated, actually served Spain file bundle, not an assumed single Git revision. The completed Option C lighting plus lifted-shadow finish and current stream ownership were preserved. Before capture, source was copied and hashed into an immutable isolated baseline. No production source was overwritten to obtain a favourable experimental frame.

Baseline renderer SHA-256:
291aa27b15bd7e64183f5bcf49baa4c26b79302a458c665148f855ed283a5d96

Candidate renderer SHA-256:
902aa20dc624b6509fab76f010fad33cd5b7b17b2d60f45bef08ffbe46509165

Relevant files

File / surfaceResponsibility
scripts/build_landscape_data.pyNumeric/classified acquisition, exact georeferencing, semantic masks, source dates/checksums and validated derivative coverage.
scripts/landscape_field.pyPixel-centre versus endpoint sampling, deterministic area placement, mapped foundation grading, shoreline triangulation and shared sag/shade wetness.
scripts/landscape_camera.pyAnticipatory position paths, conservative crown/scenery clearance and full-route 120Hz audits.
scripts/v710_renderer.py + scripts/a100_renderer.pyByte-identical stage/runtime integration; local relief correction; data-driven scene; culling, bounds and complete distant foliage; native camera integration.
scripts/foliage_geometry.pyMeasured crown dimensions, bounded per-mip cutout coverage factors, and pause/cut temporal state.
scripts/photoreal_terrain.pyShared terrain/grass fields, stable fine shading, consistent foliage passes, valid connected-mesh clipping and mapped water.
scripts/rally_surface.glsl + scripts/rally_particles.pyMatching GPU water/moisture and CPU tire emission input.
scripts/build_rally_data.pyRemoval of the seven-tile raw-cloud cap and physical HAG preservation. This does not claim all raw source clouds were freshly rebuilt here.
scripts/v710_server.py + stream_sessions.py + photoreal_post_fx.pyCompatible served runtime; ownership and earlier lighting/motion work preserved. The sky's depth placement is corrected without retuning its lighting.
scripts/landscape_evidence.py + collect_landscape_evidence.pyRecorded camera poses, controlled offline frames, independent media verification, source hashes and capture manifests.
python -m pip install -r scripts\requirements-landscape.txt
python scripts\build_landscape_data.py --cache "$env:LOCALAPPDATA\TGR-landscape-cache"
python -m unittest discover -s tests -p "test_landscape*.py"
python scripts\test_render_integration.py
node --test tests\streaming.test.js

# On an isolated compatible GPU host:
# PYTHONHASHSEED=69 and TGR_STANDALONE_TEST=1
# landscape_evidence.py --source [snapshot scripts] --assets [stage/model assets]
# --output [corpus] --label [label] --reference [baseline manifest]
# --reference-stills-only: moving native camera clips differ; wind control stays locked.

New geography/camera contracts, the real legacy LiDAR packing function with eight synthetic tiles and unscaled tall returns, renderer parity, particle behavior, stream ownership, shader linkage and actual GPU readback are exercised. The corrected GPU preflight ran 35 tests with two Node-only skips; the Windows streaming suite ran 31 tests. A missing remote HTTP test transport was installed and the preflight rerun, not silently skipped. The compatible latest-viewer registration and quality-92 delivery path are tested separately from the frozen renderer. Diagnostics do not replace the rendered evidence.

Capture recovery, without changing the rendered candidate

Accumulated rejected and superseded lossless experiments filled the host's 29 GB system volume. The encoder failed, so that attempt was not accepted. Spain was recovered, only our superseded experimental lossless files were reclaimed, and baseline/final-source lossless evidence was kept. All four derived inputs and every frozen renderer/shader/helper hash were checked before the formal candidate campaign was restarted. No renderer change was hidden in this operational recovery.

The capture tool now checks a conservative per-clip storage budget plus a 2 GB disk reserve and publishes explicit encoder-failure progress instead of leaving a stale running marker. The host restart changed the temporary tunnel hostname; the compatible viewer's default and recovery manifest were updated together. A live host recovery is not itself evidence of a visual improvement.

Promotion and rollback

{
  "status": "not promoted"
}

Promotion is conditional on the accepted evidence. Both runtime and asset copies must contain the same renderer/shader/helper versions; stream-session ownership stays intact. A rollback source snapshot is retained. Live anonymous frame and batch requests must still be rejected, and an owned-session capture must decode at native resolution.

10 / Audit trail

Sources, manifests and originals.

National geospatial products retain their own attribution and terms. Existing imagery remains subject to its separate provider terms; the JPEG alone does not establish provider or acquisition vintage. Poly Haven-derived scene assets retain their existing licensing. No third-party rally reference photograph is republished here as an unverified licensed source.

  1. Estonian elevation products and download catalogue
  2. Estonian Topographic Database
  3. ETAK public feature service
  4. Finnish Forest Centre stand schema/service
  5. SYKE 2m land-cover/height product
  6. SYKE published class legend
  7. Ignacio Castano: Computing Alpha Mipmaps
  8. NLS open sparse LiDAR product (not a new dense-data acquisition)

All 112 original PNG stills and 26 full-resolution original MP4 clips are hosted on this site. The report players use smaller reading copies; lossless FFV1 masters remain privately retained. Browse the original video library or download the public evidence catalogue with checksums. Operational filesystem paths, remote-host access details and private workspace metadata are not published.

Independent media and source validation
{
  "status": "verified",
  "renderer_sha256": "902aa20dc624b6509fab76f010fad33cd5b7b17b2d60f45bef08ffbe46509165",
  "still_count": 112,
  "clip_count": 26,
  "output_motion_frames": 3900,
  "public_originals": "See evidence.json for hosted originals and SHA-256 checksums."
}
Per-stage data lineage and uncertainty
{
  "ruuhimaki": {
    "grid_shape": [
      3136,
      2212
    ],
    "pixel_m": [
      1.9997603978300182,
      1.9995854591836735
    ],
    "canopy_corridor_coverage": 1.0,
    "observed_height_percentiles_m": [
      7.5,
      12.5,
      23.0,
      25.875
    ],
    "unknown_height_cells": 0,
    "source_feature_candidates": {
      "building": 251,
      "water": 1
    },
    "ndsm_tiles": 0,
    "crs": 3067,
    "sources": [
      {
        "sha256": "9bd1301e6d23be9bf9e0a17a1ae857ab926e74df4d19e9e24bbb03131f7f81ba",
        "file": "ruuhimaki_landcover.tif"
      },
      {}
    ]
  },
  "neeruti": {
    "grid_shape": [
      1641,
      1877
    ],
    "pixel_m": [
      1.9990783164624402,
      1.9990067032297378
    ],
    "canopy_corridor_coverage": 1.0,
    "observed_height_percentiles_m": [
      5.31640625,
      14.9453125,
      23.78125,
      28.671875
    ],
    "unknown_height_cells": 227072,
    "source_feature_candidates": {
      "building": 108,
      "water": 33
    },
    "ndsm_tiles": 17,
    "crs": 3301,
    "sources": [
      {},
      {},
      {},
      {},
      {},
      {},
      {},
      {
        "sha256": "36ed0c4b3673749133b22a5c9a78b4b5d1638e037989354a7bae80b3391574a9",
        "file": "442647_ndsm_1m.tif"
      },
      {
        "sha256": "8900eeac6c0bd97eb349c08c2b443c15a99a99a24e1ff3f2d313cc4da6972ec4",
        "file": "442648_ndsm_1m.tif"
      },
      {
        "sha256": "33292bf46199b2a9abac7b1e2bfebbb2fe0963e3b3e07b74ece478d3357fdd46",
        "file": "442649_ndsm_1m.tif"
      },
      {
        "sha256": "a7313331b02245f57c703062e148974c1c5567853556e9d037d431e8af04ee63",
        "file": "442650_ndsm_1m.tif"
      },
      {
        "sha256": "4b88971fa8b83331dcd335304e3fd28d378110595c79f8814d3f4fecaba50e0b",
        "file": "443647_ndsm_1m.tif"
      },
      {
        "sha256": "9ea46ffcb28f4b61418ce06cb8d338962984e49215a26c67dc54835b23cd198b",
        "file": "443648_ndsm_1m.tif"
      },
      {
        "sha256": "2a34903d8fe8cc2098785e5184e5ef709d33d97ef8981c57364d0b90c8c9befa",
        "file": "443649_ndsm_1m.tif"
      },
      {
        "sha256": "f73ec609213a1333d4a7375cdfcec22d9a53885e67829c65e38d6d88c8c3e943",
        "file": "443650_ndsm_1m.tif"
      },
      {
        "sha256": "d0819f652aff937610125faa0f404cc8314d4ac46ada2b957d537be43fab935c",
        "file": "444647_ndsm_1m.tif"
      },
      {
        "sha256": "50730840bf040e4bb24298ade163471f3d0e49a21f0019da79edf07e05618854",
        "file": "444648_ndsm_1m.tif"
      },
      {
        "sha256": "dadaeb78e7498f5a22e3750a4aca14d0753cb76cca842294d0b13b775d2dbcd8",
        "file": "444649_ndsm_1m.tif"
      },
      {
        "sha256": "af4c91a4fcf86a0070b5a63edfdb98c62ce9a5681f1680cb2c25e08a97330fe6",
        "file": "444650_ndsm_1m.tif"
      },
      {
        "sha256": "0cb87bfa286678fb860ce1291be23a5e00f643b2b1f4f0fb1212af44c4ce17d5",
        "file": "444651_ndsm_1m.tif"
      },
      {
        "sha256": "f4ef3fb1e2b8e5640f3e597897cbf6b45d08581e79395413de26c43c3df23028",
        "file": "445648_ndsm_1m.tif"
      },
      {
        "sha256": "72c3076de6e142f7874f294b65a2c7ed8e9006c7547e3742f70ccb7b0bdea1ec",
        "file": "445649_ndsm_1m.tif"
      },
      {
        "sha256": "88d8d647d305f0e82655fab7f745b95b3559cd4cf9ec78292047aca26032d805",
        "file": "445650_ndsm_1m.tif"
      },
      {
        "sha256": "7d96ad9ba3acff31cd33d32ce1f95e54d9e2c9668901814b9794871556b9bbd8",
        "file": "445651_ndsm_1m.tif"
      },
      {
        "sha256": "309134e88cbe36ded215b8e8e0e39bb0eb6af18ebb5fb0684ee626b515052dcb",
        "file": "54442_dtm_1m.tif"
      },
      {
        "sha256": "86cf02e6c0996ddb412cf6580ec8f362a7f8951363a3535905119fa1a0d264ad",
        "file": "54451_dtm_1m.tif"
      },
      {
        "sha256": "24c7982c049c596a9d459bdfa15f450fd28e1b75916a47fa397f33322636cfb6",
        "file": "54444_dtm_1m.tif"
      },
      {
        "sha256": "b01c3a16e0185c5f444034d43e0b92a5badfc495274378369b8df4b4101d4de1",
        "file": "54453_dtm_1m.tif"
      }
    ]
  },
  "elva": {
    "grid_shape": [
      2759,
      2741
    ],
    "pixel_m": [
      1.9996351696461145,
      1.999869517941283
    ],
    "canopy_corridor_coverage": 1.0,
    "observed_height_percentiles_m": [
      5.0703125,
      14.0546875,
      23.109375,
      28.328125
    ],
    "unknown_height_cells": 2016919,
    "source_feature_candidates": {
      "building": 296,
      "water": 63
    },
    "ndsm_tiles": 29,
    "crs": 3301,
    "sources": [
      {},
      {},
      {},
      {},
      {},
      {},
      {},
      {
        "sha256": "13948feda38daa1b1804626298c993ff43d0b2e489c4782fae2e3ddc126bce45",
        "file": "458641_ndsm_1m.tif"
      },
      {
        "sha256": "c05d6ff79da6b8fb4f9807cd70674994931a4934de2e7f0861c9bdc331c63cc8",
        "file": "458642_ndsm_1m.tif"
      },
      {
        "sha256": "e3fb320bf6709b4f69da3eff7f9bb461c313cf6b8ec6f7bfa58a808bd5ce7431",
        "file": "459640_ndsm_1m.tif"
      },
      {
        "sha256": "a0e1dceb6c37e504ab59dfeea5980a06b82e64a86e9865462d24f2aafdf753cb",
        "file": "459641_ndsm_1m.tif"
      },
      {
        "sha256": "df8855e69c1270af32cf34b8a5ec41460e48404643eea6506a203895437a60d3",
        "file": "459642_ndsm_1m.tif"
      },
      {
        "sha256": "fb813815b956602fe491a8482da722c68568f44e03ccc2e4bdf61965e77490cd",
        "file": "460640_ndsm_1m.tif"
      },
      {
        "sha256": "61cf44811ef7beafb2d3683e390f92c2b8ec57ac75ff00531835fc8488b459f3",
        "file": "460641_ndsm_1m.tif"
      },
      {
        "sha256": "088a2dbbed363cac0923b03a7057bb71048aa72dff747b6f2cf363fc28444b07",
        "file": "460642_ndsm_1m.tif"
      },
      {
        "sha256": "534170510b0e723241333f6a949ae7daeef247bac563d1ecb408a8fa71560905",
        "file": "460643_ndsm_1m.tif"
      },
      {
        "sha256": "1970ed73244d32a14480eb255e1bb21618978251487dd4802e826b5212629b3f",
        "file": "461637_ndsm_1m.tif"
      },
      {
        "sha256": "31e86565c93883fe40597366be607f2697b6c6bbf2805e2a2868dbab26b7897c",
        "file": "461638_ndsm_1m.tif"
      },
      {
        "sha256": "83d041606c65c4e4957a509a2c85a71421d08c3dbe9c5692706603bc9d0fdb35",
        "file": "461639_ndsm_1m.tif"
      },
      {
        "sha256": "d8cd493ddf31d2943c81d7584e4f5fd2f63fb61754eca8312d290512c1b9646a",
        "file": "461641_ndsm_1m.tif"
      },
      {
        "sha256": "10ade7b60b73f9ae488fef6dfef0d9b94541a668e387a1d7a5ca54aea23b9d56",
        "file": "461642_ndsm_1m.tif"
      },
      {
        "sha256": "5b27cb1d68d9eb4312372d33b52c05087dafd00a68cfdafc7df93ddf32e088ae",
        "file": "461643_ndsm_1m.tif"
      },
      {
        "sha256": "cac25de909c4beca3913b1ea69b63b1bbe314ba3d45a1dc4e23616e823104c06",
        "file": "462637_ndsm_1m.tif"
      },
      {
        "sha256": "76ddba0c46943509a933347b5c086f846fb34d33bf1f5e7bfaffe7a3435c786f",
        "file": "462638_ndsm_1m.tif"
      },
      {
        "sha256": "09270c0607a35ba1f33f8e54e5a14f51de02149b9e21a13f13d24c205c826c44",
        "file": "462639_ndsm_1m.tif"
      },
      {
        "sha256": "64f5c24f38fa748b4ea8b9a01301692d872538156e523a5e0d8578c0bf2cd9ad",
        "file": "462640_ndsm_1m.tif"
      },
      {
        "sha256": "1a25fd85920ef9852ee0da1bff113eb72a0861806103530810dd8c8f39f987ca",
        "file": "462641_ndsm_1m.tif"
      },
      {
        "sha256": "e2b88ad5583a914821c583c0ac5bf785a46b0daa0be42e86d2404cabc47b4a12",
        "file": "462642_ndsm_1m.tif"
      },
      {
        "sha256": "24c9c8287e1182b119100b156cb4c9a6bf1119825e8410ddc7db4d730bcaa352",
        "file": "462643_ndsm_1m.tif"
      },
      {
        "sha256": "cbb37981ad6f9d3ad6470aac5ce36e77a5355359b3188b44994559adb9327e9f",
        "file": "463638_ndsm_1m.tif"
      },
      {
        "sha256": "8460449a54df26eba1695a19c83cc4ced82d8838fc9a5a8daaa33952d296f439",
        "file": "463639_ndsm_1m.tif"
      },
      {
        "sha256": "af17df0a32cee2a076344ad4d1204ff01829ac7d0a0b611595052ba80685a761",
        "file": "463640_ndsm_1m.tif"
      },
      {
        "sha256": "f8a576cc057d3d152e45048d6627f1cba9981ca5384644a6230b2131b97a60e0",
        "file": "463641_ndsm_1m.tif"
      },
      {
        "sha256": "f385e1fb58eeacf47dd873ae0b80dfd6311d09fe0ae651e515fa6935dd0017ec",
        "file": "463642_ndsm_1m.tif"
      },
      {
        "sha256": "abbd885b66bd7f7f50d6388ff3e132f1b95027d7150fcb8b02abc201a7ca16da",
        "file": "464640_ndsm_1m.tif"
      },
      {
        "sha256": "a7dcfd9e0c63920d78b3d40229af2daff04b799f0defc7a74a357062d7379431",
        "file": "464641_ndsm_1m.tif"
      },
      {
        "sha256": "51a59bc01a5411b46164b38161ccfc32b7670177d9f520e25610eb34e29d40f5",
        "file": "54534_dtm_1m.tif"
      },
      {
        "sha256": "ac565598c564068b4570db031416caa168309f50ea7b9af96b123727e64cb3c3",
        "file": "54543_dtm_1m.tif"
      },
      {
        "sha256": "a2c5085103ed67b76bfa3dfbf1645144091efe358fc2cf5dbeb47e5cdcd39f8b",
        "file": "54632_dtm_1m.tif"
      },
      {
        "sha256": "8c179cbb19c2d7ff6cd6e67aff7f56d22ffe644048732a2236da7b536710e74f",
        "file": "54641_dtm_1m.tif"
      }
    ]
  },
  "otepaa": {
    "grid_shape": [
      4476,
      4540
    ],
    "pixel_m": [
      1.9997004405286343,
      1.9997721179624663
    ],
    "canopy_corridor_coverage": 1.0,
    "observed_height_percentiles_m": [
      4.9765625,
      14.15625,
      23.296875,
      27.921875
    ],
    "unknown_height_cells": 11853928,
    "source_feature_candidates": {
      "building": 291,
      "water": 103
    },
    "ndsm_tiles": 36,
    "crs": 3301,
    "sources": [
      {},
      {},
      {},
      {},
      {},
      {},
      {},
      {
        "sha256": "2e5407be951f47c3567ce265451ec9ab5061c143b860a4a37279c1e2f4ce95be",
        "file": "426653_ndsm_1m.tif"
      },
      {
        "sha256": "5af45abbfcec2109599a78b85d9f35a9fc9558cb0aaa9aa12cd8074749b4fbe9",
        "file": "426654_ndsm_1m.tif"
      },
      {
        "sha256": "becb6a5bbb43362688732b88a523d746026a309387da04f1edd5a4672cc2bf8a",
        "file": "426655_ndsm_1m.tif"
      },
      {
        "sha256": "06f1877c9435574c674a7099598f56273fee90497f051735aaef56fcdb361ee2",
        "file": "426656_ndsm_1m.tif"
      },
      {
        "sha256": "bbbfaa24b5f2de2abdabaf783d39c2848c95175739cea575dbe45b136f76da01",
        "file": "427651_ndsm_1m.tif"
      },
      {
        "sha256": "49ee19dba71da97b31d5caa2a94e911d9a2d7e65affacc229ca84338a68582c8",
        "file": "427652_ndsm_1m.tif"
      },
      {
        "sha256": "9ace8b790469898793832dc8d17b9a8ac66b18d87339c3f8c68cd3d693ef5497",
        "file": "427653_ndsm_1m.tif"
      },
      {
        "sha256": "d4999e926d875b83a954262563bd83f765f0b181161b56513d73fe720b816680",
        "file": "427654_ndsm_1m.tif"
      },
      {
        "sha256": "c1fb132b2340ad890c13964d92f9c5f6bb5e2fae03190479afe7225adf16f8af",
        "file": "427655_ndsm_1m.tif"
      },
      {
        "sha256": "4792486bbef03ba6d0c7e6d5e457a613428257414668b565fb76573ab04acfee",
        "file": "427656_ndsm_1m.tif"
      },
      {
        "sha256": "1dd326a610fc57faa4af0296074807e355e778b4cc64b97a0946239ab5c6d53f",
        "file": "428650_ndsm_1m.tif"
      },
      {
        "sha256": "23a37a5274114fec8088ef7cee9996b4a84083e933d3b1e5dc795ce7043e0cb7",
        "file": "428651_ndsm_1m.tif"
      },
      {
        "sha256": "5c95c2c1919a536df585b696fe9cb34aa08710b5677486a074b870771819676c",
        "file": "428652_ndsm_1m.tif"
      },
      {
        "sha256": "91ee226d378db91ce685734276e398ec59cc38b52654924ed0cced52ed156626",
        "file": "428653_ndsm_1m.tif"
      },
      {
        "sha256": "bb6e4291ede6b4faf401bbe1b8d8b79c7d23986863a792dff29fa268f604a2bf",
        "file": "428655_ndsm_1m.tif"
      },
      {
        "sha256": "c15ed8f87c340d561ebfacab786682eb94bca75e815db556dbb89f7d371f81b9",
        "file": "428656_ndsm_1m.tif"
      },
      {
        "sha256": "d98539a488ebba81770042dc5736aebd971f2e90ede99830f192f935f4ea8b09",
        "file": "429650_ndsm_1m.tif"
      },
      {
        "sha256": "43280022aca994561eebb696ebf45ec161250c16226e309a90313fa616290ec5",
        "file": "429651_ndsm_1m.tif"
      },
      {
        "sha256": "0bd169d6c0c7308657d10418b611508945fee39558689d2f69973aee4b14de57",
        "file": "429652_ndsm_1m.tif"
      },
      {
        "sha256": "611ee6eb97628d2f18ec7771113b7c4382d0d8a87bc9e627e103e54e695f9ea0",
        "file": "430650_ndsm_1m.tif"
      },
      {
        "sha256": "20f7f349cf5fa47c0bf313f2f62236d1430e1947047486439892ce5509f309ad",
        "file": "430651_ndsm_1m.tif"
      },
      {
        "sha256": "ab5940319afb62ee7a25fcb73df8ced7b5298226747c0bb0e17e0e6735e122e0",
        "file": "430652_ndsm_1m.tif"
      },
      {
        "sha256": "b3ba1a7f173d11d8615441d6d0c06c4436a0fcbeeabe78491bfcd8c1938e81d9",
        "file": "431650_ndsm_1m.tif"
      },
      {
        "sha256": "169b8fa5df1ebbb6540fe1dc0b605f16a3958ec12ab478e30f98c6b52dbc3898",
        "file": "431651_ndsm_1m.tif"
      },
      {
        "sha256": "94084377c0df7f90ed221974bc186607ac27c4bda05f9a78a5b8fb9ccd7d37b9",
        "file": "431652_ndsm_1m.tif"
      },
      {
        "sha256": "053874f15a67c55c8515ac30505b5bb0f9baf181ce31157b5f086f000d0daa30",
        "file": "432650_ndsm_1m.tif"
      },
      {
        "sha256": "b28de529c6833104b445e9cebdd5d6ca9b1e13a3db9a438523757fa96de113ed",
        "file": "432651_ndsm_1m.tif"
      },
      {
        "sha256": "19fef4b89e6835df362b9d6634b2f4b300f79c6e6e043dd5a40fefcfc9591ac2",
        "file": "433647_ndsm_1m.tif"
      },
      {
        "sha256": "342daf0a97fcc0b1e506009aec3b206abe0506ea811b8134332a63b1d024095a",
        "file": "433648_ndsm_1m.tif"
      },
      {
        "sha256": "9fde79821ca468040cd0305d063fc70004c7698ffdd3d3b979766fde3f7edccb",
        "file": "433649_ndsm_1m.tif"
      },
      {
        "sha256": "00922706c3f22ae9979ddc700b685a6de42c920ace4af726c7e01c2f9c8ebac9",
        "file": "433650_ndsm_1m.tif"
      },
      {
        "sha256": "049c86456fe455b94b8f824f5052b8033532391c57c74a595711ece129f8b150",
        "file": "433651_ndsm_1m.tif"
      },
      {
        "sha256": "badbdf598b8921e3c9529820f40271c8a4009e0b8816c91e3d469d5838fa1cef",
        "file": "434647_ndsm_1m.tif"
      },
      {
        "sha256": "98999bf542effbe530ccea2c81c42407fa6baa9832cdd4780ee20306a1084b1c",
        "file": "434648_ndsm_1m.tif"
      },
      {
        "sha256": "32e069fd4f29a9fd40ed7d10ce5191677265dbe80a2b53bcaca4d5ce817b38a4",
        "file": "434649_ndsm_1m.tif"
      },
      {
        "sha256": "8819419a724ec0dfbf05ece4722e43b1a305794bec6eef632a71c17af19cfdfe",
        "file": "434650_ndsm_1m.tif"
      },
      {
        "sha256": "19e133fa04a40783a27ea20d102694767d1f128e0a353433a8e8f123bc1233fd",
        "file": "54244_dtm_1m.tif"
      },
      {
        "sha256": "74ffa407e070c143167421ee923c6f3fa01cc42056caaf1081a615cafaffbba9",
        "file": "54253_dtm_1m.tif"
      },
      {
        "sha256": "c84ee474243f8d6cd51bd1cca9fbfaf8e02fa070c1e50ea3fb570f97c3dae84c",
        "file": "54254_dtm_1m.tif"
      },
      {
        "sha256": "95c90bba89ccee813ec1e35e4809c96cc927af6ece6a6bfa15a63f9bad0ec958",
        "file": "54342_dtm_1m.tif"
      },
      {
        "sha256": "7ac10790028f1e74e78bd47f706993c62426477e2a264047d1d804953bbacc0c",
        "file": "54351_dtm_1m.tif"
      },
      {
        "sha256": "af9c2e888c2970e37d5715ab8e9f78dcab3c9b71e2984db25ada46169d799d10",
        "file": "54352_dtm_1m.tif"
      }
    ]
  }
}
Complete candidate camera and timing manifest
{
  "resolution": [
    1920,
    1080
  ],
  "fps": 30,
  "frames_per_clip": 150,
  "lighting": "golden",
  "msaa_samples": 8,
  "camera_audits": {
    "ruuhimaki": [
      {
        "mode": "chase",
        "samples": 39998,
        "proxy_intrusions": 0,
        "inter_sample_clearance_lift": 0.0,
        "horizontal_smoothing_seconds": 0.5850000000000001,
        "max_horizontal_acceleration": 14.478967987234059,
        "max_horizontal_speed": 51.72873080549647,
        "max_vertical_speed": 6.455832030856514,
        "max_vertical_acceleration": 3.1841035151132266,
        "clearance_model": "Wind-inflated crowns, static scenery/building bounds and terrain; not a triangle-level collision proof."
      },
      {
        "mode": "heli",
        "samples": 39998,
        "proxy_intrusions": 0,
        "inter_sample_clearance_lift": 0.0,
        "horizontal_smoothing_seconds": 0.9886500000000003,
        "max_horizontal_acceleration": 15.333182533931527,
        "max_horizontal_speed": 54.828947921383,
        "max_vertical_speed": 6.76092226451708,
        "max_vertical_acceleration": 3.1578229138103118,
        "clearance_model": "Wind-inflated crowns, static scenery/building bounds and terrain; not a triangle-level collision proof."
      }
    ],
    "neeruti": [
      {
        "mode": "chase",
        "samples": 37108,
        "proxy_intrusions": 0,
        "inter_sample_clearance_lift": 0.0,
        "horizontal_smoothing_seconds": 0.45,
        "max_horizontal_acceleration": 17.02817815281118,
        "max_horizontal_speed": 50.380777859092895,
        "max_vertical_speed": 4.522570644671464,
        "max_vertical_acceleration": 3.1002396056042736,
        "clearance_model": "Wind-inflated crowns, static scenery/building bounds and terrain; not a triangle-level collision proof."
      },
      {
        "mode": "heli",
        "samples": 37108,
        "proxy_intrusions": 0,
        "inter_sample_clearance_lift": 0.0,
        "horizontal_smoothing_seconds": 1.2852450000000004,
        "max_horizontal_acceleration": 13.013383071547697,
        "max_horizontal_speed": 52.00983300790811,
        "max_vertical_speed": 6.592610203746105,
        "max_vertical_acceleration": 3.5629840169869804,
        "clearance_model": "Wind-inflated crowns, static scenery/building bounds and terrain; not a triangle-level collision proof."
      }
    ],
    "elva": [
      {
        "mode": "chase",
        "samples": 45757,
        "proxy_intrusions": 0,
        "inter_sample_clearance_lift": 0.0,
        "horizontal_smoothing_seconds": 0.5850000000000001,
        "max_horizontal_acceleration": 16.710377522178927,
        "max_horizontal_speed": 52.29048664028828,
        "max_vertical_speed": 5.6055807241970195,
        "max_vertical_acceleration": 3.286984702804116,
        "clearance_model": "Wind-inflated crowns, static scenery/building bounds and terrain; not a triangle-level collision proof."
      },
      {
        "mode": "heli",
        "samples": 45757,
        "proxy_intrusions": 0,
        "inter_sample_clearance_lift": 0.0,
        "horizontal_smoothing_seconds": 1.2852450000000004,
        "max_horizontal_acceleration": 14.137438785105704,
        "max_horizontal_speed": 53.885486428673104,
        "max_vertical_speed": 6.0311892772377895,
        "max_vertical_acceleration": 3.163673460977745,
        "clearance_model": "Wind-inflated crowns, static scenery/building bounds and terrain; not a triangle-level collision proof."
      }
    ],
    "otepaa": [
      {
        "mode": "chase",
        "samples": 64039,
        "proxy_intrusions": 0,
        "inter_sample_clearance_lift": 0.0,
        "horizontal_smoothing_seconds": 0.5850000000000001,
        "max_horizontal_acceleration": 15.613726108860865,
        "max_horizontal_speed": 54.60469046131732,
        "max_vertical_speed": 6.0433121308510165,
        "max_vertical_acceleration": 3.8259314198200522,
        "clearance_model": "Wind-inflated crowns, static scenery/building bounds and terrain; not a triangle-level collision proof."
      },
      {
        "mode": "heli",
        "samples": 64039,
        "proxy_intrusions": 0,
        "inter_sample_clearance_lift": 0.0,
        "horizontal_smoothing_seconds": 0.9886500000000003,
        "max_horizontal_acceleration": 15.985896676613176,
        "max_horizontal_speed": 56.240572600139686,
        "max_vertical_speed": 6.011052591800435,
        "max_vertical_acceleration": 3.5867489398957586,
        "clearance_model": "Wind-inflated crowns, static scenery/building bounds and terrain; not a triangle-level collision proof."
      }
    ]
  },
  "timing_scope": "Wall time around direct HDR render and blocking BGR readback; not streamed FPS.",
  "temporal_metric": "Quarter-resolution bidirectional-flow-consistent luminance residual; diagnostic only.",
  "stages": {
    "ruuhimaki": {
      "trees": 517911,
      "species": {
        "0": 125890,
        "1": 90849,
        "2": 90537,
        "3": 143565,
        "4": 459,
        "5": 490,
        "6": 36929,
        "7": 29192
      },
      "seconds": 333.31,
      "mapped_buildings": 232,
      "water_bodies": 1
    },
    "neeruti": {
      "trees": 315013,
      "species": {
        "0": 103562,
        "1": 47025,
        "2": 46845,
        "3": 52826,
        "4": 3345,
        "5": 3735,
        "6": 37874,
        "7": 19801
      },
      "seconds": 309.23,
      "mapped_buildings": 94,
      "water_bodies": 33
    },
    "elva": {
      "trees": 423672,
      "species": {
        "0": 130297,
        "1": 59302,
        "2": 59529,
        "3": 70870,
        "4": 4226,
        "5": 4522,
        "6": 61699,
        "7": 33227
      },
      "seconds": 381.3,
      "mapped_buildings": 270,
      "water_bodies": 63
    },
    "otepaa": {
      "trees": 651447,
      "species": {
        "0": 203067,
        "1": 92825,
        "2": 92888,
        "3": 108290,
        "4": 7402,
        "5": 8264,
        "6": 90381,
        "7": 48330
      },
      "seconds": 533.65,
      "mapped_buildings": 251,
      "water_bodies": 103
    }
  },
  "public_originals": "All original MP4 clips and linked PNGs are hosted on this site."
}

Report previews preserve composition and colour but are resized/compressed for reading. They are not substitutes for the linked lossless stills when inspecting subpixel foliage. Video playback is user-initiated at the original rate. The evidence supports the stated finite acceptance corpus, not a claim that every possible scene, view or future dataset is artifact-free.