Vienna Living MapKarte Architektur
Wie es funktioniert

Eine ruhige App,
eine Daten-Fabrik dahinter.

Vorne fühlt sich VLM an wie eine Suche und eine Karte. Dahinter arbeitet eine Kette aus Engines, gespeist von Fabriken, Cron-Jobs und Prüfungen — die KI erfindet nichts, gerankt wird deterministisch, jeder Baustein hat einen ehrlichen Fallback.

Tipp auf einen Baustein springt zu seiner Tiefe. Durchgezogen = der Weg der Antwort, das Fundament speist die Engines von unten.

Vorne · was du bedienst
🔎

Suche — ein Feld, kein Modus

Eine universelle Suche erkennt selbst, ob du eine Adresse, einen Wohnwunsch, ein Ranking, ein Budget, Ähnlichkeit oder Nähe meinst. Du wählst nie einen Modus.

AdresseWunsch/LifestyleRanking BudgetÄhnlichkeitNähe
↩︎Fallback: unklarer Text wird als Wunsch behandelt; ist das Feld leer, erscheinen Beispiele statt einer Fehlermeldung.
🗺

Karte — eigene Infrastruktur, kein Google

MapLibre GL mit selbst gebauten Vektor-Tiles (PMTiles, Wien-Extract) auf Cloudflare R2 und einem eigenen warm-stone-Stil in Hell und Dunkel — kein Google Maps, keine fremden Kacheln.

Tiles

PMTiles auf R2

Kein externer Kartendienst, keine fremden Tracker in der Karte.

Ebenen

13 Daten-Layer

Score-Choropleth, Bäume, Sommerhitze, Öffis, Cafés, Radwege … lazy geladen, GPU-gerendert.

Licht

3D-Vignette

Reale Gebäudehöhen + Bäume + Gelände; die Sonne wandert, Schatten wandern mit.

↩︎Fallback: fällt die GL-Karte aus, schaltet VLM automatisch auf die klassische Leaflet-Karte zurück und merkt sich das.
🧭

Entscheiden — Vergleich, PDF, Tagebuch

Vergleich

Wer gewinnt wo

Bis zu vier Orte gegenübergestellt — Unterschiede statt Zahlenwüste.

PDF-Engine

Digitales Exposé

Ein A4-Exposé, das erst nach dem Font-Laden vermessen und auf die Seite skaliert wird — warm, kein UI-Screenshot.

Tagebuch

Local-first

Favoriten, „besichtigt / passt nicht", Notizen — alles nur am Gerät, ohne Konto.

Die Engines · das Gehirn
🗣

KI — nur Übersetzer, nie Entscheider

Gemini läuft ausschließlich serverseitig und übersetzt in zwei Richtungen: Wünsche → Gewichtungen, Fakten → Prosa. Es rankt nie und erfindet nie einen Score.

Kostendeckel

Schema + Cache

Erzwungenes JSON-Schema, kleine Token-Caps und ein Cache je ~100 m-Zelle halten jeden Aufruf winzig.

Ton-Gate

Banned-Words

Ein Build-Gate verwirft Floskeln („pulsiert", „im Herzen Wiens") und lässt neu generieren.

Privacy

Nur gerundete Koordinaten

Die genaue Adresse verlässt den Server-Kontext nie — nur Grätzl-Name + gerundete Koordinaten gehen an KI/Bild.

↩︎Fallback: ist die KI nicht erreichbar, erscheint sofort der deterministische Text — die App bleibt voll nutzbar.
⚖️

Score-Engine — die Quelle der Wahrheit

Deterministisch und per Golden-Tests eingefroren: sechs Dimensionen — Öffis, Grün, Sicherheit, Ruhe, Preis-Leistung und Urbanität — in sechs Perspektiven. Dieselbe Formel für Adresse, Grätzl und Bezirk.

6 Dimensionen

Sicherheit · Öffis · Grünflächen · Ruhe · Preis-Leistung · Urbanität — für Adresse, Grätzl und Bezirk mit derselben Formel.

6 Perspektiven

Für die meisten · Familie · Urban · Homeoffice · Preis-Leistung · Genuss & Kultur. Perspektive gewichtet nur, sie erfindet nichts.

🔒Sicherung: kein Zufall, keine KI — bei gleicher Eingabe immer dasselbe Ergebnis, in App, PDF und Vergleich identisch. Jede Änderung braucht zuerst einen Golden-Test.
🧬

Atmosphären-Fingerabdruck — Persönlichkeit statt Kategorie

Jeder Ort bekommt ein Profil aus acht Achsen, zusammengesetzt aus neun echten Sinnen — wie Audio-Features bei Musik, nur für Orte.

🌇 Urban🏛 Kultur🌳 Grün 🍷 Wein & Hügel🌊 Wasser🤫 Ruhe 🚋 Rhythmus🛍 Markt
↩︎Er speist Moodboard, Essenz, Bewegung, Jahreszeiten und „Ähnliche Orte" — nie den Score selbst, denn Persönlichkeit ist kein Werturteil.
☀️

Licht-Engine — Sonne, Schatten, 3D

Für eine echte Adresse rechnet VLM den Sonnenstand (SunCalc), den Verschattungs-Horizont der umliegenden Gebäude und die Bauklasse aus der Flächenwidmung — sichtbar in einer 3D-Vignette mit Terrain und echten Katasterbäumen.

↩︎Privacy & Ehrlichkeit: die Gebäude-Abfrage läuft im Browser — die genaue Adresse verlässt dafür nie den Server. Fehlen Höhendaten, sagt VLM ehrlich „grobe Schätzung", statt eine Zahl zu erfinden.

Azima (der Licht-Check, /licht-check/) ist die Werkzeug-Form derselben Engine: das gemessene Haus samt Nachbarn als begehbare 3D-Bühne mit Tag- und Datumsregler, die Wohnung als Puppenhaus von oben, jeder Raum nach Sonnenlast und Pflanzenlicht eingefärbt — und der Objektbericht mit Stunden direkte Sonne je Raum für Hochsommer und Mittwinter. Zwei Renderer, eine Kamerawahrheit: die Karte trägt Relief und Stadt, das Haus wird darüber gezeichnet, dieselbe Sonne beleuchtet beides. Die Zahl je Raum ist ein Modell aus Fensterrichtung, gemessenem Horizont und Sonnenbahn und wird so beschriftet.

📖

Story-Engine & Magazin — „wie lebt es sich dort"

Aus Fakten wird Sprache wie von einer ortskundigen Wiener Freundin — persona-bewusst, mit Pflicht-Trade-off, nie erfunden. Dazu die Magazin-Engine: pro Grätzl ein langer Wohn-Report im Monocle-Ton, gegen ein Anti-Schablonen-Gate geprüft.

Precompute

Grätzl × Perspektive

Alles Endliche wird einmal erzeugt und als stories.json gespeichert — konsistent in PDF & Vergleich, ohne Laufzeitkosten.

On-demand

Adress-Story

Beliebige Adressen bekommen ihre Prosa live (dann gecacht); der deterministische Text erscheint zuerst.

Fundament · Daten, Cron & Prüfung
🏭

Daten-Fabrik — Precompute statt Runtime

Rund 15 Build-Skripte + monatliche Cron-Jobs (GitHub Actions) ziehen Stadt Wien OGD, OpenStreetMap/Overpass, Wiener Linien, GeoSphere und Statistik Austria und legen alles als statische, versionierte Dateien ab — schnell, gratis, überall gleich.

Monatlich

Data-Factory-Cron

History-Snapshots (insert-only), Preise, Wohnstatistik, Klima, dann Regeneration von SEO-Seiten, Wissens-Index & Pressekit-Zahlen.

Wöchentlich

Bild-Selbstheilung

Ein Audit prüft die Moodboards und generiert fehlerhafte neu (Montag früh).

Pro Deploy

Prerender + Prüfung

Alle Seiten neu gerendert, Golden-Tests, ein Live-Smoke-Test.

🛡Sicherung: jeder Job hat ein Plausibilitäts-Gate und schreibt insert-only — eine schlechte API-Antwort kann Live-Daten nie überschreiben.
🌤

Klima & Wetter — die Atmosphäre färbt sich

GeoSphere (Station Hohe Warte, Monats-Cron) liefert Wiens Klima-Zeitreihe samt Erwärmungs-Trend; das Live-Wetter färbt Himmel, Landing und Moodboard-Glaze. Dazu ein modellierter Sommerhitze-Index.

↩︎Ehrlich: der Hitze-Index ist als „modelliert aus Bebauung & Grün — kein gemessener °C-Wert" ausgewiesen und gegen die Klimaanalysekarte der Stadt geprüft.
🖼

Bild-Pipeline — echtes Foto, kein Fantasie-Wien

Ein echtes, frei lizenziertes Referenzfoto der Gegend wird nur im Stil übertragen (die Geometrie bleibt), von einer Vision-QA geprüft und einmal global zwischengespeichert.

↩︎Fallback: fehlt ein Foto oder scheitert die QA, zeigt VLM eine ehrliche Farbkomposition aus dem Fingerabdruck — nie ein erfundenes Wien.
🌐

SEO- & Prerender-Fabrik — auffindbar & zitierfähig

Beim Build entstehen hunderte statische Seiten in Deutsch und Englisch, dazu eigene OG-Vorschaubilder (mit selbst geschriebenem Font-Parser), ein Wissens-Index (places.json), JSON-LD und die Sitemap.

↩︎Alles vorgerendert: Suchmaschinen und KI-Antworten sehen echten Inhalt, nicht ein leeres JavaScript-Gerüst.
⚡

Performance & Offline

Ein Service Worker macht VLM zur installierbaren PWA; Code-Splitting sowie Edge- und KV-Caching („einmal generiert, global gecacht") lassen Wiederbesuche fast sofort laden — teils sogar offline.

🔒Ehrlich: der Cache umfasst nur öffentliche, unpersönliche Dateien am Gerät — nie Suchanfragen, nie persönliche Daten.
🔒

Datenschutz — local-first, ohne Konto

Kein Cookie-Banner, weil es keine Tracking-Cookies gibt. Kein Konto. Favoriten, Tagebuch und Verlauf bleiben nur auf deinem Gerät. Die Statistiken sind anonym und k-anonymisiert (Gruppen ab 5).

🍪 kein Cookie-Banner (weil cookieless) 📍 Adresse bleibt am Gerät 📊 Aggregate mit k-Anonymität ≥ 5 👤 kein Konto, kein Tracking-Profil
✅

Qualität & Fallbacks — überall

Ehrlichkeit ist keine Haltung, sondern Infrastruktur: Golden-Tests und ein Banned-Words-Gate vor jedem Merge, ein Live-Smoke-Test nach jedem Deploy. Jeder Baustein hat einen ehrlichen Rückfall.

Vor dem Merge

Golden-Tests

Scoring & Fingerprint sind eingefroren; ein Banned-Words-Gate hält den Ton ehrlich.

Nach jedem Deploy

Live-Smoke-Test

Ein Runner prüft die echte Seite: SEO-Seiten, Magazin-Prosa, Übersetzungen, Story-Voice.

Immer

Ehrliche Rückfälle

KI weg → Template. Foto weg → Gradient. Sinn fehlt → benannt, nie gefälscht.