How Tjuvholmen in 3D was made
The model was built in Blender from map data, laser data and our own photos, with AI as a tool. Drag the slider to see the wireframe behind the finished model.

BlenderWebsiteLeft: the wireframe in Blender, with the glass roofs of the Astrup Fearnley Museum selected. Right: the same camera on the website, with light, shadows and reflections.
From map to three dimensions
The outlines of the buildings come from OpenStreetMap, and the heights and terrain from the Norwegian Mapping Authority’s laser scan of Oslo. The quays, squares and shoreline follow the laser data, with the sea at mean sea level.
Aerial photos and pictures taken at Tjuvholmen were used as references for façades, materials and details. The model is approximate: it aims to give an impression of the district, not to be an exact copy.
Built with scripts in Blender
Almost everything in the model is made by around 90 Python scripts that run in Blender: façades and windows, balconies and railings, the timber cladding on the quays, trees, boats and lights. The scripts can be run again, so a change in one place carries through everywhere.
Where something does not match reality, it is adjusted by hand in Blender, like the columns and the passage by the museum.

The model and reality
A photo taken from the bridge over the canal, towards the Royal Yacht at Filipstad, and the same view in the model. Drag the slider to see the difference.

Photo3D modelPhoto: Vidar Vestnes.
In the browser
The model is shown with three.js and WebGL, right in your browser, with nothing to install. It has around 600,000 triangles and is compressed, so it loads in a few seconds.
The light follows the time of day, with sunset, lit windows and the lights of the Oslo Tree in the evening. The water reflects the buildings, and the sea can be raised to storm surge level and to the year 2100.
Made with AI
Tjuvholmen in 3D was made by Vidar Vestnes together with Claude from Anthropic, using Claude Code. Claude wrote the scripts, controlled Blender and looked at the results, while Vidar decided what to make and checked it against reality.
The textures are originals made with AI. Artworks and murals are never copied from photos, but made in a similar style.
Facts
| Software | Blender 5.2, three.js and Claude Code |
| Scripts | Around 90 Python scripts |
| Triangles | Around 600,000 |
| Model file | Around 14 MB (9 MB when transferred) |
| Data | OpenStreetMap (© OpenStreetMap contributors), the Norwegian Mapping Authority and our own photos |
Sources: Blender · three.js · Norwegian Mapping Authority – elevation data · OpenStreetMap (© OpenStreetMap contributors, ODbL) · Claude Code