Skip to content

Maps: render driving tiles and 3D buildings above host backgrounds - #435

Merged
guofoo merged 3 commits into
mainfrom
feat/maps-3d-buildings
Oct 21, 2026
Merged

guofoo merged 3 commits into
mainfrom
feat/maps-3d-buildings

Conversation

@guofoo

@guofoo guofoo commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Maps driving now uses the pre-baked world archive and renders visible 3D buildings. This also fixes the macOS symptom where only street names and the route appeared over a blank map, even after every visible tile had loaded.

Follows #395 (merged).

Changes

  • Both driving maps use https://makepad.nl/maps/world-20260926.mkmap, matching the browse map. Only the 3D view enables buildings_3d.
  • Both driving views use a CachedView with its own depth buffer. Tilted geometry previously failed the depth test against the enclosing host background; labels and route used ordinary UI ordering and remained visible. The isolated map texture composites below the navigation controls while preserving depth testing between buildings and terrain.
  • A reviewed Makepad overlay adds the opt-in texture_depth property, including cache invalidation when the property changes. Other cached views retain their default behavior. The overlay hash and resulting runtime tree are locked.
  • Remove the unused maps.mail.ru host; retain Overpass mirrors for place details. Update English and Chinese app documentation.

Latest validation on b188ddd1 (2026-10-21)

Merged main 45edea31 into this branch and resolved runtime-patches.lock.json by retaining both main's Apple UI font overlay and the Maps depth-buffer overlay. Reapplied every locked patch to a fresh temporary index; the independently generated tree matches the applied runtime (e756018052209a8159ae5ba6d3a66dba8e04d4c0).

  • Shell suite: 1,326 passed, 0 failed, with isolated data, hidden windows and macOS sandbox/socket access. Optional real-kernel paths remain unexercised.
  • Release build, desktop checks with/without mobile-apps, Home with mobile-apps, both packaging dependency-graph checks, setup/Cargo validation and generated native-app checks: passed. Existing dependency warnings remain.
  • Repeated native macOS Metal checks with both runtime overlays: terrain, roads and 3D buildings render; 2D/3D switching, pan redraws, resize and ending navigation passed. Native logs contain no hard runtime errors. Test instances closed afterward.
  • Cold-cache loading exceeded 15 seconds in the first run; geometry appeared after tile downloads completed. The rendering check now waits for loaded geometry with a bounded deadline, separately from the timed loading captures. The subsequent cached run passed all geometry checks. This change does not guarantee immediate first-load map fill.
  • Only the lock file needed manual conflict resolution; Maps source and bilingual docs merged automatically. Phone rendering of this head remains unverified.

Earlier validation on b5398d1e (2026-10-21)

  • Native macOS Metal release build: reproduced labels-only rendering on the previous head with all 36 visible tiles Ready. The fixed build shows roads, terrain and raised building walls/roofs, with route and navigation panels visible. Warm-cache RGB coverage in the same map region increased from 1,527 to over 141,000 terrain pixels; the regression threshold is 10,000.
  • Native input: 2D/3D switching, panning, window resize (990×603 to 1090×663 map area), and End back to the browse map all passed. Captures retain geometry after cache redraws; no runtime hard errors. Test instances used isolated app data and closed afterward.
  • cargo build --locked --release -p octosense --no-default-features --features app-hub,dev-mode: passed.
  • From phone/, cargo test --locked --features mobile-apps -p octosense-shell: 1,290 passed, including 42 Maps tests. Used isolated OctoSense/Makepad/Rinx data and hidden windows. The initial outer-sandbox run blocked five macOS sandbox/socket tests; the unrestricted rerun passed all tests. Optional real-kernel paths were not exercised.
  • Desktop checks, with and without mobile-apps, and Home with mobile-apps: passed. Both packaging dependency-graph checks passed.
  • python3 tools/setup.py --check --cargo, python3 tools/native_apps.py --check, and whitespace checks passed. Existing dependency warnings remain.
  • Independent source review of depth isolation, child redraw propagation, cache dependencies and attachment lifecycle: no findings.
  • Live archive range requests for San Jose, Shanghai and London returned valid HTTP 206 tile data with building geometry. The visual regression was a rendering issue rather than missing tile payloads.

Earlier device evidence

Pixel 7 Pro testing on ef2c6483, before the October 19 rebase and this depth-buffer fix, showed 3D buildings and map fill within about 20 seconds; first opening 2D took about 5 seconds. That evidence has not been repeated on this head. The depth-buffer fix is verified on macOS only; Android, iOS and OpenHarmony rendering on this head remain unverified.

The camera retains its existing orthographic tilt and navigation behavior.

…ings

Both drive maps read makepad's hosted world map (makepad.nl), as the
browse map does, instead of building tiles on the phone from Overpass.
The 3D drive map sets buildings_3d, so buildings get walls and roofs
when the camera tilts. maps.mail.ru, which only the drive tiles used,
leaves the manifest; the three Overpass mirrors stay for place details.
@guofoo
guofoo force-pushed the feat/maps-3d-buildings branch from ef2c648 to e5c948e Compare October 19, 2026 06:23
@guofoo guofoo changed the title Maps: draw the drive maps from the pre-baked world map, with 3D buildings Maps: render driving tiles and 3D buildings above host backgrounds Oct 21, 2026
@guofoo
guofoo merged commit 93d22b6 into main Oct 21, 2026
8 checks passed
ymote added a commit that referenced this pull request Oct 21, 2026
main gained a 38th stacked runtime patch (makepad-map-texture-depth,
#435). Finance's patch is now the 39th, after it; the overlay tree moves
e7560180 -> dafa5734 (only apps/finance changes; cross-checked with an
independent replay).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote added a commit that referenced this pull request Oct 21, 2026
Main's lock now stacks makepad-map-texture-depth.patch as the 38th patch
(#435). The Android buffer-stuffing patch follows it as the 39th, unchanged
(sha 7f87b527); it touches no file the map patch does. The makepad tree,
replayed over the whole stack with git apply --index, is fcd2a327.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant