jeroen/cartopolis: A networked 3D digital global community constructed with Rust and Bevy.

A social map of the actual global community: see how a spot is constructed, and speak about it with the people who find themselves there.
A walkable 3D copy of the actual global community, constructed from open public knowledge and shared between everybody it. Runs within the browser, on the desktop and on Android. Free, open supply, self-hostable.
Public transport systems
- Built from the registers — buildings from BAG and 3DBAG, floor from AHN, road bushes, lighting and paving from the nationwide and municipal object registers, PDOK aerial pictures, reside transit.
- Every constructing has a card — 12 months constructed, use, models, flooring space, standing, monument itemizing, addresses. Walk in and its storeys are there.
- The global community round it — actual solar, actual climate, routing on foot, by bike or by automobile, and one steady area from a doorway to orbit.
Sharing a spot
- Talk the place you stand — avatars, native chat scoped by distance, proximity voice, global community chat, end-to-end encrypted personal chats.
- Point at it — a hyperlink opens your precise view within the browser or the app; saved locations with photographs and map pins.
- Put one thing there — place and script objects and 3D fashions, swap a constructing for an IFC mannequin, export and import content material over an HTTP API.
- Moderation — blocking, reporting and account deletion, enforced on the server; an online console for accounts and knowledge pipelines.
For residents, communities, municipalities and governments, and planners and designers.
Screenshots
Generated with cargo photographs from docs/shots.toml.
Where it really works
Map, sky, climate, routing and the shared global community: anyplace on Earth. Register element (measured buildings and their data, reduction, road objects, aerial photographs, transit): the Netherlands, plus municipal knowledge the place a metropolis publishes it. Elsewhere the bottom is flat and buildings come from OpenStreetMap. Each register is one pipeline in crates/atlas.
Written in Rust on Bevy.
Try it
- Browser — cartopolis.org. Needs WebGPU.
- Desktop — Linux and Windows on the releases page, or construct from supply (macOS too). Published binaries want AVX2 and FMA (~2013+).
- Android — APK at cartopolis.org/apk (arm64, Android 9+). The full consumer, least examined of the three (notes).
Running from supply
cargo run -p cartopolis
Starts offline. Sign in to a server from ☰ ▸ Sign in….
cargo run -p cartopolis -- --connect # break up mode: connect with a reside sim (TLS)
cargo run -p cartopolis -- --offline # no sim: single person, no auth or persistence
cargo run -p cartopolis_simulator # the sim server, standalone
Needs Rust, a C compiler and a GPU driver; see the development guide. Run git lfs set up earlier than cloning — property are in Git LFS and a few are compiled in.
Documentation
- User manual — controls, getting round, authoring, the developer panel.
- Changelog — what modified, per launch.
- Development guide — stipulations, dev loop, checks, code map, conventions, CI.
- Server guide — deploying the sim and the self-hosted geo providers.
docs/notes/— constraints and measurements;CLAUDE.mdKnown points is the entice record.
Architecture
| Crate | Role |
|---|---|
cartopolis_core |
Shared protocol sorts and tile/coordinate math |
cartopolis_geo |
Bevy-free map geodata: MVT decode, highway lessons, tree scatter, the routing graph |
cartopolis_e2ee |
End-to-end encrypted personal chats (MLS); the server relays sealed bytes it can’t open |
cartopolis_simulator |
The shared-world server (Tokio + SQLite): avatars, chat, voice, objects, accounts; no Bevy |
cartopolis_atlas |
The register pipelines (BAG, 3DBAG, AHN, BGT, …), the terrain server and the operator internet console |
cartopolis |
Bevy consumer — rendering, ECS programs, UI |
cartopolis_android |
The Android app shell across the consumer |
big_space |
Vendored floating-origin fork, for planet-scale coordinates |
Licence
Source: MIT OR Apache-2.0 (LICENSE). Data, avatars and font carry their very own phrases; LICENSE-THIRD-PARTY.md is the canonical discover record (the credit beneath mirror it — add new sources there).
Credits
- Engine — constructed with Bevy.
- Floating origin —
big_spaceby Aevyrie, MIT OR Apache-2.0. Vendored right here as a fork ported to the Bevy launch we monitor. - Avatar characters — Quaternius Ultimate Modular Men/Women, CC0. Consider supporting the work on Patreon.
- Map knowledge — © OpenStreetMap contributors, underneath the ODbL. Building element and POIs come from Overpass, place search and reverse geocoding from Nominatim — each self-hosted, and usable in opposition to the general public situations underneath the OSMF usage policies.
- Vector tiles — VersaTiles, within the Shortbread schema. Self-hosted mirror of their OSM-derived planet construct.
- Buildings (LoD2.2) — 3DBAG by the 3D geoinformation group, TU Delft, CC BY 4.0 — derived from the Kadaster’s BAG registry and AHN, each by way of PDOK. Netherlands solely.
- Aerial pictures — Beeldmateriaal Nederland, served as Luchtfoto RGB by PDOK, CC BY 4.0. Netherlands solely.
- Street objects — road bushes, lighting and containers from gemeente Groningen open data, CC BY 4.0. Groningen solely.
- Elevation — AHN peak rasters (DTM/DSM), served by PDOK, CC0. Netherlands solely.
- Public transport — reside departures and automobile positions from OVapi, the open key-free feed of Dutch NDOV operator knowledge. Netherlands solely.
- Weather — forecasts from MET Norway, CC BY 4.0, and international cloud cowl from the NOAA Global Forecast System, public area.
- Night sky — star positions and magnitudes from the HYG Database v4.1 by David Nash, CC BY-SA 4.0 — a compilation of the Hipparcos, Yale Bright Star and Gliese catalogs.
- Type — Plus Jakarta Sans by Tokotype, SIL Open Font License 1.1.
