The VLM engine as a graph
529,297 real data points, 74 datasets, 12 engines — as a walkable knowledge graph. 517,504 of them sit at their real position: a tree, a street light, a bench in Vienna.
The datasets sit on the outside, each one with real positions a small Vienna made of its own points, over the city boundary, the Danube and the Danube Canal: official tile layers such as cadastre, flood zones and noise, OpenStreetMap, own measurements and time series. The 12 engines work in the middle, the answers they become sit above; the tools hang off their engine like small moons. Zoom in and you see the city made of 232,661 trees — proof that the graph is not decoration. The AI invents nothing in it: it only translates. The graph shows what is there, never how it is computed.

The 12 engines
Source of truth · 8 measures × 8 perspectives. 8 weighted measures across 8 perspectives, deterministic and frozen by golden tests — the same formula for address, Grätzl and district. No chance, no AI.
language ⇄ weights. Gemini only translates — wishes into weights, facts into language. It never ranks and never invents a score; if it is down, the data-built text is there instantly.
8 axes from 14 signals. Every place as a profile of 8 axes, composed from 14 measured signals — personality, not a category, and never part of the score.
sun for every minute of the year. Sun position, a horizon from the official eaves heights of the neighbouring houses, terrain and tree crowns — computed for every window of an address, never guessed.
house, flat and street in 3D. The house from the official roof model, the flat from the floor plan, around it the real street: trees, lights, benches, crossings, stops — in the light of the computed sun.
facts → language. Measurements become language like a local Viennese friend’s — with a mandatory trade-off, never invented; computed once per Grätzl and perspective.
own vector tiles · MapLibre. Own tiles on our own domain, own style light and dark, 3D trees and night light — no Google Maps, no third-party server while you read.
official map + own overflight count. Road, rail and aircraft noise from the official environmental noise map, plus the own count of low-flying aircraft over 99 places. A measured drawback is never removed, only explained better.
summer heat modelled, climate measured. A summer-heat index per Grätzl from built form, green, trees, water and elevation — labelled as modelled, never as measured degrees. Plus the Hohe Warte climate series and today’s weather.
green roof, sun, room on top. From the official roof model: which roofs can carry a green roof, where a storey would fit and how much sun it would get — computed house by house, shown per district.
what the Azima report checks. Flood, heavy rain, torrents, earthquakes, radon, contaminated sites, geology, listed status and zoning from official tiles — read for every address, never guessed.
renders, previews, covers. From the own map, the build renders the pages’ 3D images, one preview image per page and the covers of the short films. A place’s character image is a real, freely licensed photo of the area, only restyled — the geometry stays.
What they become
The tools
open map library. Draws the map with WebGL from vector tiles — open source, no account with a map provider.
one tile file. All of Vienna in one file on our own domain; the browser reads just the tiles it needs via range requests.
the 3D stage. Renders house, flat and street — with WebGPU where the device supports it, otherwise WebGL2.
compressed all the way to the GPU. Plaster, parquet and foliage arrive as GPU-compressed textures — a fraction of the memory on a phone.
language model as translator. Translates wishes into weights and facts into language — with a fixed response schema, a small budget and a fallback to the data text.
computed astronomically. The sun’s path for every minute of the year with the NOAA method — accurate to the minute, also in winter.
Pages · Functions · R2. Pages, tiles and functions at the network edge, with no own server; counting happens there without cookies.
static pages. Every page is built as finished HTML — search engines and AI answers read real content.
fast return, partly offline. Keeps public files on the device — return visits load instantly, never with personal data.
climate and weather data. The official Hohe Warte climate series and today’s weather — openly licensed, credited as a source.
checkout for the report. Sells the Azima report as merchant of record with invoice and tax; loaded only when you click buy.
one palette, one sky. One colour palette for map, 3D stage and report and one computed sky per time of day — which is why the images look like the map they come from.
The datasets in the graph
Point = point, line = middle vertex, area = mean of the outer ring — the same rules as the data-point atlas in “Vienna in numbers”.
Language & knowledge
eight perspectives per Grätzl, six per district, computed once930
one long living report per Grätzl and district119
own walks through a neighbourhood’s everyday life, one point per stop11
fingerprint, essence and postcode per place122
Images
from the own map, rendered at build time33
drawn at build time, per page and language156
one cover per short film5
VLM itself
all channels together (TikTok, YouTube, Instagram), the curve per day — via Zernio, transferred by hand20,899
Culture & food
OpenStreetMap contributors (ODbL)5,631
OpenStreetMap contributors (ODbL)1,325
City of Vienna Open Data (CC BY 4.0)2,993
OpenStreetMap contributors (ODbL)162
OpenStreetMap contributors (ODbL)694
OpenStreetMap contributors (ODbL)92
Permanent markets, curated18
City of Vienna Open Data (CC BY 4.0)17
Housing
City of Vienna Open Data (CC BY 4.0)1,678
99 curated neighbourhoods99
City of Vienna Open Data (CC BY 4.0)4,774
City of Vienna building typology, per Grätzl and district (CC BY 4.0)122
Statistics Austria, per district 2015–202523
Roofs
City of Vienna LOD2 roof model, summarised per district195,172
City of Vienna generalised roof model LOD2.1 (CC BY 4.0)195,218
roof model + zoning: where a storey would fit36,399
horizon from the neighbours’ eaves, per house28,264
City light
City of Vienna Open Data (CC BY 4.0)172,296
Heat & climate
modelled from built form, green, trees, water, elevation — not a measured °C value122
built form, slope and view per Grätzl99
GeoSphere Austria, mean yearly temperature (CC BY 4.0)6
3D street world
OpenStreetMap contributors (ODbL)21,978
OpenStreetMap contributors (ODbL)13,098
OpenStreetMap contributors (ODbL)11,248
OpenStreetMap contributors (ODbL)8,290
OpenStreetMap contributors (ODbL)2,879
OpenStreetMap contributors (ODbL)872
City of Vienna LOD2 roof model + own models85
OpenStreetMap contributors (ODbL)40
City of Vienna street surfaces and cycle paths (SISBELAGOGD, RADWEGEOGD, CC BY 4.0)910,115
Terrain & hazards
geoland.at DTM 10 m (CC BY 4.0)592
BMLUK flood directive 2026 (CC BY 4.0)1,610
BMLUK hazard map (CC BY 4.0)584
WLV hazard zone plan185
GeoSphere Austria (CC BY 4.0)23
AGES radon map (CC BY 4.0)26
GeoSphere Austria, geology 1:50,0002,642
Environment Agency contaminated-sites atlas (CC BY 4.0)205
Trees
City of Vienna tree register (CC BY 4.0)232,661
Green & water
OpenStreetMap contributors (ODbL)6,055
OpenStreetMap contributors (ODbL)1,941
OpenStreetMap contributors (ODbL)69
OpenStreetMap contributors (ODbL)222
City of Vienna Open Data (CC BY 4.0)740
City of Vienna Open Data (CC BY 4.0)473
City of Vienna Open Data (CC BY 4.0)14
City of Vienna Open Data (CC BY 4.0)555
Records & law
BEV cadastre without owners, as of 1 Apr 2026247,925
City of Vienna Open Data (CC BY 4.0)53,806
Federal Monuments Office, Vienna list 20263,355
City of Vienna Open Data (CC BY 4.0)8,560
Broadband atlas RTR (data.gv.at)42,305
Mobility
Wiener Linien GTFS (CC BY 4.0)4,264
OpenStreetMap contributors (ODbL)7,386
City of Vienna Open Data (CC BY 4.0)755
City of Vienna Open Data (CC BY 4.0)76
OpenStreetMap contributors (ODbL)320
OpenStreetMap contributors (ODbL)1,997
Noise
Strategic noise maps 2022 (laerminfo.at)588
low-flying aircraft over 99 places since 2026-07-25, own measurement — counted per place and summed: one aircraft over three places counts three times68,577
Everyday needs
City of Vienna Open Data (CC BY 4.0)7,516
City of Vienna Open Data (CC BY 4.0)344
City of Vienna Open Data (CC BY 4.0)1,669
Education
City of Vienna Open Data (CC BY 4.0)806
City of Vienna Open Data (CC BY 4.0)1,711
City of Vienna Open Data (CC BY 4.0)21
How the graph is drawn
The graph is not a picture but its own WebGL renderer: all 529,297 points are stored as 16-bit positions inside the Vienna frame, sorted along a space-filling curve and saved as deltas — about 2.5 bytes per point, 1.2 MB for the whole city instead of 15 bytes per point as GeoJSON. Drawing is additive: where the city is dense, the dataset glows like a galaxy core. On a phone the world turns to portrait, two fingers zoom, Back closes; whoever cannot see gets the same nodes as a list.
Frequently asked
Are the points in the graph real?
Yes. 42 of the 74 datasets show every entry at its real position, only scaled down — the largest is the tree cadastre with 232,661 trees. The others say what a point is there: an official tile (cadastre, flood zones, noise), a Grätzl or district, a day of a time series or an image. The data comes from the City of Vienna, OpenStreetMap, Wiener Linien, Statistics Austria, GeoSphere Austria and other authorities; 16 datasets are own measurements and curated content.
What does the AI do in the engine?
It translates only: wishes into weights and facts into language. It never ranks and never invents a score — the score engine is deterministic and frozen by golden tests.
Where can I explore the graph live?
In the app under “Vienna in numbers” → Tech, or directly via viennalivingmap.com/#insights=engine — full screen, also on the phone.
Can I use the graph in an article or talk?
Yes — the renders on this page and the live graph may be shown with the credit “Vienna Living Map”. The data sources are named in the methodology.