MAPS ARE COOL / PRINTABLE TERRAIN AND CITY OBJECTS 2026-10-14 Run npm start and open: http://127.0.0.1:4173/experiments/printable-terrain/index.html The studio starts on the location-selection map without a generated model. Choose a custom area or a preset, then render it explicitly. Preview images, STL/3MF and model presentations become available after real location data loads. The interactive preview streams full source city tiles with measured terrain LOD. Custom locations first open a simple selection map in the main viewport. Move the orange square and choose Render selected area explicitly. Adjust area opens the map again; 3D preview retains the current model. Dashed bounds show the last rendered area. Moving the draft does not change the accepted export geography. Prepare nearby areas starts after visible work finishes and pauses on edits, camera interaction or export. Four sequential enlarged raw city contexts support small moves, with a tab-local 24-context / 64 MiB serialized-data / 5-minute cache. Selected-area offscreen meshes warm one at a time, up to four candidates. A new geographic crop rebuilds geometry against its own terrain and water datum. STL/3MF assemble every selected source window and the full measured reference DEM, independently of camera position, visible tiles or GPU residency. Complete-area photographs use the accepted full manufacturing model. Existing buildings and parts, walls, road/rail corridors, bridges, approaches, mapped trees and estimated woodland trees feed the solid kernel. Same-material components are joined; colour volumes are disjoint. The closed terrain rests on a 4 mm base. Surface colours form an embedded 0.6 mm layer. STL contains the union exterior; 3MF contains named material objects and source/quality metadata. Coordinates are millimetres, X east, Y north, Z up, with the base at Z=0. Both formats retain the selected terrain's geographic centre as their datum. Every feature is intersected with the selected terrain base, with closed export cut faces. Mapped wall footprints, courtyard holes and gates are constructed against the same accepted terrain roof. Assign the 3MF colours to physical filaments in your slicer. Prague selections default to IPR Praha 2023 bare-earth LiDAR and measured bridge solids. The genuine single-band Float32 1 m raster is acquired once and sampled by bounded local windows. It retains the supplied Bpv vertical reference. Prague bridges retain their native EPSG:5514/Bpv source geometry; both sources use S-JTSK to WGS84 operation 5 (declared 1 m horizontal accuracy). No second height datum is substituted. Native pixel spacing and loaded grid spacing are disclosed separately. Four fine 1 km windows retain about 0.98 m spacing across a 2 km Prague selection; sixteen retain that spacing across 4 km. The source is one virtual lattice, with canonical seams and one global height datum. Measured bridge arches, decks, piers and cutwaters use one shared solid in preview and manufacture, without terrain-derived deck lifting. Raw OSM bridge paths and elevated parapets represented by that solid retain source acceptance records. Ground walls, quays, buildings and dry islands such as Kampa remain independent. Speculative approach ramps that overlap measured bridge footprints are rejected with source/anchor IDs and measured owner records. Their original mapped streets, unmeasured decks and supports remain; guessed ramps cannot fill surveyed arches. Exact line/polygon crossing intervals retain narrow channels in inferred bridge fallbacks; exact connected paths can share a consistent deck profile. Official source preprocessing rejects unsupported selected bridges instead of silently substituting an invented arch layout. Source repair and licence metadata accompany exports. Source geometry can still need slicer supports at small scale. Prepare a fresh checkout with: node scripts/acquire-prague-terrain.mjs --prepare-python node scripts/prepare-ipr-bridges.mjs The raster download is ~2.05 GB; retained ZIP + raster require ~4.2 GB. Bounded selection loads reuse this cache. Both sources: datový podklad © IPR Praha, CC-BY-4.0. See docs/prague-measured-bridges.md for acquisition and validation. Mapterhorn regional Terrarium WebP remains the default for other cities and landscapes. Tilezen/Mapzen AWS remains selectable and stays the existing poster default. Native elevation bytes are decoded without resizing or colour conversion. Coverage, source zoom, spacing, lower-zoom coverage attempts, stale status and attribution are retained. See public/data/ATTRIBUTION-terrain.md and docs/terrain-quality.md. The fixed 96-segment manufacturing mesh has been replaced by measured refinement and conforming adaptive terrain. Each leaf checks every fine source vertex; shared exact-height hanging points prevent cracks. Resource ceilings are explicit and reject a whole build when insufficient. No features are silently omitted. Regular-grid sampled error, adaptive vertical bound and kernel surface-distance simplification are distinct metrics. Small mesh error does not prove survey accuracy or recover detail absent from the source raster. Separate raw OSM queries preserve buildings and parts, IDs, relations, holes, measured heights, walls and mapped ground cover. Complete raw buildings replace generalized vector-tile buildings. Gardens, grass, fields and orchards are smooth cover. Mapped trees retain source identities and positions; additional woodland trees are declared estimates. Failed tree inventories are reported explicitly. Landscape mode omits city features and retains mapped natural cover. The original Prague selection is preserved. Prague Castle & gardens adds a crop centered at 14.4000,50.0910, including western palaces outside the original crop. The cathedral source contains 134 parts, including recorded 99 m and 85 m towers. Identical duplicated courtyard rings are normalized with source provenance kept. Roof/min_height tags are retained; architectural roof reconstruction is pending. Building dimensions retain geographic scale; exaggeration affects terrain. Preview, inspection cameras, PNGs and presentations display accepted geometry. Heavy recipe preparation, Boolean builds and export serialization run in workers. The renderer batches four material objects. Navigation stays available while a build is pending. A failed build retains the previous complete accepted model. Display frames are excluded from manufacturing. Plastic/clay finish and simulated FDM layers are shading only and change no accepted vertices. The mockup renderer imports the live scene; old source snapshots are regenerated. Saved photographs and videos require re-rendering to show new detail. Software checks reject invalid coordinates, degenerate faces, open edges, inconsistent orientation, invalid vertex fans and nonpositive volume. STL also checks its actual Float32 geometric representation. Exact collinear topology repairs move no coordinates. Float32 edge contractions and separation of independent geometric edge contacts share a 0.0001 mm movement budget; repair counts and actual movement are retained in the manifest. Local edge and orientation checks do not independently test global intersections. City minimum-size policies remain provisional for a 0.4 mm nozzle. Bridge elevations, supports and widths can be estimates. Slicing, overhang supports, printer settings and physical fidelity require separate testing. STEP remains a CAD-backend stage. Run npm run test:terrain-objects or npm run test:terrain-exports. See docs/printable-terrain-implementation.md for the architecture and scaling limits; output/terrain-exports for reproducible real-area builds and evidence. The page does not read or write the poster editor's stored designs. Manifold 3.5.4 is Apache-2.0; Three.js is MIT. Data licences are separate. See THIRD_PARTY.md for notices. OSM/OpenMapTiles/OpenFreeMap and terrain source attribution accompanies geographic metadata. TrailPrint3D GPL source was studied and was not copied into this implementation. CUSTOM LOCATIONS / FINE SOURCE WINDOWS Choose Custom location, search for a place or enter latitude/longitude, and move the selection square. Render the selected area to replace the current model. Automatic source selection checks installed regional coverage; partial surveys are never silently mixed with a different height datum. Global Mapterhorn is the current fallback. Its original survey resolution/date/datum are unverified. Measured IPR bridge geometry is available in Prague. Custom selections also reuse vetted Brno/Bratislava sources where their geographic footprints apply. Global raw OSM bridge outlines and explicit supports improve uncovered locations with disclosed estimated heights. Regional roof/survey coverage remains limited. Fine sources use fixed 1025-node windows (1 km IPR / 2 km global) independently of camera LOD. Full city placement, flat connected water and export quality checks use every retained fine window. Overviews cannot substitute for export sources. Default export refinement is 2048 segments; failed source, feature, mesh or memory budgets reject the complete job. Whole-area acquisition permits 64 fine windows and export error measurement 70 million probes. Larger physical exports still need smaller selected areas; automatic printable split tiles are future work. See docs/terrain-quality.md and the genuine source audit under output/research/custom-locations/audit.json for resolution/coverage results. The local server can finalize complete exports with the pinned Manifold 3.5.4 64-bit Mesh64 worker. This keeps the finer source geometry when its final union exceeds the browser's 4 GiB native memory ceiling. Run npm run terrain:export:prepare once with 64-bit Python 3.11+, then restart the local server; this workspace is prepared. Packages stay in .cache/terrain-export/python. The worker receives only prepared closed geometry and returns the same material volumes to shared file validation. It has finite input/output, queue and time budgets. Browser-only installations retain the WASM path and its ceiling. 3MF XML uses bounded UTF-8 chunks to preserve full-detail coordinates without a whole-model string. BRATISLAVA BRIDGE LAYOUTS Most SNP and Stary most use OpenStreetMap whole deck/support footprints plus published engineering dimensions. Generic duplicate decks and fixed-spacing river piers are replaced within aligned mapped bridge ownership only. SNP has no river piers; Stary most has two. The UFO and two tower-foot building sources are represented in the SNP assembly instead of generic building extrusions. These are reconstructions: deck elevations/grade, stay attachment stations, truss panelization and printable section minima are estimated. No survey datum or positional accuracy is claimed. The reported SNP pylon inclination is recorded but unapplied because the unsurveyed plan base/top references conflict with mapped water. Complete bridge geometry is shared by preview and export. Mapped source data is ODbL-1.0, copyright OpenStreetMap contributors; full source versions, acquisition hashes, engineering URLs and limitations are retained. The open catalog covers 6 Danube crossings / 69 genuine OSM component records. Detailed structural profiles: SNP (10 records), Stary (6). Inventory only with estimated rendering: Apollo (4), Pristavny (11), Lanfranconi (37), Luzny (1). Component counts do not count physical piers. The city July 2026 mesh layer has 5 actual records; municipal maintenance recorded 143 assets in June 2025 and the 2026 budget targets 144. These are separate scopes, not whole-city mesh coverage. Source URLs, dates, record names and reuse limits are in the coverage ledger under output/research/bratislava-bridges. PRESET BRIDGE SOURCE COVERAGE Prague / Prague Castle: 672 IPR records, 656 accepted closed shapes, 16 unsupported. Native Bpv terrain keeps absolute source heights; global terrain keeps original arches, piers, XY and relative heights using estimated terminal bank registration. Default 2 km source counts are 11 / 13. The separate registered-shape source mode retains all accepted and unsupported identities; Prague 8 km retains 139 accepted shapes plus three explicit unsupported cases. Mapped supplemental catalog: 531 source objects / 332 outline groups in the audited metropolitan window. Counts do not assert all physical bridges. Brno: 580 municipal deck surfaces from March 2017, CC BY 4.0; default 2 km intersects 19 surfaces, 4 km intersects 98. Original top triangles and grade are retained; terrain registration and printable underside are estimates. Support coverage is partial: only two explicit mapped bridge-pier footprints are added. Boat landing piers are excluded. The vertical datum is unverified. The separate 4 km mapped inventory holds 295 objects / 47 whole outlines. High Tatras: 35 mapped bridge path records in the audited default 8 km area; full structural models are unavailable. Everest: zero mapped bridge records in the audited default 8 km summit snapshot, with no wider absence claim. All city presets share complete bridge source shapes between preview and export; source-supported bodies are independent of camera terrain LOD. Brno print correction: municipal top surfaces retain their original XY and relative heights. The provisional 0.8 mm underside can require a disclosed uniform lift to leave at least 0.15 mm above connected level water. Estimated print attachments are confined to dry terminal bank bands, separately counted from mapped piers. Invalid registrations or bank attachments remain explicit source records and retain mapped fallback. The source model is from March 2017 and support evidence remains partial. CUSTOM BRIDGE SOURCE SELECTION Custom selections use vetted geographic bridge adapters independently of preset names: compatible surveyed solids, complete registered source shapes, municipal deck surfaces, regional structural profiles, mapped outlines/supports and finally estimated transport paths. This chooses among accepted implemented sources; it does not search arbitrary websites or guarantee detailed municipal meshes around the globe. Stronger accepted physical source shapes retain priority without widening their footprints. Unresolved overlaps never add a weaker full deck. Global OSM snapshots retain complete source outlines, structural support records, transport ways, bridge groups, IDs, versions, licences and content fingerprints. Query completion is not a census of all physical bridges or their supports. Generic single-ring decks preserve XY; heights, grades, the 0.8 mm underside, water-clearance lifts and dry terminal print attachments are estimates. Actual polygon pier/abutment footprints are retained, including overhang beyond a deck. Boat landing piers are excluded. Unknown point/line sections and unsupported pylon structure remain evidence rather than invented members. Independently mapped buildings remain present. Generic holes, multipolygons, ambiguous axes, invalid registration and unsupported geometry retain explicit fallback reasons. One frozen source snapshot and one complete-selection bridge-path association plan feed preview tiles, neighboring cache tiles and export. Camera LOD changes neither source geometry nor these decisions; export does not fetch new bridge data. Additional raw paths require a complete bounded vector reference, currently at most 4.1 km wide and 64 zoom-14 tiles, the highest available vector source zoom. A reference coarsened below zoom 14 is rejected. If unavailable or over budget, existing transport paths are kept consistently in both preview and export. Source-shaped bridge bodies and unrelated city objects retain their normal eligibility. When Overpass is unavailable, a bounded public read-only OSM API fallback can serve selections up to 2.1 km wide and high. All approximately 1.05 km map cells and required bridge members must complete. Default limits include 24 requests, 32 MiB total responses and 120,000 downloaded objects. Mixed versions, incomplete geometry, failed responses and exceeded budgets reject the whole acquisition. This method cannot prove discovery of larger enclosing outlines and is always labelled partial geographic coverage, with enclosingOutlineDiscoveryVerified=false. Its completed returned geometry is distinct from complete spatial coverage. Partial source caches expire after five minutes so a later selection load can retry stronger Overpass coverage; a displayed model keeps its frozen snapshot. A stale accepted source after provider failure remains explicitly labelled. Live Tower Bridge API acquisition, actual London/Budapest source geometry, preview/export parity, source-priority audits and focused closed STL/3MF evidence are retained under output/research/custom-bridges. Focused diagnostic exports do not claim surveyed absolute heights or a new full-city physical fidelity audit. LONDON WHOLE WATER AND RAISED BUILDING PARTS The global terrain adapters share a whole-query Overpass mirror sequence and retain configured endpoint overrides. Failed/runtime-error responses never publish partial geometry. Complete water polygons, source holes, versions and out-of-selection vertices remain required before the physical crop. London source audits retain the full Thames relation and the Tower Bridge pier holes. Raised building parts honor mapped metric minimum heights and total heights from one local terrain/water reference. Their closed underside remains raised; grounded piers remain grounded. Missing heights and terrain registration are estimates, not surveyed absolute deck elevations. Layer order is not metres. The same intervals feed preview and manufacturing. An STL-only fallback preserves uncontractible native edges erased by Float32 rounding. Indices remain unchanged, incident native orientation and rounded axis-aligned planes are preserved, and all coordinate repairs together stay within 0.0001 mm. Repair records and their limits accompany manufacturing provenance. No independent global self-intersection proof is claimed for these bounded coordinate moves. Complete native materials retain Float64 coordinates. Minimum printable abutments sample only the actual source deck interval; their roofs never extrapolate steep short-span grades beyond its endpoints. Terrain embed and source endpoint heights remain authoritative. All 1020 terrain regression tests pass, including route, streamed preview and native export checks. Actual 1 km / 200 mm Tower Bridge custom-city files, full immutable sources and independent file audits are in output/research/london-tower-bridge. Complete source building/bridge/tree geometry is shared with the preview. All 64 wall records match; preview terrain follows its existing independent error bound. Exact file hashes, counts and written-coordinate audits accompany those files in verification-summary.json, including the four closed 3MF materials. Water audits distinguish exact horizontal roofs from hidden material boundaries and explicitly proven shoreline side closures; none may be accepted merely because it is below a water plane. Original source shapes and estimated height registration remain distinct from surveyed engineering models. Whole-roof comparisons prove actual solid riverbank occupancy at the canonical water height before excluding a hidden roof fragment. Exact rational cells and signed boundary winding preserve holes and resolve nearly coincident facets; closed topology and both actual file hashes are mandatory prerequisites. No buffer, height allowance or small-area exemption replaces this proof. Single-colour exteriors now union the same accepted material candidates without any further surface simplification. Whole-area testing showed that a separate whole-solid simplify could tilt water roofs even with a very small tolerance. The actual applied exterior simplification is zero and is recorded separately from the unchanged 0.001 mm maximum distance ceiling. Water finalization rejects the former independently simplified exterior policy. Output coordinate and watertightness checks remain mandatory for both serialization formats. Full-detail STL contact repair uses one complete coordinate-edge inventory and exact updates over every affected incident face, with independent whole-mesh recounts. Shared finalization allows 4,096 contact moves while retaining the combined 0.0001 mm displacement ceiling and fixed water-plane coordinates. Independent topology and water audits bind their results to exact file hashes. Canonical native water roofs that would collapse during Float32 conversion are opened before contraction. Their source IDs and changed axes survive later mapping, with exact water heights and the same total coordinate-error ceiling. A closed shoreline-cap regression checks the actual serialized STL roof. Navigation publishes camera, streaming and drawing once per animation frame. City/source inventories are cached until changed; camera-only statistics update at most every 150 ms. Workers prepare normals without changing mesh positions, indices or source identities. Recent GPU geometry uses a 256 MiB cache and placeholders a separate 8 MiB cache. Active geometry is retained even when its own allocation exceeds the target; inactive allocations are evicted first. Smooth while moving temporarily reduces pixel density and cosmetic texture; the original full-quality finish returns 180 ms after motion ends. Full quality while moving is also available. The full-detail export recipe remains unchanged. PNG capture renders the latest full-quality view before encoding its pixels. The optional WebGL2/WebGPU comparison uses one SHA-256-checked frozen model, identical camera poses and neutral materials on both backends. It excludes the production procedural finish, environment and shadows, confirms genuine WebGPU support, and records driver/sample diagnostics when exposed. Its short frame interval measurement includes browser scheduling and submission, not isolated GPU time. Hidden tabs invalidate a run. Test and browser evidence is retained in output/research/studio-performance. Production rendering remains WebGL2. Whole-water recovery and remembered custom areas (15 October 2026): saved custom crops now restore their width together with their centre/name, keeping the footprint control and map square consistent. Exact verified water extracts are discovered from a bounded set of source files and retain original timestamps, full rings and islands. Tower Bridge 1 km and 2 km extracts contain 18 and 36 complete water features. Fresh uncached water requests try every configured mirror before one delayed retry of a transient server failure; partial data, rate limits and invalid geometry are never admitted. Complete stale context remains available. The Aldgate East public_transport station relation is treated as a grouping rather than a building polygon, without relaxing real polygon validation or suppressing independently mapped buildings. The complete terrain suite passes 1,032 tests. Actual reopened 1 km Tower Bridge preview retains 960 building bodies; a post-fix full 2 km city acquisition remains unverified because upstream mirrors returned 500/502/504 or timed out. Evidence: output/research/water-recovery/verification-summary.json. Mockups restored independently of manufacturing export (15 October 2026): the presentation panel appears when the visible model is ready and prepares images when scrolled near. It loads every selected source tile and uses a separate render worker and detached geometry, retaining all city features and the shared water/bridge/terrain reference. Photographic terrain error is bounded by 0.10 mm and one pixel at a 1600-pixel overview. Model/frame/material changes invalidate images; camera-only motion does not. No STL/3MF download or manufacturing CSG is required. Full photographic finish remains enabled during adaptive navigation. Complete-area work is limited to 256 tiles, 15 million triangles and 768 MiB of mesh arrays; incomplete or over-budget snapshots are rejected. The complete terrain suite now passes 1,105 tests, including presentation preparation, ownership, asynchronous lifecycle, calibration and photographic asset checks. Substantial display frames (15 October 2026): the live 3D scene and six-view gallery share a closed bevelled surround. Border width and depth scale to six percent of the base size (12 mm each for a 200 mm map), preserving the exact map opening and adding no geometry to STL/3MF. White, black and no-frame states update existing presentation snapshots. Photographic masking is temporary and cannot leak into six-view visibility. Rendered overview cameras include the frame extent; close detail views retain their crop. The complete terrain suite passes 1,112 tests, including frame dimensions, closed outward geometry, frame switching and clone ownership. Wood display finishes (15 October 2026): Natural wood and Dark wood are available in the live 3D surround and six-view gallery. Procedural oak/walnut grain follows each mitred rail and stays independent of map layers, clay and navigation quality. All four photographic settings now offer both woods alongside white and black. Dark walnut photo plates were prepared with built-in image_gen from the supplied timber reference and calibrated individually; generation prompts and hashes are in /landing-assets/terrain-photos/dark-wood-provenance.json. The frame remains excluded from STL/3MF. The complete terrain suite passes 1,132 tests with no failures or skips. Browser and PNG evidence is recorded in output/research/wood-frames/verification-summary.json. Photographic perspective and seating (15 October 2026): each finish now registers the same top-rim plane, separately from the visible backing boundary. Angled camera height follows three measured outer vertical edges per finish. One decomposed camera controls image projection, shading and physical depth. A closed depth-writing photographic frame proxy hides low near edges and permits raised far relief to occlude the photographed wall/rim. The former flat opening clip and painted edge shadow are removed. Photo pixels remain where the model is behind the frame; hand masks are restored last. Source geometry, six-view seating and STL/3MF geometry are unchanged. Evidence and camera residuals: output/research/photo-perspective/verification-summary.json. Paper City print style (15 October 2026): choose Print style → Paper City · black & white. White buildings, walls, bridges, roads, railways and mapped ice sit on black ground, water and vegetation, with measured relief retained. Black polymer previews use a small neutral diffuse reflectance (#282828), matte roughness and broad neutral studio reflections to retain terrain and layer detail. Manufacturing still declares only black (#000000) and white (#FFFFFF) filament. 3MF declares exactly two base materials / filament IDs, black and white; independent semantic solids retain their source and precision metadata. Roads join white structures before native or browser-kernel finalization. STL remains the same single-colour union shape. Style changes rebuild preview tiles and invalidate export / presentation caches. Assign the two filaments in your slicer; physical print settings remain printer-specific. Render loading and cancellation (15 October 2026): explicit custom and preset renders now obscure the unfinished map/terrain behind a dimmed, blurred progress card from source acquisition through initial city/landscape compilation. Cancel render stops requests and workers; partial committed scenes are cleared and custom locations return to editable area selection. Errors keep retry/back actions visible. Focus and accessibility state are restored, and reduced-motion settings are respected. Late worker/source results cannot publish after disposal; generation checks reject stale progress. Camera-driven tile loading after the initial render retains its inline indicator. The terrain regression suite passes 1,158 checks. Retained layer visibility and Paper City policy (15 October 2026): Paper City turns Vegetation off and disables it in the controls. Shared feature policy also excludes trees from preview and print export if stale input settings enable them. Switching back restores the prior Terrain colours vegetation choice. Loaded independent categories now hide/reappear using retained buffers, without resetting the camera or terrain. Green city ground and level water recolour in place. Missing categories or changed tree-placement / bridge-ownership dependencies still require rebuilding for export consistency. Manufacturing and full-area presentations are invalidated and prepared lazily from current settings. All 1,173 terrain checks pass; browser evidence shows seven layer switches with one city build and no loading overlay. Measured preparation progress (15 October 2026): terrain exaggeration now defaults to 1.0x. The loading card separates source acquisition and model preparation. Current-selection source requests and completed worker subjobs advance the bar, including terrain levels within a single tile; global cache entries and elapsed time never masquerade as finished work. Elapsed time updates throughout. A remaining-time range learns from successful renders of this exact area and settings, while new contexts show "Estimating time remaining". Failed, cancelled and partial retry runs are excluded from the bounded browser-local history. Overruns are disclosed rather than counting down to a false zero. All 1,187 terrain checks pass. Complete city-source recovery (15 October 2026): after all ordinary POST mirrors return transient HTTP 500/502/503/504 errors, a selection without complete cached data may retry the same bounded query using GET on those mirrors. URL size, source response limits, raw geometry and enclosing-ground validation remain enforced. Existing complete sources take priority, and rate limits, denied requests, invalid geometry and cancellation do not trigger this recovery. Request method is retained in source provenance. Incomplete editing-API ground coverage is still rejected and uncached; its UI error now explains source availability. All 1,196 terrain checks pass. Physical City scale (15 October 2026): City choices now stop at 1:5,000, keeping a 5 m reference building at least 1 mm wide. Maximum area widths are 0.8/1/1.25/1.5/2.5 km for 160/200/250/300/500 mm bases. The new 500 x 500 mm option exports a single complete model; a matching print bed is required and automatic bed tiling is not provided. Oversized restored or edited City crops are reduced with an explicit message and updated map square before loading; incompatible scenes/exports are cleared. Landscape retains larger areas without built features. This is a practical detail policy for the 0.4 mm FDM assumption, not a guarantee for every tiny building, wall or opening, and source footprints are not discarded or enlarged. Light/shadow bounds cover the full 500 mm model, including tall relief. Actual STL bytes in the manufacturing regression preserve 500 x 500 mm extent and 3MF uses millimetres. All 1,215 terrain checks pass. Feature-size reference: https://help.prusa3d.com/article/modeling-with-3d-printing-in-mind_164135 Prusa/Slic3r multipart placement (16 October 2026): 3MF contains one assembled mesh with named, independently closed material volumes rather than separately placed material objects. Each source vertex and triangle is stored once without a geometry move; Core triangle material properties preserve generic material intent. Native volume metadata assigns first-use physical filament slots and explicit escaped names. A threeMfLayout manifest ledger links exact triangle/vertex ranges to existing semantic part provenance without changing physical manufacturing values. Paper City black semantic solids share slot 1 and white structures use slot 2; standard terrain keeps four slots. Default PrusaSlicer 2.9.6 imports produce one object with multiple volumes and preserve elevated Z placement without CLI workarounds. Side-by-side, stacked and sloped production-writer coupons retain their placements and assignments; observed sloped round-trip noise is at most 0.00000057 mm, with zero mesh repair counters. No machine profile or physical print guarantee is embedded. Matching hardware/filaments and sliced-colour review remain required. Evidence: output/paper-city-print-fix/. Full Paper City precision and import verification (16 October 2026): the unchanged Tower Bridge 1 km / 200 mm / 1x relief source, with 960 building bodies and no vegetation, now passes complete STL and 3MF admission. Float32 repair includes positive-area reversed faces, complete horizontal/sloped thin strips, exact source-face provenance, independent contact endpoints and conservative additive error accounting within the original 0.0001 mm additional-repair allowance. Actual STL bytes retain 600,604 correctly oriented facets; the full material 3MF retains 1,099,738 triangles. Independent written-file and source-orientation checks pass. Actual PrusaSlicer 2.9.6 imports preserve every facet, part name and black-slot-1 / white-slot-2 assignment, with zero mesh repairs and maximum 0.000011416 mm material round-trip noise. All 1,243 terrain regressions pass, including real shoreline and sloped-strip fixtures. The separate PREVIEW_REFERENCE project supplies reference black/white swatches, with printer/purge layout still to be configured before printing. Earlier quoted hours used 15% infill, 0.15 mm layers and three perimeters; two-colour purge and tool changes were excluded. The exterior union resets ancestor face relations only after an exact coordinate and triangle comparison, preserving the original material meshes. All 1,231 complete canonical water roofs pass the final serialized STL/3MF agreement check. Hash-bound evidence: output/paper-city-print-fix/verification-summary.json and prusa-validation-summary.json. GPX routes (16 October 2026): import a local GPX 1.0/1.1 track or route; choose red or blue and printed width (default 1.2 mm); fit the area or retain the selected crop. Separate track segments remain separate. Measured terrain, canonical water and accepted bridge surfaces set route heights; GPX altitude is ignored. The raised ribbon adds 0.4 mm, with an embedded closed volume and dedicated 3MF filament assignment. Paper City gains the chosen route colour when enabled; STL retains the raised single-colour route. Preview, full-area mockups and export share the path; colour/off/on changes reuse retained geometry, while a changed path/width rebuilds it. Buildings or trees may obscure a path under them. City fitting uses Landscape when needed for a complete larger trail. Source files are read in browser memory (5 MiB / 100,000 points); malformed XML, DTDs and invalid coordinates are rejected. Actual PrusaSlicer route and regression evidence is under output/gpx-route-review/. Real public GPX test (16 October 2026): the freely downloadable Bruton Dovecot walk from Pinns UK (https://www.pinns.co.uk/somerset/bruton.html) measures 2.573 km and fits completely in a 1 km square printed at 200 x 200 mm with 1x terrain relief. Production-admitted City and Landscape STL/3MF pairs use the original GPX and identical complete real source acquisition at the original default material precision. Both actual formats import into PrusaSlicer 2.9.6 with zero repairs, retained facets and correct shared colour-part placement. Real-source STL fixtures cover bounded orientation prefixes, coherent contact closures and explicitly identified ancestry repair guides for rewritten zero-reference faces. Genuine native references, source features, canonical levels, crop/search constraints and the total 0.0001 mm additional STL repair bound remain enforced. All 1,310 terrain tests pass. City retains a tiny source-path/building overlap and passes additional section checks. Landscape provides an unobstructed sampled route but has a separate unresolved non-route ground-section diagnostic, recorded in the review README. Actual exported-mesh previews, files, hashes, written-file checks and import evidence are under output/public-gpx-test/. GPX trail thickness (17 October 2026): Your route now offers printed trail width from 0.6 to 3.0 mm and independent raised trail height from 0.2 to 2.0 mm. Defaults remain 1.2 mm wide and 0.4 mm above the supporting map surface. Width and height affect the actual shared preview/manufacturing geometry, including optional endpoint markers and accepted terrain, water and bridge supports. Height changes invalidate retained preview, full-area mockup and export geometry; colour changes retain their existing appearance-only behavior. Original GPX coordinates and measured terrain are unchanged. Focused tests verify physical route dimensions, rebuilt stream geometry and written 3MF/STL coordinates. The local route form was also checked with the Rakytovske plieska GPX. GPX tree clearance (17 October 2026): Active routes automatically omit whole mapped and estimated trees whose full crown envelopes overlap the actual printed ribbon or optional endpoint badges, with an extra 0.2 mm printed gap and a numerical Float32 guard. Both full manufacturing recipes and streamed previews use selection-wide footprints, including neighboring-tile overhangs. Remaining tree positions, dimensions and bodies are retained; source woodland cover, terrain, water and GPX coordinates are unchanged. Route width and visibility changes rebuild dependent vegetation and invalidate prepared exports/mockups; hiding or removing the route restores its omitted trees. Route colour alone can reuse geometry. Omission counts and reasons are retained in manufacturing statistics and feature provenance. This resolves tree/route intersections in the model; it does not simulate physical printer operation. Existing saved model exports and galleries are not rewritten. Marine water coverage (17 October 2026): Studio selections now acquire complete native vector water tiles for the whole selected area alongside the unchanged raw inland-water source. Ocean polygons include sea and fjords, retaining their mapped coastline and island holes; acquisition is independent of camera position. Tile coverage, source bytes, native IDs, freshness and geometry fingerprints are validated before a combined source is admitted. The separate marine contract explicitly records generalized, quantized vector geometry rather than claiming raw surveyed coastline. Preview and manufacturing use the same clipped water surface plan. Marine-connected bodies use an estimated cartographic 0 m sea level, not DEM shoreline samples or bathymetry; disconnected inland lakes retain their existing levels. Invalid or incomplete marine sources fail explicitly. Existing saved exports and galleries are preserved. Bracket keys [ and ] rotate the perspective by exact 90 degree steps. Reinebringen browser comparison and source evidence are under output/norway-route-preview/. Closed dual-tagged water rings (17 October 2026): dedicated whole-area water acquisition and complete-city extraction now retain a genuine closed water way as a Polygon even when its wall tag causes the general city converter to represent it as a LineString. Every original ring coordinate, tag and source identity is retained; the city's separate wall representation stays unchanged. Open paths, non-area tags and degenerate rings continue to reject. This fixes the dual-tagged basin near the Eiffel Tower without changing the Seine or its island holes. Sixty focused source/client regressions pass; actual source evidence is under output/pin-preview-research/. 2026-10-17 - Paris road Boolean recovery: exact coordinates already on the declared 0.0001 mm lattice now use safe integer indices in the conditioned numeric frame. Off-grid arithmetic, widths, grouping, source coordinates and precision budgets are unchanged. Full original Paris verification retains 936/936 road/path lines, 18 components and 622 holes, with zero numeric roundtrip error and a 0.0129773448 mm contour bound below the existing 0.02 mm budget. Focused road regressions: 35/35. Evidence: output/pin-preview-research/paris-road-verification.json. 2026-10-17 - Eiffel Tower source-guided landmark: the genuine Q243 / 3dmr=4 parent and all twenty mapped structural parts must be present, visible and fully inside the crop before replacement. Four mapped pier footprints, platform holes and 57.63/115.73/276.13/300/330 m levels register closed structural members to the canonical terrain. Leg interpolation, arches, upper taper, lattice spacing, 0.4 mm minimum beam sections and the observation dome are estimated. Ordinary ticket/company buildings remain original generic buildings. Every member is closed and kept separate for native union; physical print validation remains pending. Browser and native recipes share exact member triangles. Raw CC0 3DMR revision3 was audited as a visual reference but not used as a printable solid because its tower relies on alpha-cutout planes. Source audit: output/pin-preview-research/eiffel-source; fixture: fixtures/eiffel-tower-osm-parts.json. Focused landmark/building/pin/preview regressions: 103/103 passed. 2026-10-17 - Polygon containment-cycle recovery: a captured vendor RangeError with repeated isExteriorRing frames now enters the existing bounded affine Boolean retry. All source operands and boundary/area/work budgets are unchanged; generic stack overflows still propagate. The genuine Paris heart support fixture at lat48.85664903557324, lon2.295342067447238, heart20mm/yaw290 reproduces the original recursion. The browser completed the same crop and anchor after recovery (1698 building/member bodies, 3178 mapped trees, all layers, natural1.0x terrain). Fixture: fixtures/paris-heart-support-boolean.json. Native PNGs and exact settings: output/pin-studio-previews/paris-eiffel-heart. 2026-10-17 - Strengthened Eiffel profile: Landmark geometry now offers Detailed (the unchanged default) and Strengthened / 0.4 mm nozzle. Both streamed preview and whole-area manufacturing use the same profile. The strengthened tower keeps mapped position, pier anchors and 330 m source height, and uses 60 closed members, solid tapered lower legs, 1.2 mm minimum free beams and mast, 1.4 mm upper rails, 1.2 mm platforms and positive-overlap joints. Nine ancillary platform openings are explicitly filled; the major first-floor courtyard remains. Footprint enlargements, manufacturing estimates and member identities are recorded in provenance. Sixteen focused geometry/integration checks pass, including exact browser/export triangle parity for both profiles. Software validation on a 41.02 mm actual-terrain specimen at the original 200 mm / 1 km map scale confirms every member connects by positive volume and remains in 3591 actual model-extrusion cross-sections. PrusaSlicer 2.9.6 with a reference MK4S / PLA / 0.4 mm nozzle / 0.15 mm layers completes with automatic snug supports and no warnings; no-support slicing warns of floating bridge anchors. Supports are required. This is software validation of the tower specimen, not a physical print or a universal full-city print guarantee. Review: output/eiffel-print-validation/index.html. Separate native preview: output/pin-studio-previews/paris-eiffel-heart-fdm/index.html. Previous detailed previews are preserved. 2026-10-17 - Landmark profile lifecycle: pending profile changes in area-selection view invalidate presentation and both export caches. PNG/STL/3MF controls and download handlers reject a mismatch with the rendered profile. Returning to 3D rebuilds the selected profile before annotation reconciliation; asynchronous presentation preparation also rejects stale profiles. Actual browser checks confirm 1698 Detailed bodies become 674 Strengthened bodies, all three downloads remain disabled while pending, and stale presentation stays cleared. Evidence: output/eiffel-print-validation/studio-profile-lifecycle.json. 2026-10-17 - Strengthened Eiffel full-map validation: native 200 mm Paris / red-heart 3MF and STL were exported with terrain exaggeration 1.0. All five serialized colour meshes and their material union pass closed-edge, winding, nondegenerate-face and Manifold checks. A monochrome reference copy changes only extruder-slot metadata; core 3MF geometry stays byte-identical. The full supported MK4S / 0.4 mm PLA / 0.15 mm slice completes without warnings, retaining all 60 tower members in 3591 model-extrusion section checks across 501 layers to Z75.2 mm. Strict whole-city single-body connectivity fails for both native formats: their Boolean assemblies contain microscopic detached regions (largest 3MF region 0.0000707680 mm3; largest STL region 0.0001129803 mm3). These are retained and disclosed, not silently deleted. The strengthened tower passes its scoped software checks; the complete city is not certified as a strictly connected print-ready solid. Physical printing, support removal and multi-colour production remain untested. Final source hashes, exact shell counts and slice evidence: output/eiffel-print-validation/full-map-v1/validation-summary.json.