Performing a Spatial Reconstruction in Vantage
In this guide I demonstrate how to reconstruct perspectives of photos taken at protests near Brandenburger Tor. I’ll start by creating a 3d-model using Territory, then I’ll use Vantage to position and align the shots allowing me to project the imagery onto the 3d-model.
For the material I have selected two photos taken by Petra Gall at the Frauenstreiktag (International Women’s Day) 1994 as well as three photos of the Wähl Liebe Winter-CSD 2025 by Leonhard Lenz. The five images show the Brandenburger Tor in Berlin from various perspectives.
Obtaining a 3D-Model
Vantage supports importing 3d-models in the glTF (.gltf/.glb) file format. We have created Territory to quickly generate such files based on Open Street Map data and Mapzen’s open digital elevation model.
In Territory, I navigate to the area of my interest and pick the Circle tool do define the boundaries of my 3d model. Then, I can generate it. Fetching the data can take a while and, depending on size and complexity of the area, may time out from time to time. If that’s the case, try with a smaller model for now, you can always update or replace the model later.
The generated model has buildings and the ground which you can refine in the inspector. To texture the models top surface choose between different map layers or specify a custom XYZ tile server. The Code for Germany tile server features Berlin’s open data aerial imagery which I’ll be using, but I’m sure you’ll find plenty of alternatives on the web.
The quality and level of detail of open street map data varies a lot by region. Data on the height of buildings is sometimes missing or only specified as number levels. Adjust level height and fallback height to improve the models accuracy.
Enabling elevation introduces further uncertainties in terms of building height and can easily misalign things. So, for my mostly flat, small scale, and urban area I won’t bother with that. But it’s definitely worth checking out for larger scale mountainous areas.
Finally, I export the scene to obtain the .glb file. I could further refine the model in 3d modelling software, but usually this export should be enough to get started and I can always swap out models later.
Aligning Model and Photos
For the next step, I’ll open Vantage and create a new project (file → new), import the 3d model (drag and drop, or the + next to ‹models›) and my first photo (again, drag and drop, or the + next to ‹projections›).
To align models and projections I want to have a single source of truth to which I can align the rest. It’s generally easier to align projections to models then vice versa, I’m only using one model and my model already comes at a handy scale where one unit is equivalent to one meter. I won’t need to modify it any further, and lock it (edit → lock) to prevent me from accidentally doing so.
To align the projection I need to consider the perspective of the photographer. From where was the photo taken and at what angle? I roughly position my projection using the translate and rotate tools.
For precise alignment I switch to the viewfinder mode. This makes me take in the perspective of the camera and direct control over it. Keeping the mouse button pressed I can drag the projection to align with the 3d geometry. I usually look for details close to the center of the image which also shows up in the 3d model. A more detailed and fully textured model generally makes this step easier. Since I don’t have this, I will focus on how the centremost columns connect with the entablature.
After dragging the projection to match the geometry, I notice that the camera is slightly tilted. Without leaving viewfinder mode I can resolve this by adjusting the roll in the inspector.
With the image straightened, I need to fix the rest of the perspective. Here I have to take to variables into account. The focal length of the original camera which in Vantage translates to field of view (FOV) and the distance from which the image was shot. In viewfinder mode I can use the arrow keys (or WASD) to adjust the position of the camera. This usually takes some trial and error, moving back and forth and adjusting the FOV. Here it helps to focus more on details towards edge of the image. I’m facing two challenges here: Firstly, the 3d model shows a building to the right of the gate which was not yet build when the picture was taken. Secondly, the height of the custom houses flanking the gate is off. To align the perspective I’ll rely on the vertical lines of the custom houses and their columns.
Once I’m closing in on the correct perspective, I find it helps to switch in and out of viewfinder mode and to adjust the far pane so that it intersects with the 3d model. At this point though, I don’t want to spend to much time making adjustments to my first projection and rather import additional photos.
My second photo overlaps the first one. This confuses things. It’s useful to disable the projection plane in the inspector, adjust the near and far panes of the projection, or to hide the projection altogether. With both images aligned, I can change their order and compare them to one another per drag and drop in the projections sidebar. This is also quite useful to further refine their alignment.
I repeat the process for the three remaining photos, which are taken from the other side of Brandenburger Tor. With this completed I can explore my reconstruction freely and easily fly from one projection perspective to another by double clicking them in the sidebar.










