Berlin isochrone web application with a Python preprocessing pipeline and a browser-based renderer.
make bootstrap
make precommit-install
make check
python -m http.server 8000
make lint
make test
make review
npm run --silent bench:routing -- \
--graph data_pipeline/output/graph-walk.bin \
--samples 24 \
--modes walk,bike,car,all \
--output-json data_pipeline/output/routing-benchmark.json
--seed, default 1337).web/wasm/routing-kernel.wasm) for edge-cost precompute.precompute, tick-pack, search, dist-output, and total.Stable/low-variance benchmark mode:
npm run --silent bench:routing -- \
--graph data_pipeline/output/graph-walk.bin \
--samples 24 \
--modes walk,bike,car,all \
--stable \
--warmup-rounds 3 \
--measurement-rounds 5 \
--max-relative-mad 0.05 \
--output-json data_pipeline/output/routing-benchmark-stable.json
Stability gate: PASS|FAIL summary per run and in JSON output.--baseline-json <stable-report.json>.make wasm-build
web/wasm/routing-kernel.wasm (wasm-opt -O4 --all-features).wasm-opt (binaryen) on PATH; install with brew install binaryen on macOS.Your browser does not support WASM, this app requires WASM for performance reasons.docs/wasm-routing-kernel.md.data_pipeline/output/graph-walk.bin.gz by default.node=<graphNodeId> and restored on reload.<details>/<summary> hamburger).docs/graph-binary-schema-v2.md..github/workflows/pages.ymlmain or manual dispatch (workflow_dispatch)web/index.htmlweb/src/*data_pipeline/output/berlin-district-boundaries-canvas.jsondata_pipeline/output/graph-walk.bin.gzdata_pipeline/: Graph preprocessing and binary export logicweb/: Browser app source (vanilla JS modules, no bundler)docs/: Design and process documentationPLAN.md: Delivery plan and architecture roadmapThis repo is configured for autonomous-agent workflows with:
make check)ESLint) and runtime tests (node --test) included in make checkAGENTS.md