← Projects

geospatial data · 3D rendering · generative AI · pipeline engineering

Almería Isometric

An isometric map of Almería built from real public data —PNOA LiDAR, orthophoto and Cadastre— where AI only decides what surfaces look like. Geometry is imposed by the data, not by the model.

Role
Design and implementation of the full pipeline
Period
September 2026
Status
in progress
Visibility
Case study

Local project: it has no remote repository or published viewer yet.

The idea

Image generators make pretty cities that do not exist. LiDAR and the Cadastre describe cities that do exist with centimetre precision, but they look like point clouds.

Almería Isometric attempts the opposite of the usual: use the data to impose the shape and the AI to choose only the appearance. Every building is where it is, with the height it has. What the model decides is whether that facade looks whitewashed, brick, or under construction.

It is a distinction that seems minor and is not. If geometry comes from the model, the result is an illustration. If it comes from the data, it is a map.

How it works

Five chained stages. The data is downloaded and co-registered: LiDAR, orthophoto, cadastral footprints and OSM. From that comes a digital surface model, which is what makes it possible to know what is visible and what is hidden from the camera. Then the scene is extracted and turned into a structured specification with a bounded grammar. That specification goes to appearance generation. And finally it is tiled into 96-metre pieces served as pyramids for the viewer.

Every stage stores its state per tile. When a run dies halfway through —and it dies, because LiDAR is slow— it resumes where it left off.

Occlusion is solved with ray tracing over the surface model, not with Blender’s z-buffer. I needed to know which facades are actually visible to decide where it is worth spending a generation request, and that information has to exist before the render.

The decisions that cost the most

Camera elevation. Classic isometric uses a 35.264° angle. I measured it and it shows less facade than 26°, so I broke with convention and argued why. An isometric map that does not read as strict isometric is a price I paid deliberately.

Not using the orthophoto as reference for the generative model. I tried it and it contaminates the result: the model copies the photo instead of reinterpreting the surface. It is documented as a decision and as a correction of an earlier decision.

Rejecting all four v5 variants. None passed evaluation, and instead of picking the least bad one and presenting it, it was recorded that there is no approved result. A portfolio project that shows its own rejection is more credible than one that shows only what went well.

Current state

Incomplete, and I say so on the card. There is a working viewer, there is reconstructed geometry, there are measured decisions and there is an honest record of what was rejected. There is no finished city.

Terminal mode

german@portfolio: ~/portfolio26 cmds