Terrain Viewer

Changelog

What shipped, and when — the TL;DR of every release

Full commit-level detail lives in CHANGELOG.md on GitHub — this page is just the user-facing TL;DR of each release, the same list shown in the app's own Settings → What's New.

2026-09-25MapLibre 6, and Compare and Blend Everywhere

  • MapLibre GL JS 6. The renderer under everything moves from 5.24 to 6.11: a rebuilt terrain render‑to‑texture cache, less DEM allocation, one projection upload per frame, mipmapped draping at high pitch — most modes simply feel faster. The port took namespace imports, a worker URL for Vite, an accessor for the transform that Map no longer exposes, and three real fixes: sources with an undefined minzoom were rejected and every derived layer vanished; a shared link could land at a different zoom and centre than it asked for, one load in three, because the padding ease re‑solved the camera from a zero elevation whenever DEM tiles beat it; and the live Matcap and Phong layers showed MapLibre's terrain skirts as white dashes along every tile seam on the globe — they now draw their own skirts, the same construction MapLibre uses. MapLibre 6.10 also fixed the half-pixel offset between 3D terrain and hillshade built from the same DEM (#8420): both now sample cells at their centres, so relief and mesh line up. Verified against a 5.24 baseline on 82 headless scenarios. What changed and why is on the tech stack, camera sync and lighting effects pages.
  • Compare and Blend in terrain mode too. Split style, the grid picker up to 4×2, blend mode and opacity, Match Colors, border colours and Capture Date, below Visualization Modes; General Settings loses its lone Split Mode toggle. A header button cycles Off, Overlay and Side without unfolding the section, and the Terrain and Basemap rows show one pill per view for whatever grid is picked.
  • Every mode on every source. One protocol registry now dispatches every custom tile scheme to every consumer, so each viz mode, the mound detector, contours, the GeoTIFF export and the 2D elevation picker work on every terrain source type: VRT mosaics, ArcGIS LERC, Cesium quantized mesh, WMS float32, TileJSON and differences (nDSMs). How it works is on the new custom protocols page.
  • Undo and redo. Ctrl+Z and Ctrl+Shift+Z walk every setting back and forth, and the camera too when it had been still for a minute.
  • Export what you see, layer by layer. The GeoTIFF button gets a menu. Visible layers… opens a tree of everything on the map, visible and not, each branch or group ticked or unticked at once: contour lines and mound candidates as GeoJSON; the DEM; every Terrain Analysis and Relief Visualization mode as its raw values (slope and aspect in degrees, LRM in metres...) in float32; hillshade, hypso, lighting, the basemap and the coloured modes as rendered RGBA; and the whole composite. Exports come out at exactly the view, at the screen's own size or a custom longest edge; values can be raw, coloured through the mode's ramp, or both; images can be GeoTIFF, PNG or JPEG with world files. A Screen resolution reads the tiles already cached and takes seconds, the DEM included, which was slow because it always fetched up to the 4096 px Max Resolution. The DEM GeoTIFF itself was broken until now: the library writing it stored one byte per value, and GDAL could not open the file.
  • Libraries. react-map-gl 8.1.3 for MapLibre 6; the COG reader 0.8 to 0.10, with GDAL-style transparency and alpha bands, fast reads of LERC- and WebP-compressed COGs, a NaN nodata fix and batched range requests; maplibre-contour 0.1.1, which fixes contour tiles in MapLibre Native (a protobuf tag error) and adds a default export.
  • Camera animation that keeps its word. A pose now records the camera target's elevation and playback interpolates it with the rest — centre, zoom, pitch, bearing, roll, field of view — so a flight from a summit pose to a valley pose no longer bobs over every ridge or holds the start height. Poses captured before this keep the old behaviour until re‑set.

2026-09-24Data Layers as Pictures, and Shortcuts on Section Headers

  • A Data layers picker: every visualization mode as a card with its picture. Google Earth’s layer panel, for terrain — hillshade, hypsometric tint, contours, basemap imagery, slope, aspect, curvature, TPI, local relief, sky‑view factor, openness, matcap, phong and hard shadows — each a thumbnail of the same Matterhorn view with only the rendering changed, one click to turn it on or off. A Tools row opens Draw, Elevation picker, Sun shadow and Animation in the sidebar. Reached from the panel title bar or next to the Visualization Modes pin. The Data layers picker: every visualization mode as a card of the same Matterhorn view
  • Quick buttons on the foldable section headers. Home on General Settings, the Gallery on Bookmarks, Snapshot on Download and Snapshot, the Data layers picker on Visualization Modes — whose fold, expand and pin are now one three‑state control instead of a chevron beside a pin.

2026-09-23VRT Mosaics in the Browser, Twenty New Sources, and Where 3D Exists

  • GDAL VRT mosaics now stream in the browser, no titiler needed. A .vrt is an XML index over many COGs, and the browser can already Range-read COGs — what was missing was GDAL's bookkeeping. IGN's RGE ALTI 1 m over France is 93 COGs behind a 40 KB index; a tile over Montparnasse takes 0.43 s. Any CRS, not just the easy two.
  • Twenty new elevation sources, every endpoint verified live before it was added: Hawaii's 1 m and Maui's 0.3 m LiDAR as LERC tiles, New Brunswick and Alaska IfSAR (DTM and DSM, so 3DEP finally has a surface-model counterpart), South Australia's 0.5 m River Murray LiDAR, Hong Kong, New York, Dar es Salaam's 0.5 m, JAXA's global AW3D30, and the Aguada Fenix Maya survey's canopy surface. Seven of them are ready-made nDSMs that pull their own operands in.
  • A slow terrain tile no longer freezes the basemap. MapLibre queues every raster load through one budget of 16, and a custom protocol holds its slot for the whole handler — so sixteen VRT or sky-view-factor tiles left the map grey.
  • Four coverage overlays for 3D and LiDAR: Google photorealistic 3D, Bing Maps 3D, Esri Integrated Mesh and FLAI open LiDAR. None of the four publishes a footprint you can download, so each is read from the provider’s own data — Google’s from the coverage layer behind its docs page, decoded from Maps vector tiles; Bing’s from its 3D Tiles subtree availability bitstream; Esri’s from ArcGIS Online’s search API, kept to open services of 5 km² or more; FLAI’s from every survey’s COPC octree over range requests. Click a footprint to open that provider’s own 3D view there. How each is built is on the coverage overlays page. The four 3D and LiDAR coverage overlays over Europe: Bing, Google, Esri Integrated Mesh and FLAI

2026-09-20Esri & Cesium Global Terrain, Faster Tiles

  • Esri World Elevation is now a built-in terrain source — land and seafloor as one continuous surface, so a hypsometric ramp reads across a coastline instead of stopping at it. The second built-in with real bathymetry. Keyless, orthometric, and streamed as LERC (Esri's float raster codec) decoded in the browser. A land-only twin, with the ocean flat at 0 m, is in the Library.
  • Cesium World Terrain joins the Library through a new quantized-mesh reader: the triangle mesh is rasterised per tile into an ordinary elevation source, so 3D terrain and every visualization mode treat it like any other DEM. Needs a Cesium ion token (Settings → API Keys); its heights are ellipsoidal, about +48 m in the Alps.
  • Tiles render around 10× faster. Every custom protocol now hands MapLibre an ImageBitmap instead of a PNG it immediately decoded again — 99 ms median down to 0.1 ms on the encode alone. This is not specific to the new sources: hillshade, LRM, SVF, the difference source and the WMS elevation services all got it.

2026-09-16Catalog Search, Coverage Overlays & OSM Vector

  • Coverage overlays (Source Info): see where sources have data before loading them — Mapterhorn's own per-country coverage tiles with each source's resolution on hover, the whole terrain and basemap libraries, OSM Editor Layer Index footprints, your own sources. Tree picker, drawn on every view; hover lists what covers a point, click links each dataset and can select it for view A.

    Coverage overlays over Europe with the hover list

  • STAC search (beta, Settings → Beta) in both Add dialogs: OpenAerialMap, Earth Search, eoAPI, NASA VEDA, swisstopo, LINZ, OpenTopography, polar DEMs, Maxar / Vantor open-data events, Planet disaster releases, a federated collection search, or any catalog URL. Date range, current view, cloud cover, Web Mercator first, non-Mercator assets pinned to titiler, terrain limited to single-band elevation rasters, add as basemap or overlay.

    STAC search: Vantor open-data scenes over the 2026 Nepal flooding

  • Basemap catalog search: NextGIS QMS and the OSM Editor Layer Index (bundled, bumped weekly), with licence and attribution carried into Source Info and permalinks into their browsers.

  • OpenStreetMap is now OpenFreeMap's Liberty vector style instead of raster tiles, with a 3D buildings toggle, following the basemap visibility and opacity controls.

    OSM 3D buildings from OpenFreeMap Liberty over a Vantor post-event overlay

  • Source Info card for custom terrain sources; COG viewer links (source.coop, GeoLibre); "None" basemap, always offered; per-source titiler pin for non-Mercator COGs on basemaps too.

2026-09-14National Terrain Library & Historical Export

  • Library replaces Sample: a curated set of high-resolution terrain and basemap sources from national mapping agencies, global products and sub-national surveys — Norway, USGS 3DEP, Netherlands AHN, England, Finland, Estonia, Tirol, Czechia, Italy, Japan, Mexico, Spain, Uruguay, Canada, Faroe, France overseas, ArcticDEM / REMA, GEDTM30, EMODnet — each verified against a known summit, graded against Mapterhorn by API-served and best bulk-download grid, filterable, picked one at a time or all at once. Selecting one pins the map to the country.

    The terrain dataset library

  • Docs page listing every national dataset with a coverage choropleth, resolution, endpoint and licence.

  • Decoding fixes that made these services usable: no-data floors and fills (sentinels, NaN, WMS reprojection fringes), sparse ArcGIS TIFFs, WCS 2.0, custom RGB encodings, COGs pinned to titiler when not in Web Mercator.

  • Export Multi (Historical): calendar pickers synced to the timeline, every current basemap as one picker, capture counts per source, Wayback dedup, zoom step-down retries, clean provider-named files, Google Earth frames fetched in-process.

  • Drawing layers: per-layer visibility, export scopes (flat, per layer, selected), drawings mirrored on every view.

  • Whole-world default view, self-healing synced views, zoom-dependent timeline marks, foldable Terrain Analysis sub-groups, MapTiler Satellite basemap.

2026-08-21Live Lighting Rework: Native-Sharpness Phong & Matcap

  • Live Phong/Matcap rework (renderers now labeled Live vs Legacy): per-fragment normals straight from the float DEM on MapLibre's own 128×128 drape mesh — native-hillshade sharpness. Phong composites true albedo over the basemap/hypso stack (hidden surfaces handled, specular-only no longer dims the map) with a camera-headlamp light anchor; Matcap gets correct camera anchoring at every bearing and per-fragment depth (no more summits flickering behind neighboring tiles). Also fixed: tile-seam streaks, high-pitch near-camera tile dropouts, endless tile refetch on hi-dpi. New featured bookmarks (Amazon Rivers, Willamette River) with fresh thumbnails.
  • Shareable BYOD links — a URL referencing a sample-library source id (e.g. ?sourceB=custom-ign-lidarhd-dtm-wms-raw) now auto-adds it to a fresh visitor's Bring-Your-Own-Data list instead of showing an empty pane, and the new ?addSources=id1,id2 param prepopulates several terrain/basemap samples at once without selecting any of them.

2026-08-20Historical Fixes, Matcap Rework, Docs Restructure

  • Bug fixes — historical-satellite whole-earth default camera now applies; terrain mode gates the timeline to the Raster Basemap viz mode being active; matcap's screen-locked bright blob replaced by a proper view-space lookup; endless lighting-tile refetch on hi-dpi viewports fixed (dpr-aware tile selection).
  • Match Colors re-applies instantly in RGB; Bookmarks gets list/grid toggles (sidebar + gallery modal); the guided tour now wraps up with Keyboard Shortcuts and docs links.
  • Docs — new Export & Share, Projects, Open In, Streaming & Storage Settings, and River-REM pages; nav regrouped (Features vs Advanced Features; Dev gets Custom Protocols + Historical groups).

2026-08-19Docs Site Expansion and Open-In Additions

  • Docs site expansion — dozens of new or re-shot real screenshots across Visualization Modes, the full guided-tour Walkthrough, Split & Compare, and more; new user-facing pages (Walkthrough, Tools, Frescoes & Artifact Scans) in the Features guide; new developer documentation (Lighting Effects, Terrain Analysis Pipeline, ESRI Wayback).
  • New Open In destinations (Iconem River-REM, Google Maps 3D, Google Earth Historical/3D), a ?startTour=true deep link to launch the guided tour directly, plus assorted fixes (lightbox caption links, changelog date-key collisions, KaTeX formula layout).

2026-08-16Terrain Camera Fixes, Terrain Sources Docs, and Favicon Polish

  • Camera sync fixes — DEM tiles arriving after terrain turns on, pane resizes, and the padding easeTo all leave the elevation reference stale. Re-anchored on idle via recalculateZoomAndCenter (holds camera position, solves for the new center/zoom — nothing moves on screen), guarded by a 1 m epsilon so padding changes and mode switches don't nudge the focus point. The view you last touched is authoritative; the others are copied wholesale from it.
  • Elevation is now a synced camera parameter — a terrain camera has a sixth parameter beyond center/zoom/bearing/pitch/roll (the elevation of the point it looks at), and it wasn't being forwarded in split/overlay. MapLibre freezes it for the whole drag on the moved view while re-resolving it live on every jumpTo to the others, so the panes drifted vertically apart for the duration of a drag and snapped back on release. The moved view's elevation is now forwarded explicitly.
  • Fixed several camera-reset edge cases: MapLibre's easeTo leaves _elevationFreeze stuck on unless freezeElevation is passed (suppressing per-frame reclamp and leaving panes in asymmetric internal state after whichever one you'd last dragged); ground-clamping bookkeeping was keyed by view id which outlives the map instance (a remounted pane stayed permanently clamped); programmatic camera commands now stand down while a pointer is held (previously jumpTo/easeTo's Map#stop() silently ate a press-and-hold gesture).
  • Panel open/close now animated (padding, pane rects, gutter, borders ease over 200ms); sidebar/timeline avoidance padding extended to lone view, single-row/column grids, and Overlay panes; Map B defaults to AWS terrain (no API key); new Terrain Sources docs page; favicon shape reactive to live app mode.

2026-08-16Guided Product Tour

  • New guided product tour (Compass icon in Settings, or auto-starts on first visit): a branching walkthrough covering the shared basics, then either the Terrain visualization tools or Historical Satellite imagery mode, chosen at a fork partway through.
  • Each branch ends with a Tools step listing that mode's map-based utilities (Drawing, Elevation Picker, Sun/Shadow Calculator beta, Animation, Source Info — the historical branch's subset excludes the terrain-only ones).
  • Added a documentation site, live-linked from the app general settings.
  • Featured bookmarks: a curated "Featured" strip of starter viewpoints (different terrain shapes, visualization combinations, and a historical-imagery example) now sits above your own saved bookmark list.
  • Mound detector (Tells): new Frozen/Live toggle — pin the currently-detected candidates in place so panning/zooming doesn't keep re-querying and recomputing them.
  • Visiting historical-satellite.iconem.com now lands you straight in Historical Imagery mode, with its own clock-shaped favicon (matching the timeline toggle's own icon) instead of the terrain mountain.
  • In split/grid compare mode, clicking a basemap's name (not just its per-view toggle) now sets that source on every active view at once.

2026-08-11Histogram Color Matching in Compare and Blend

  • Match Colors via Histogram Matching: automatically recolors every other view onto View A's color histogram, so two different imagery sources (or two dates of the same source) no longer look noticeably darker/bluer/warmer next to each other when compared or blended.
  • Five color spaces to choose from: RGB is instant (a live CSS filter); HSL/HSV/LAB/LCH are slower but can match more subtle color differences. Ported from Iconem/historical-satellite's standalone histogram-matching demo.

2026-08-10N-Map Grid, Overlay blend, and export historical imagery

  • N-Map Grid mode: in addition to 2x1, can now also do 3x1, 4x1, or 2 rows, 2x2 up to 4x2. Gains a Grid shape, now supporting up to 8 synced map views, not just a 2-way split.

    Comparing basemap sources side-by-side in grid mode

  • Compare and Blend's Split Mode: Off/Side/Overlay, where gutter can be horizontally dragged for clip ratio, or the pill vertical position controls map view B transparency

  • Blend Mode for overlaid Map View: Multiply, Difference, Soft-Light etc. Dropdown now exposes every CSS blend mode, not just a curated handful.

  • Export historical GeoTIFFs across a date range, with an option to generate ready-to-run gdal_translate scripts.

  • Optional colored map borders and a capture-date pill make it easy to tell which pane is which.

2026-08-07Historical Satellite Imagery Timeline, Terrain vs Historical Mode Picker

  • New "Historical Imagery" mode: scrub a real per-tile capture-date timeline bottom panel, across ESRI Wayback, Google Earth Historical, Landsat/Sentinel (HLS), Planet, and Bing.

    Scrubbing the historical timeline across capture dates

  • Mode Picker: Terrain vs Historical switches the whole sidebar between Terrain Viewer and a simplified Historical Imagery layout.

  • Every historical basemap source feeds real attribution, including dynamically-resolved provider/date info for Wayback, Google Earth Historical, and Bing.

  • The light-direction XY pad itself gained a full bidirectional datetime binding: drag it and it back-solves the closest matching day-of-year/time-of-day (and the sliders still drive it forward as before), hatching every position the sun can't physically reach at the current latitude (a real day/night-boundary constraint).

  • Sun Shadow Calculator: new Reverse mode: click a shadow to back-solve the light direction and time of day, knowing building height. Also see the standalone sun-position estimator tool.

  • TerraDraw export split mode: button with a "split by layer" option.
  • Colorramp editor: A live session-only for quick, non-persisted ramp-stop edits.
  • Bookmarks gallery now flattens into one continuous grid by default.

2026-07-30COG GSD surfacing & Foldable Bookmarks Tree

  • COG sources now auto-show their inferred native resolution and ground-sample distance.
  • Bookmarks: drag-and-drop reordering, collapsible project folders, fold/expand-all, and an edit mode to keep the everyday view uncluttered.

2026-07-28Whole-Project Export, Hard Shadows & Sun Shadow Calculator

  • Whole-project import/export in one file (terrain/basemap sources, bookmarks, drawings, settings, with zip to embed vector drawings/local COGs as an option).
  • Hard Shadows: a new visualization mode casting real hard shadows from the shared light direction, independent of the Sun Shadow Calculator tool.
  • Sun Shadow Calculator: pick a point + an object's height, get its shadow at the current sun position.
  • SVF/Openness gain faster precision, plus a new Principal Components (PCA) relief-mode family (Blobness, Eigenvalue Ratio, Dominant Orientation, Shape Index).
  • Terrain Analysis's Settings description split into 3 subheadings (Surface derivatives, Neighborhood statistics, Principal Components) to match.

2026-07-28Bookmarks & Feature Iterator

  • View bookmarks: save/restore full viewport + viz state, sidebar list + gallery.
  • Feature Iterator: step through a drawn/imported layer's features one at a time (select, delete, arrow-key nav, fly-to-next).
  • A compute-time estimate now shows for slow modes (SVF, Openness, Local Dominance) while their tiles are still loading.

2026-07-28Linked Terrain/Basemap Sources & Non-Geo Mode

  • Linked terrain/basemap source pairing: for paired datasets like a fresco's DTM plus its own albedo photo, picking one auto-selects the other. Part of this app's non-geo mode, a complementary viewer to RTI/PTM tools like OpenLime (not a replacement) for viewing normal-map/albedo photogrammetry data as if it were terrain. See issue #1 for the feature-parity tracker, and a real example on OpenLime itself for comparison.

2026-07-27Contours extended, Local Persistence, Routing & New Tools

  • Contours extended to local/BYOD COG sources via a dedicated worker, plus line-weight and color controls.
  • Local COG files and vector layers now survive a reload via OPFS persistence.
  • Routing mode for Elevation Picker: a BRouter/Valhalla road-following route (foot/cycle/vehicle profiles) between two picked points instead of a straight line, with a routed elevation profile along it.
  • New tools: Source Info panel (states which underlying provider a composited Mapterhorn/AWS tile actually came from, not just the mosaic's name), Plane Slicer (choose Local Relief Model or raw altitude as the reference plane; Contours share the same choice), Local Dominance relief mode (later sped up via pyramid octaves).
  • Shared custom colorramp editor extended across every viz mode.
  • A cancel button for DTM export appears after ~1.5s if the export is still running.

2026-07-27RiverREM

  • The footer's "Also see" links now explicitly describe RiverREM (repo), a separate app built for a similar use case, on rivers instead of terrain: draw or import a river centerline (or fetch one from OSM via Overpass/QLever, the longest named waterway, or all matches), smooth/interpolate its water-surface elevation (WSE) along that line, then de-trend the DEM against it (REM = DEM − WSE) to get a Relative Elevation Model highlighting fluvial terraces a flat elevation map hides, pure client-side, or server-based via OpenTopography's Python RiverREM.

2026-07-22Matcap/Phong Lighting Rebuilt as Live WebGL Shaders

  • Matcap/Phong lighting was rebuilt as live WebGL shaders, then reverted the same morning to a GPU-accelerated raster-tile approach after the WebGL version proved unstable; native MapLibre Hillshade was restored as its own mode alongside it.

2026-07-21Theme Editor

  • New standalone Theme Editor: live Tailwind v4/shadcn theming with tweakcn/shadcnstudio presets.

2026-07-18Relief Visualization Split & Sidebar Labels

  • Relief Visualization split into its own separate group (Sky View Factor SVF, Openness) from Terrain-analysis (Curvature, TPI, Roughness, Det-Hessian, Blobness).

    Sky-View Factor relief visualization

  • Relief Visualization and Terrain Analysishave a Basic/Advanced collapse toggle to either just activate/deactivate the additional sub-modes, or go further and edit their symbology.

  • Keyboard shortcuts: Shift-tap to peek at the raster basemap, Ctrl-tap to hide every overlay down to just the basemap. See all keyboard shortcuts in the dedicated section of General Settings modal.

  • Labeled Sources / Options / Detectors / Tools sidebar dividers for scanning a long control panel.

2026-07-18TerraDraw Multi-Layer Drawing

  • TerraDraw becomes multi-layer: drawing and GeoJSON import now target whichever layer is active.

2026-07-15Local COG (BYOD) Terrain Sources

  • Local COG (BYOD) terrain sources: load a .cog.tif straight off disk, no upload.
  • Viz-mode tile caching: an LRU of finished viz-mode tile bytes that makes re-toggling a mode instant instead of recomputing it.

2026-07-12Mound Local Tops Detector Beta

  • Experimental "Tells" archaeological mound detector, gated behind a Beta toggle: flags candidate mounds by finding local extrema/maxima of the LRM, then veto-filters them by Blobness, Plan Curvature/Divergence, and Det-Hessian to reject saddles and ridges.

2026-07-11Terrain Analysis: Curvature Suite Expanded

  • Terrain-analysis suite: Profile curvature (rate of slope change along the steepest-descent direction, i.e. flow acceleration) and Plan curvature (rate of aspect change across contours, i.e. flow convergence/divergence), plus TPI and Roughness; Det-Hessian and Blobness followed.

2026-07-10Local Relief Model (LRM) Relative Elevation to neighborhood

  • Local Relief Model (LRM): a new relief mode isolating local bumps from the regional trend. This is compute-optimized by subtracting the elevation tiles altitude at native viewport resolution from the bi-linearly interpolated trend, requested from a lower resolution version of the pyramid. User can control how many levels lower, and sees the resulting gaussian mean scale he chooses.

2026-07-09Client-Side DSM Export, Project Presets, Basemap Overlays & Elevation Picker

  • Client-side GeoTIFF export without Titiler, and shareable per-project embed configs.
  • Project embed presets: ?project= links can seed a fully preconfigured view:
  • Basemap overlays (samples ships demo radar, trails, stamen watercolor) that layer on top of any basemap instead of replacing it.
  • Elevation Picker: click-to-sample elevation at point or delta between two-points

2026-07-08Slope Visualization Mode

  • Slope visualization mode: launched as a PlanTopo server-hosted overlay (computed offline from Mapterhorn), upgraded to a client-side "Slope and More" v2: a custom MapLibre protocol computed directly from whichever terrain source is active (BYOD included), rather than PlanTopo's own fixed dataset. Later grew into the full curvature/TPI/roughness/LRM/Tells suite above.

Slope-angle visualization mode

2026-07-07NextGIS QMS, Photon Geocoder, Animation Pose via URL & TileJSON

  • NextGIS QMS search: search and add basemaps directly from NextGIS QuickMapServices public catalog;
  • Switched search location geocoder to Photon geocoder.
  • Camera/animation poses are now URL-shareable.
  • Added TileJSON data source type
  • Added new colorramps CET/SDR ramps

2026-02-19Light-Direction Spherical Control via XYPad

  • Light-direction control for Hillshade via XYPad: drag a 2D pad to set illumination azimuth/elevation, instead of two separate sliders.

Dragging the XYPad to set light azimuth/elevation

2026-02-19Animation, Video Export & Minimap

  • Animation Capabilities, with keyframe-based (Complete vs Smooth) video export.
  • Video export tries MediaBunny first (real muxed MP4/H.264 via WebCodecs), falling back to raw WebCodecs (H.264, no muxing) if MediaBunny throws, then all the way to MediaRecorder (WebM) if the browser lacks WebCodecs entirely.
  • Minimap with main viewport footprint/frustum bbox shown, fully configurable.
  • Finer Terrarium quantization (4mm vs. TerrainRGB 10cm) shipped as a High-Precision toggle.

2026-02-18Drawing Tools via TerraDraw, Sources Samples & Contours Consolidation

  • Drawing Tools via TerraDraw: draw shapes, points, and more; import/export geojson features.
  • Load Sample buttons added to the terrain/basemap source pickers with a variety of nation-wide sources.
  • Contours reworked and consolidated into their own "Contours & GeoGrid" section.
  • Fold/expand-all for every sidebar section, with collapsed state now persisted via jotai atomWithStorage.

2026-02-13BYOD Basemaps & WMS/DTM-DSM Sources

  • BYOD basemaps TMS, WMS, COG, finalized as their own custom-source type via custom protocol, alongside the existing BYOD terrain sources.
  • WMS raw-elevation support (e.g. IGN France) now stream as MapLibre raster-dem via a custom MapLibre protocol. Standalone demo: maplibre-raster-dem-wms-float32-generic.html.
  • DTM-DSM LidarHD selector in samples
  • Graticule layer
  • Share section

2025-11-18cpt-city Colorramp Library

  • Adding a large open-license colorramp library, cpt-city, with classic, topo, topobath, top qgis, and temp groups.

2025-11-14Geomatico COG Protocol vs. Titiler

  • Offer the choice to stream COG via Geomatico's native MapLibre COG-protocol vs. Titiler. The direct client protocol avoids Titiler's rate limiting and is faster (no middleware hop), but is less permissive: it only reads COGs already in Web Mercator (EPSG:3857), where Titiler can reproject on the fly server-side.

2025-11-07BYOD (Bring Your Own Data) Terrain Sources

  • Bring Your Own Data (BYOD) Terrain sources let users import their own TMS, COG remote endpoint terrain sources.

2025-11-04Initial Launch, Viz Modes, Shareable URLs & Split Mode

  • Initial launch with all user-controls on one foldable, sidebar control panel. UI transparency on slider change enables better-feedback, 2D/3D/Globe map projection modes.
  • Terrain visualization modes: Hillshade (Combined, Standard, Aspect Multidir colors, Igor, Basic), Hypsometric color-relief, Raster Basemap
  • Sources for Terrain (Terrarium /TerrainRGB): Mapterhorn, Mapbox, Maptiler. AWS Terrain Tiles.
  • Source for Raster Basemaps: Google, Bing, ESRI, Mapbox, Here, OSM
  • Shareable URLs, State persisted to URL via nuqs so any shared url results in visually the exact same map.
  • Split Mode: A/B side-by-side comparison, originally built for comparing the same location's resolution/quality across different terrain sources (Mapterhorn vs. Mapbox/MapLibre terrain-RGB vs. AWS Terrain Tiles).

On this page

2026-09-25 — MapLibre 6, and Compare and Blend Everywhere2026-09-24 — Data Layers as Pictures, and Shortcuts on Section Headers2026-09-23 — VRT Mosaics in the Browser, Twenty New Sources, and Where 3D Exists2026-09-20 — Esri & Cesium Global Terrain, Faster Tiles2026-09-16 — Catalog Search, Coverage Overlays & OSM Vector2026-09-14 — National Terrain Library & Historical Export2026-08-21 — Live Lighting Rework: Native-Sharpness Phong & Matcap2026-08-20 — Historical Fixes, Matcap Rework, Docs Restructure2026-08-19 — Docs Site Expansion and Open-In Additions2026-08-16 — Terrain Camera Fixes, Terrain Sources Docs, and Favicon Polish2026-08-16 — Guided Product Tour2026-08-14 — Docs Site, Featured Bookmarks, and Tells Freeze Fixes2026-08-11 — Histogram Color Matching in Compare and Blend2026-08-10 — N-Map Grid, Overlay blend, and export historical imagery2026-08-07 — Historical Satellite Imagery Timeline, Terrain vs Historical Mode Picker2026-07-31 — Draw export split, Colorramp Editor, Bookmarks Gallery2026-07-30 — COG GSD surfacing & Foldable Bookmarks Tree2026-07-28 — Whole-Project Export, Hard Shadows & Sun Shadow Calculator2026-07-28 — Bookmarks & Feature Iterator2026-07-28 — Linked Terrain/Basemap Sources & Non-Geo Mode2026-07-27 — Contours extended, Local Persistence, Routing & New Tools2026-07-27 — RiverREM2026-07-22 — Matcap/Phong Lighting Rebuilt as Live WebGL Shaders2026-07-21 — Theme Editor2026-07-18 — Relief Visualization Split & Sidebar Labels2026-07-18 — TerraDraw Multi-Layer Drawing2026-07-15 — Local COG (BYOD) Terrain Sources2026-07-12 — Mound Local Tops Detector Beta2026-07-11 — Terrain Analysis: Curvature Suite Expanded2026-07-10 — Local Relief Model (LRM) Relative Elevation to neighborhood2026-07-09 — Client-Side DSM Export, Project Presets, Basemap Overlays & Elevation Picker2026-07-08 — Slope Visualization Mode2026-07-07 — NextGIS QMS, Photon Geocoder, Animation Pose via URL & TileJSON2026-02-19 — Light-Direction Spherical Control via XYPad2026-02-19 — Animation, Video Export & Minimap2026-02-18 — Drawing Tools via TerraDraw, Sources Samples & Contours Consolidation2026-02-13 — BYOD Basemaps & WMS/DTM-DSM Sources2025-11-18 — cpt-city Colorramp Library2025-11-14 — Geomatico COG Protocol vs. Titiler2025-11-07 — BYOD (Bring Your Own Data) Terrain Sources2025-11-04 — Initial Launch, Viz Modes, Shareable URLs & Split Mode