Simulador bici-geo-energético

1. Load DEM

or download (locally) an example:
Entorno da Água Preta ~2 MB · imediato Sampa Centro Expandido ~34 MB · rápido Sampa Sítio Urbano ~540 MB · lento Carregar FABDEM para a janela atual ≤ 50 MB
No DEM loaded.
Reload a saved bundle (.zip) or .jsonld:

1b. Optional vector network (.gpkg)

Queries Overpass over the current map view ∩ DEM extent. Large areas can take a while or hit Overpass limits — zoom in first.
No network loaded.

2. Pick points

src— click map — dst— optional —

3. Parameters

Round-trip mode only. "Each leg": a cell is shown if out ≤ budget AND back ≤ budget (totals can reach 2×). "Total": out + back ≤ budget.
0: inverted Dijkstra (geometrically short, cost-dense). L>0: layered DP finds the max-cost path of exactly L edges from src to dst. Memory cap ≈ 256 MB ⇒ L·H·W must fit; large DEMs limit L to a few dozen.
Direction follows the Mode above.
Quasi-random (QMC) sequences cover the area evenly, without the clumps and gaps of pseudo-random — the density converges with fewer references. Successive clicks continue the sequence rather than repeat it.
no references placed
Optional local server (backend/ in the repo, cargo run --release). Density runs are sent there and computed on all cores; if unreachable, the app silently falls back to the in-browser worker pool.

Result

—
0 — —
XYZ tiles from pedalhidrografi.co.
cmocean.phase, p5–p80 · slope 0–p80, γ=1.2
Auto = sqrt-stretched; pin either bound for linear with clamping.
Green channel (unconstrained) — blank = same as red
Greyscale ramp; with "add" mode high-pass cells brighten the energy field beneath. "Energy color" paints corridors with the energy field's colormap and uses passes for opacity — min/max/γ shape the alpha ramp. Same auto / pinned-range behaviour as Energy.
feito por Claúdio e dirigido pelos neogeógrafos geomorfológicos

Simulador bici-geo-energético

Como usar

1 · Carregar um DEM

2 · Marcar pontos

3 · Parâmetros

4 · Computar

5 · Visualização

6 · Salvar / restaurar

O que estamos fazendo

Modelo de custo assimétrico

Campo de energia

Modos

Contagem de passagens

Top-N rotas

Densidade multi-referência

Restrição por rede vetorial (.gpkg)

Interpolação fora da rede

Implementação

Changelog

v12 — 2026-06-12
Density worker pool (multi-core) + Dijkstra heap optimisations (~10× density runs). Optional native Rust backend (off by default, density only, auto-fallback). QMC (Sobol/Halton) sampling option for random reference placement. Round-trip budget mode: cap each leg or the round-trip total; round-mode passes count only completable (in-budget) trajectories. "Energy color" passes blend (hue from energy, opacity from passes). Optional vector-network rendering (black lines, configurable ground width + opacity; passes overlay stacks above the network; stacking reorderable via a modal) and a "constrain compute to network" toggle. Basemap selector (OSM / Carto minimal / solid colours). Export of rendered energy/passes PNGs with world files. OSM (Overpass) street-network pull. Constrained-vs-unconstrained comparison: interpolated energy difference + additive red/green passes overlay with per-channel controls (regular and density modes). Interpolation prefilter + worker-pool banding. Backend liveness/progress fixes. SEO/LLM metadata (description, canonical, Open Graph, JSON-LD, llms.txt, sitemap). Fixes: PWA manifest restored, service-worker install bug, offline caching of CDN libs (SRI + crossorigin), 3-D GeoPackage (Z/M) parsing, stale-result race on DEM/network swap mid-compute, worker-crash handling, XSS hardening of Bundle-before-DEM loading order now restores correctly (pending-bundle re-apply). Density+network Compute no longer aborts silently (null-src re-snap bug); network clicks snap grid-wide (no more snap-radius dead-end); .gpkg geometry column name read from metadata; empty-on-DEM networks rejected loudly.

v11 — 2026-05-13
Wasm engine removed (JS worker only). Fix layered-DP backtrack direction bug (spurious "backtrack_fail"); fix ReferenceError in result metadata.

v8–v10 — 2026-05
Reverse-optimisation (maximize energy) toggle; length-constrained max-cost path via layered DP; DP failures surfaced in the UI instead of the console.

v4–v7 — 2026-05
DEM relief layer (cmocean.phase + slope); locate-me button; OOM fixes for huge DEMs (reservoir-sampled percentiles, stride-capped canvas); drawer/z-index and iOS private-browsing fixes.

v1–v3 — 2026-05-08
First public shell: GeoTIFF DEM loading, asymmetric-cost Dijkstra energy fields, passes count, top-N routes, multi-reference density, vector-network constraint, bundle export (GeoTIFF + JSON-LD), PT/EN, FABDEM viewport loader, PWA shell.

Layer stacking order

Top of the list is drawn on top. Markers and tooltips always stay above. Applied immediately; remembered on this device.