facett-map3d — crate card
Reverse-engineered (from source — verify, don't trust the name)
- One-line pitch: A 3D map viewer that extrudes 2D OSM vector ways (facett-map
Ways) into lit prisms/ribbons on a terrain plane, with an orbiting camera. - Does:
Map3Dturns building/area footprints into extruded prisms, line ways into ground ribbons, sits them on terrain, and orbits a camera. Two render paths share oneFacet::ui: a default always-available CPU painter (project → back-face cull → depth-sort → normal·light) and an optionalwgpuGPU fast path (reuses facett-graph3d's depth-tested pipeline for the rabbit-logo overlay). Rich options: SSAO, soft shadows, planar reflection/water, sky, LOD tiers, altitude, sun/sky model. Synthetic fixture extrudes the znippy rabbit silhouette (never a placeholder cube). - Key deps:
facett-core(Facet, rabbit fixture, theme),facett-map(OSMWay),facett-graph3d(GPU logo pipeline). Optional GPU:egui-wgpu/wgpu29/bytemuck. Dev:egui_kittest(wgpu render-proof),image. - Shape: lib, large (~7.3k lines). Modules: lib.rs (2069), gpu.rs (1994), extrude.rs (1542), camera.rs (1042), sky/lod + several .wgsl shaders (map3d/shadow/ssao/bloom/fxaa/water/sky).
- Observed role in the workspace: The embeddable 3D-map component; facett-map3d-flight builds its heavy flight-sim layer on top (reusing this Mesh3 + wgpu pipeline). Has a headless offscreen
selftestexample emitting a functional-status row.
Fill in (one line each — only the human knows these)
- Primary consumer(s):
- Why it exists (vs the obvious alternative):
- Hard constraint (airgap / no-C-deps / no-FFI / pure-Rust / etc.):
- Release cadence & independence (rides a parent? own repo someday?):
- Status (production / prototype / experimental / stubbed):
- Must-NOT-change invariant:
- Biggest known gap or TODO:
- Anything a newcomer would get wrong about it: