Manuel Porras

Alle Projekte / Adresse → 3D-Szene

Fallstudie · KI-Gestaltung

Von der Adresse zur 3D-Szene — Agenten, die Blender-Code schreiben

Eine Animationsserie brauchte echte Orte: den Alexanderplatz, ein Café in Neukölln, das Brandenburger Tor. Statt Meshes zu generieren, schreiben meine Agenten jeden Ort als Blender-Code — aus offenen Geodaten oder aus ein paar Fotos.

Kurz gesagt: Eine Animationsserie brauchte echte Orte wie den Alexanderplatz, ein Café in Neukölln und das Brandenburger Tor — und die Bild-zu-3D-Modelle, die ich lokal getestet habe, erfanden Details und zerfielen, sobald sie auf ein Szenenbudget reduziert wurden. Deshalb schreiben Claude-Code-Agenten jeden Ort als Blender-Python-Code in echten Metern — Straßen aus einer Adresse über offene Geodaten, Innenräume und Wahrzeichen aus Fotos und Recherche — mit automatischen Prüfungen bei jedem Build. Ergebnis: über 30 3D-Sets in 10 Tagen, 22 Orte als Code und 2–3 Minuten von der Adresse zur Straßenszene.

30+3D-Sets in 10 Tagen
2–3 Min.von der Adresse zur Straßenszene, komplett
22Orte als Blender-Code geschrieben
100 %Blender-Code — keine generierten Meshes in den fertigen Orten
3D · Modelle
3D-Modell eines Berliner Cafés: Holzboden, Tische, Lampen und Gäste, schräg von oben.

Warum nicht einfach eine KI die Meshes erzeugen lassen?

Der naheliegende Weg war Bild-zu-3D. Ich habe die Modelle lokal auf meiner GPU installiert und getestet: Hunyuan3D (2, 2.1, 2mv), TRELLIS.2, MeshAnything V2 und DeepMesh.

Sie scheitern genau dort, wo ein Filmset es sich nicht leisten kann. Modelle mit einem einzigen Bild erfinden die Rückseite — ein Straßenschild bekam einen Pfosten statt zwei. Und beim Reduzieren von rund 390.000 auf 2.000 Dreiecke, ein sinnvolles Budget für eine Szene, zerfallen sie.

Die Entscheidung: Orte sind zu 100 % Blender-Code. KI-Meshes kommen nur hinein, wenn das Endmodell von allen Seiten stimmt.

Die Entscheidung: Ein Set ist Code

Jeder Ort ist ein Blender-Python-Skript, geschrieben von Claude-Code-Agenten, in echten Metern. Low-Poly entsteht beim Bauen — flache Farbmaterialien, Boxen und Extrusionen, etwa 100 bis 1.000 Dreiecke pro Objekt — nicht durch nachträgliches Reduzieren. Ein Objekt ändern heißt, eine Zahl ändern.

Daraus sind zwei Pipelines entstanden:

A · Straßen aus einer AdresseB · Orte als Code
Eingabeeine Adresse, ein Ortsname oder KoordinatenFotos oder belegte Recherche
Geometrieaus Geodaten von einem Blender-Generator erzeugtein Blender-Skript pro Ort, von einem Agenten geschrieben
Ergebnisein Straßenblock in Metern, georeferenziertein Set mit offener Vorderseite für die Kamera, gebackenem Licht, Figuren
A · STRASSEN AUS EINER ADRESSE Adresse · Ort · lat,lon → Nominatim OSM+ Overpass OvertureGrundrisse Berlin LoD2amtlich, 3D Street ViewFarben, optional Blender, ohne OberflächeGenerator in echten Metern · 2–3 s Regelprüfung → Bericht B · ORTE ALS CODE 2 Fotos oderbelegte Recherche Agent schreibtein Blender-Skript Körpermaß-PrüfungSitze · Kniefreiheit · Gänge Licht backenCycles auf eigener GPU GLB → 3D-ViewerOrbit · Kameras · gebackenes vs. Live-Licht ein Mensch gibt jedes Modell von allen Seiten frei
Zwei Pipelines, eine Regel: Orte sind Blender-Code, keine generierten Meshes.

Pipeline A: ein Befehl, eine Adresse

  1. Geokodieren. Nominatim (OpenStreetMap) macht aus Text oder Koordinaten einen Ort mit Land und Ortstyp.
  2. Straßen und Gebäude. OpenStreetMap — Straßen, Breiten, Spuren, Gebäude, Geschosse, Dachformen, Bäume — über die API, mit drei öffentlichen Overpass-Servern als Rückfallebene.
  3. Grundrisse und Höhen. Overture Maps, direkt aus dem öffentlichen S3-Bucket als Parquet gelesen. Der langsamste Schritt.
  4. Amtliche 3D-Gebäude. Berliner LoD2-CityGML — Wände, Dächer, Traufhöhen — in dieselben lokalen Meter wie OSM umgerechnet. Vorrang: LoD2 vor Overture vor OSM, jede Wahl wird mit Begründung protokolliert. Eine erste Fassung des Alexanderplatzes entstand nur aus OpenStreetMap; die amtlichen Daten bringen die echten Dachformen und Gebäudeteile.
  5. Fassadenfarben, optional. Street View dient nur dazu, pro Fassade einen Median-Farbwert zu nehmen; gespeichert werden nur die Farben, keine Bilder. Standardmäßig aus, weil kostenpflichtig.
  6. Bauen. Blender 4.5 ohne Oberfläche baut die Szene in 2–3 Sekunden; das Ergebnis geht in den Viewer.

Jeder Schritt wird zwischengespeichert und mit Dauer protokolliert. Eine Hintergrund-Queue nimmt Aufträge an; ein kompletter Lauf von der Adresse zur Szene dauert etwa 2–3 Minuten — etwa der Marktplatz von Breslau mit 221 Gebäuden aus Overture.

Kartendaten © OpenStreetMap-Mitwirkende (ODbL) · Overture Maps (CDLA) · 3D-Gebäude: Geoportal Berlin, LoD2 (Datenlizenz Deutschland – Zero – 2.0).

Regeln statt Augenmaß

  • Eine Architektur-Prüfung bei jedem Build: kein Fenster über der Traufe, nichts an Brandwänden, kein Baum und keine Laterne im Gebäude oder vor einer Tür, kein Auto im Kamerabild. Die abgelehnten Fälle stehen gezählt im Bericht.
  • Eine Körpermaß-Prüfung für Sets: Ein Kollisionsraster misst Sitze, Kniefreiheit, den engsten Durchgang und die Kopffreiheit gegen die Körpermaße der Figuren — mit einer Draufsicht als Nachweis.
  • Eine Kamera-Prüfung: Einstellungen, in denen die sprechende Figur verdeckt ist, werden verworfen und durch eine Über-die-Schulter-Kamera ersetzt.
  • Ein Mensch entscheidet: Jedes Modell wird im Viewer von allen Seiten freigegeben — einen automatischen Vergleich mit den Fotos gibt es nicht.

Pipeline B: ein Café aus zwei Fotos

Innenräume und Wahrzeichen entstehen nicht aus einer Adresse. Ein Agent schreibt pro Ort ein Skript. Das Café in Neukölln entstand aus zwei Fotos: olivgrüne Wände, Fransenlampen, geblümte Sofas, ein lila Samtvorhang, ein großes Schaufenster, die Theke mit Espressomaschine und Kreidetafel — in einem Raum von 9 × 7 m, die Sitzhöhen an die Low-Poly-Figuren angepasst.

Wahrzeichen entstehen aus belegter Recherche, die im Kopf jedes Skripts steht — das Brandenburger Tor mit seinen 12 dorischen Säulen, der U8-Bahnhof Alexanderplatz aus öffentlichen Beschreibungen.

Das Licht wird auf meiner eigenen GPU mit Cycles gebacken (das Café: 71 Sekunden). Eine Falle, die man kennen sollte: Unter WSL2 meldete OptiX die GPU, backte aber im CPU-Tempo.

Ergebnis und ehrliche Grenzen

Über 30 Sets in 10 Tagen — rund zehn Straßenszenen aus Geodaten und 22 als Code geschriebene Orte, darunter 13 Berliner Orte, die in einem einzigen Nachtlauf registriert wurden.

Was es (noch) nicht kann:

  • „Adresse zur Szene“ deckt nur Straßen von außen ab; Innenräume werden pro Ort geschrieben.
  • LoD2-Kacheln werden von Hand geholt; lokal liegen nur wenige.
  • Geschosse und Fassaden folgen Faustregeln (3 m pro Geschoss, Fensterraster, Stilregeln pro Ort); Wahrzeichen sind von Hand codiert.
  • Die Dateien sind fürs Web schwer; die Modelle auf dieser Seite sind komprimierte Kopien.

Technik

Claude-Code-AgentenBlender 4.5 (Python, ohne Oberfläche)Cycles / CUDANominatimOpenStreetMap-API + OverpassOverture Maps (S3, Parquet, pyarrow)Berliner LoD2-CityGML (lxml, pyproj)shapelythree.jspm2-Queue