Built a real-time 3D mapping library that renders OpenStreetMap as a globe in the browser, at planetary scale. Proprietary, self-funded platform, running in production: CityMap3D.
- Designed the full distributed architecture: OSM-to-3D-tiles compilation pipeline (workers on a Beanstalk queue, S3 storage, tiles pushed in real time over Socket.IO), rendered as a spherical globe with one continuous camera from 100 m to 40,000 km, no mode switch.
- Built the custom 3D engine (Three.js + GLSL3): 18 hand-written shaders (SSAO, fog, edge detection, tonemapping, color grading), cascaded shadow maps, astronomical sun/moon lighting and a 1,660-star catalogue.
- Rendered objects at scale in the browser: GPU instancing (131,072 instances per mesh, pooled across tiles), LOD, per-tile culling.
- Optimized the tile generation pipeline through measurement: identified the bottleneck (polygon difference, 85 to 97% of total time), applied a targeted fix, -49% overall generation time.
- Built the multilingual search with no third-party API: free-text geocoding and local-LLM embeddings over 166 OSM meta-categories (8,797 phrases, 10 languages), PostGIS proximity resolution.
- Operate the platform in production: 8 hosts, 20 Ansible playbooks, 7 supervised services, strict-TypeScript monorepo of ~70k lines.
Vue 3 · TypeScript · Three.js · GLSL3 · Hono · Socket.IO · PostgreSQL/PostGIS · Beanstalk · S3 · Ollama · FlatBuffers · Ansible













