3D Reconstruction of Teishebaini: From Geodata to an Interactive Web Fortress

Andrey Malyshev
Andrey Malyshev
8 min read
Step-by-step pipeline for rebuilding the Urartian fortress of Teishebaini—geodata, archaeological plans, PBR materials, and a WebGL/WebGPU app.
3D Reconstruction of Teishebaini: From Geodata to an Interactive Web Fortress

Teishebaini, founded in the 7th century BCE on modern-day Karmir Blur hill, was once a linchpin fortress of the Urartian Kingdom. Centuries of erosion left only pottery shards and ruined walls, yet archaeology provides enough clues to rebuild the city digitally. This case study walks through our full pipeline—from raw geodata to an interactive browser scene now available at teishebaini.lbproject.xyz.

1. Capturing Terrain with Geodata

Accurate topography is the backbone of any historical reconstruction. We began by importing hi-res orthophotos and elevation data of Karmir Blur into Blender. The raster files were converted into a dense mesh that preserved every ridge and slope. After validation against excavation trench maps, the mesh was decimated and retopologized to a low-poly LOD for real-time use, then exported as .gltf.

2. Digitising the Archaeological Plan

The published excavation blueprint—walls, courtyards, storage rooms—was traced into a clean 2-D vector inside Blender. Treating this vector as a live reference layer let us snap 3-D assets precisely to historical coordinates while keeping iteration fast.

3. Aligning Blueprint to Terrain

With terrain and plan in the same scene, the vector layer was wrapped onto the sculpted hill. Minor distortions revealed by the overlay were adjusted using excavation field notes. The resulting fortress footprint matches the physical site with high accuracy.

4. Building the 3D Scene

4.1 Modelling

Walls, bastions, granaries, and royal chambers were block-modeled using Urartian mud-brick proportions (37 × 37 × 11 cm). Tower heights referenced Assyro-Babylonian ratios; doorways were scaled against an average adult (1.7 m) where data was missing.

4.2 Texturing

Materials mirror the era: sun-baked brick, basalt foundations, wooden beams. All PBR textures were authored in Substance 3D Painter; normal maps were derived from hand-sculpted damage passes. Wall frescoes reuse motifs found on ceramics, seamlessly tiled at high resolution to avoid repetition in first-person view.

4.3 Optimisation

The target audience includes smartphones as well as desktops, so every texture was packed into atlases, models have three LOD tiers, and indirect lighting is baked into lightmaps. The final build weighs under 30 MB yet maintains 60 fps on mid-range mobile GPUs.

5. Publishing to the Web

Tech stack:

  • Next.js 14 (App Router) – SPA routing and image optimisation
  • TypeScript + Tailwind CSS – adaptive UI and type safety
  • Three.js + react-three-fiber – declarative scene graph
  • @react-three/drei – orbit controls, environment presets, soft shadows
  • Framer Motion – fire particles, water shaders, volumetric clouds

A total of 1 674 lines of code power the app. Meshopt and Draco compress geometry, while GPU-compressed textures (ASTC/Basis) load per device. Lighthouse scores 95 + for performance even on mobile data.

6 Why It Matters

Digitally resurrecting Teishebaini does more than visualise a ruin; researchers can gain a spatial context for artefacts, tourists preview the site before visiting, and educators embed the model directly in lessons. The workflow—GIS terrain → vector blueprint → parametric 3-D → WebGL/WebGPU—can scale to other historical sites worldwide.

Watch the reconstruction video

Conclusion

What began as a personal experiment has become a full testbed for digital cultural-heritage visualisation. Feedback, collaborations, and new ideas are welcome. LB Project specialises in performance-optimised WebGL/WebGPU scenes and is ready to help museums, research teams, and cultural organisations bring the past to life.

Share this article

Andrey Malyshev

Andrey Malyshev