
- 1 · 2490 BC in 3D
- 2 · 2540 BC
- 3 · Build it
- 4 · Today
- 5 · The Sphinx
Heritage sites sell their story, not just their stones. We rebuilt the Giza plateau as a Gaussian splat from one stock drone clip, found each pyramid in the model, and put it on a timeline: press a year and Khufu, Khafre and Menkaure rise to the height they had reached, in the order they were built. Gemini pictures the same view in that year from the very same camera, so you can drag between the past and the 3D model, or lift the picture itself into 3D with depth fitted to the real plateau. Hologram figures walk the plateau's real routes, hauling blocks from the quarry and up the ramp, then processing along the causeways once each pyramid is finished. The Sphinx and Elephant Rock at AlUla get their own before and after.
What we tried
- A 65-second 4K Pexels drone clip over Giza, read at 12 frames a second and cut to the sharpest frame of every four: 195 frames at 1920 px.
- COLMAP features and neighbour matching, incremental mapper: all 195 frames placed, 41,226 points, 0.56 px error, in 14 minutes.
- LichtFeld Studio trained a million-splat model in 58 minutes on one RTX 4070 (sharing it with another job), one frame in eight held back to score.
- Each pyramid was marked by eye on one frame and located in 3D through the points that frame sees. Scale from Khafre's height (136.4 m); Menkaure then measures 58.8 m against 61.0 m.
- A hidden box over each pyramid cuts away everything above the height it had reached, with a gold band at the cut, driven by the reigns: Khufu, Khafre, Menkaure.
- Gemini 3.1 Flash Image edited the real key frame for each year with a written brief. Ten pictures cost $0.68; two were redone because the first tries got the building order wrong.
- Depth Anything V2 Small gave each picture relative depth, fitted to the key frame's solved points, and every pixel became a Gaussian in the model's own space. Apple's SHARP does this better but its weights are research-only.
- Routes for the figures (quarry, workers' town, causeways) come from map coordinates fitted to the three pyramids, and the ground under them from the solved points.
What we measured
| Measure | Check | Result | Note |
|---|---|---|---|
| Frames placed by the camera solve | — | 195 of 195 | 0.56 px average error |
| Held-out frames, rebuilt vs real | — | 35.4 dB PSNR | SSIM 0.930, LPIPS 0.163 |
| Menkaure's height in the model | 61.0 m (real) | 58.8 m | Scale set by Khafre; Khufu not measured |
| Depth of the real frame vs solved points, held out | — | 3.0% median error | 90th percentile 10.6% |
| Map fit on the three pyramids | — | 10 to 21 m | Model 3.6% larger than the map |
| Browser download | — | 2.9 MB preview, 13.8 MB full | Pictures in 3D 2.4 MB each |
| Gemini pictures | — | 10 for $0.68 | Gemini 3.1 Flash Image at 1K |
What went wrong
- Finding the pyramids automatically picked a building in the city as a peak, so each pyramid was marked by hand on one frame.
- Khufu hides behind Khafre for most of the flight: its top is poorly seen and its measured height (90 m) is wrong, so it is shown at its real height instead.
- Gemini's first picture of 2540 BC put the half-built pyramid on Menkaure's site and left Khufu out; the Sphinx's first carving scene showed today's eroded face. Both were redone with plainer briefs.
- A person at true size is invisible from 330 m up, and the ground is blurred close in, because the drone never saw that detail. The figures are drawn three times life size and the close-up stays high.
What happens next
- A site's own drone flight around all four sides, so every face is sharp.
- Figures from motion capture instead of stick figures, and a guided audio tour.
Built with
- COLMAP (camera solve) BSD-3-Clause
- LichtFeld Studio (splat training) GPL-3.0
- Gemini 3.1 Flash Image (pictures of the past) Google Gemini API
- Depth Anything V2 Small (depth for the pictures) Apache-2.0
- Spark 2.2 MIT
- three.js MIT