Terrain beautify: Iceland glacial grade + arid Grand Canyon (brown drainage, Colorado focal point)#97
Conversation
…copper rock, aspect moss, tribonacci cloud sky Photoreference-driven aesthetic pass on the geo terrain + sky, chasing the vivid aerial-Iceland look (turquoise glacial water, moss-green lee slopes, copper volcanic rock, snow caps, a textured drifting cloudscape). All shader-side — no asset rebake, decoupled from the mesh (the clouds live in the sky dome, so they don't touch the 16 M terrain verts — LOD-irrelevant). Replaces the per-vertex cloud-shadow term from #96 (the "fill 12 M verts with shadows" approach the operator rejected). Terrain shader (KIND/aspect-gated so each scene keeps its own identity): - TURQUOISE water — blue-KIND cells pushed to a vivid glacial-meltwater teal ("as turquoise as it gets"). Only Iceland's ocean/rivers change; the canyon has no water KIND. - COPPER rock — the height ramp's rock/scree bands go copper/rust instead of neutral-brown/grey. Works for BOTH scenes (Iceland volcanic + Grand Canyon red rock). - MOSS by ASPECT — moss/lichen favours the shaded, weather-facing slopes (the "north face holds the moisture" rule; ~ aspect × insolation via dot(n,-sun)), bare copper rock on the sun-baked faces — the mottled green/copper of the reference. Gated by a uMoss uniform to Iceland; the desert canyon stays bare. - VIVID GRADE — a measured +22% saturation + gentle contrast so each scene punches its own aColor palette (Iceland greens/turquoise pop, the canyon deepens to rich red — not radioactive, not green). - Sun-glint (now on turquoise water) + ice sheen retained, KIND-gated. Sky dome: - Dramatic DRIFTING CLOUDS — the flat gradient becomes a textured cloudscape. The fBm uses the TRIBONACCI constant (≈1.8393) as its octave lacunarity, so successive octaves never fall on a repeating lattice → organic, non-repeating clouds (the number-theoretic cousin of the workspace's golden-spiral ruler). Drifts with uTime, throttled to ~15 fps for all geo scenes. Verified by render (static capture; the animated 16.5 M scene needs a real GPU): Iceland reads as vivid aerial highlands (green lee slopes, copper rock, turquoise sea, snow, cloudy sky); the canyon reads as rich red-rock desert with turquoise rivers + cloud sky and NO false moss. tsc --noEmit clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012jEwwaT5JZ5x8qWvcnaMYC
The dendritic Stream network on the canyon tile is DRY drainage (washes /
gullies / arroyos), not water — river-blue made the plateau read as wet.
Reserve blue for the actual Water bodies (the Colorado) and recolour the
drainage rust-brown, so the river stays the visual focal point.
- geo classify.rs: GeoKind::ARID_DRAINAGE = [120,68,44] + arid_palette() —
the KIND palette with Stream browned, every other class (incl. blue Water)
unchanged. Unit-tested (drainage warm, water stays blue-dominant).
- geo garmin_bake.rs: --arid uses arid_palette() for the ONE palette that
feeds both the ver-8 terrain KIND block AND the DRP1 drape, so the drainage
browns consistently across terrain overlay + line network. The diff vs the
non-arid bake is exactly the 3-byte Stream RGB entry in each wire; the
terrain geometry is byte-identical to the deployed asset.
- cockpit GeoHelix.tsx: uArid uniform (1 = non-glacial scene) gates the
glacial turquoise OFF (the canyon's Water stays plain river-blue, not teal)
and re-asserts a clean deep river-blue for the Water cells so the Colorado
survives the 55% terrain blend + warm sunset key as the focal point.
Iceland (uArid=0) keeps its meltwater turquoise; browned drainage is wet=0
so the shader leaves it as baked earth.
- Rebaked canyon.v8grid{,.drape}.soa.gz from 47505316.img --arid. Headless
/garmin/grand-canyon verified: warm desert plateau + brown incised drainage,
the Colorado a thin blue ribbon in the canyon depth (0 → 475 blue water px).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jEwwaT5JZ5x8qWvcnaMYC
… river
The drainage-brown pass left the Colorado a ~1-cell hairline; the reference
photos show it as the bold visual focal point. Two correctness-shaped fixes:
- classify.rs: Garmin Poly type 0x4b is the background / definition-area
rectangle (a 5-point ring spanning 98%×99% of the tile), not water — it drew
a blue border around the whole tile once the river was widened. Carve
0x4b → Other (before the 0x3c..=0x4f → Water range). Golden histogram
updated: Water 2255→2251, Other 3664→3668 (the 4 reclassified 0x4b polys).
- terrain.rs: dilate_kind() (tested) binary-dilates a KIND by N rings;
garmin_bake --arid widens the Water cells ×2 so the Colorado's thin
river-fill reads as a ribbon (5802→13184 cells). Real lakes/tanks widen too
— still discrete blue dots, not a wet plateau.
- GeoHelix.tsx: brighter arid-water base (0.16,0.44,0.66) + a post-grade
silvery river-blue lift (step 7, wet·uArid·0.55) so the warm sunset key no
longer mutes the river; it catches the light as the focal point.
- Rebaked canyon.v8grid{,.drape}.soa.gz. Verified /garmin/grand-canyon: the
Colorado threads the canyon as a bold blue ribbon, plateau clean earth with
brown drainage, tile-edge artifact gone (blue terrain fraction 0.46%→1.31%,
interior).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012jEwwaT5JZ5x8qWvcnaMYC
|
Warning Review limit reached
Next review available in: 39 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds an "arid" terrain mode: ChangesArid Drainage and River Rendering
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_29303452-0f1c-4b30-a4d1-d30dece21a7f) |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cc6b124464
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // the continuous redraw of a heavy DEM so it's cheap on battery). Anatomy/buildings | ||
| // never enter this branch and stay fully on-demand (no idle cost). | ||
| if (isTerrainScene && tnow - lastCloud >= 66) { lastCloud = tnow; uniforms.uTime.value = (tnow - t0) * 0.001; dirty.current = true; } | ||
| if (skyMat && tnow - lastCloud >= 66) { lastCloud = tnow; skyMat.uniforms.uTime.value = (tnow - t0) * 0.001; dirty.current = true; } |
There was a problem hiding this comment.
Gate cloud redraws to terrain scenes
When viewing the OSM/building geo scene (/geo or ?scene=osm), skyMat is non-null because the sky dome is created for any geo scene, while isTerrainScene is false. This condition now wakes the render loop every ~66 ms and redraws the whole building scene at idle, defeating the on-demand rendering path immediately below; if the continuous cloud animation is only meant for terrain DEMs, keep this gated on the terrain scene rather than the presence of a sky material.
Useful? React with 👍 / 👎.
The drifting-cloud tick was gated on `skyMat` being non-null, but the sky dome is created for ANY geo scene — including the OSM/building `/geo` scene (isGeoScene, not isTerrainScene). That woke the render loop every ~66 ms and redrew the heavy 6.8 M-tri building scene at idle, defeating the on-demand render path directly below and the block comment's own claim that "anatomy/buildings never enter this branch". Gate on `isTerrainScene && skyMat` so only the terrain DEM scenes (Iceland, Grand Canyon) advance the cloud drift; the OSM scene keeps a static cloud sky (uTime stays 0) and returns to idle-cheap on-demand rendering. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012jEwwaT5JZ5x8qWvcnaMYC
Aesthetic pass over the
/garmin/<location>terrain scenes, driven by reference photos. Three commits, all shader- and bake-side (no route/server changes).1. Beautiful-Iceland grade (
b77da963)Vivid Icelandic-highland look for the Iceland DEM scene, all in
GeoHelix.tsx(no asset rebake):dot(n,-sun), gated to Iceland byuMoss).2. Arid Grand Canyon — brown dry drainage, blue Colorado only (
dab1b034)The dendritic
Streamnetwork on the canyon is DRY drainage (washes/gullies), not water — river-blue made the plateau read as wet.GeoKind::arid_palette()browns theStreamKIND ([120,68,44]);garmin_bake --aridapplies it to the ONE palette that feeds both the ver-8 terrain KIND block and the DRP1 drape, so drainage browns consistently. The rebake diff is exactly the 3-byteStreamRGB in each wire — terrain geometry byte-identical to the deployed asset.uAridshader uniform (1 = non-glacial scene) gates the glacial turquoise OFF so the canyon's Water stays plain river-blue (not teal); Iceland keeps its turquoise.3. Colorado as focal point (
cc6b1244)The reference photos show the Colorado as the bold visual focal point; the first pass left it a ~1-cell hairline. Two correctness-shaped fixes:
0x4bis the background/definition-area rectangle (a 5-pt ring spanning 98%×99% of the tile), mis-classed asWater; its outline drew a blue border around the whole tile once the river was widened. Carve0x4b → Other. Golden histogram updated (Water 2255→2251, Other 3664→3668).terrain::dilate_kind()(tested) binary-dilates theWatercells ×2 on--aridso the river-fill reads as a ribbon (5802→13184 cells).Verification
geo-hhtllib: 24/24 tests green (arid palette, river dilation, updated histogram golden).cockpit:tsc --noEmitclean,npm run buildclean./garmin/grand-canyon: warm desert plateau + rust-brown incised drainage, the Colorado a bold blue ribbon threading the canyon depth; tile-edge artifact gone (blue terrain fraction 0.46%→1.31%, interior). Iceland unaffected (uArid=0).garmin: grand-canyonview in place — same menu entry, no new dropdown.crates/cargo workspace;geo/(separate workspace) andcockpit/(vite app) verified with their own toolchains.🤖 Generated with Claude Code
https://claude.ai/code/session_012jEwwaT5JZ5x8qWvcnaMYC
Generated by Claude Code
Summary by CodeRabbit