Flyover Ghent

Open-source 3D art built on real city data. Both projects use the "Gent in 3D" dataset from data.stad.gent to render the city of Ghent in the browser using Three.js.

As presented at BYOB 2025

Projects

Drones Over Ghent

Autonomous drone flocking over a 3D model of Ghent. Drones use boid algorithms to exhibit natural swarming behavior above the city skyline.

Boid flocking with autonomous agents
4 camera modes follow, chase, orbit, free-flight
Real-time GUI controls for tweaking parameters
Controls
1 2 3 4Camera: follow / chase / orbit / manualTabCycle to next droneWASDMove (manual mode)Space / ShiftFly up / downMouseLook aroundIToggle debug infoPRespawn drones

Built with Three.js and vanilla JavaScript.

Fly Over Gent

Free-flight through all of Ghent using official municipal 3D data. Explore 150+ tiles of the city with WASD controls.

WASD free-flight controls
Dynamic tile loading 150+ city tiles
Python pipeline DWG→DXF→STL preprocessing
Controls
WASDMove aroundSpace / ShiftFly up / downMouseLook aroundIToggle debug info

Built with Three.js. Python preprocessing with ODA File Converter, ezdxf, and trimesh. Lambert-72 coordinates.

Data & Pipeline

The Data

The city of Ghent publishes its full 3D model as open data through the "Gent in 3D" dataset. It covers the entire city in 1km² tiles using the Lambert-72 coordinate system — buildings as LOD2 geometry (rooftops modeled from LiDAR, walls extruded from cadastral contours) and terrain from ground-point elevation data.

Stad Gent Open Data
Processing Pipeline

The entire pipeline is automated with python run_all.py --download — it downloads all 150+ tiles from the Gent open data API, extracts the DWG files, and batch converts them to STL in parallel.

.ZIP downloaded from data.stad.gent API
download_gent_data.py
.DWG LiDAR scan data
ODA File Converter (cached)
.DXF vector geometry
ezdxf — parse 3DFACE entities
.STL triangle meshes (parallel)
trimesh — mesh export
Three.js rendered in browser
Overzichtskaart kilometer-vakken