Thesis
Numbers first, then the model
There are two ways to build this. The first is to model the pyramids beautifully and paint the claims on afterwards as annotations. The second is to put the numbers first: every dimension lives in a database with its source and its uncertainty, the geometry is generated from those numbers, and each claim is a formula over the same numbers. The second way is what makes the model high fidelity rather than a poster. It is also far more interesting to use. Switch the survey from Petrie 1883 to Dash 2015, nudge the cubit by a millimetre, drag the sky back to 10,500 BCE, and watch each claim's residual move in real time.
Five rules follow from that, and every later section is an application of them.
- I
One source of truth. Every number has provenance: who measured it, when, how, and with what error. Nothing is typed twice.
- II
Claims are data. A claim is a file: inputs, formula, target, tolerance, sources, and an overlay spec. Adding a claim never touches app code.
- III
Two monuments. "As built" (reconstructed, with casing and pyramidion, carrying error bars) and "as today" (stripped, 8 m shorter). Claims are about the first; the evidence comes from the second.
- IV
Show the fit. Each overlay displays measured versus claimed, the residual, and a count of the free choices the claim needed: which base line, which unit, which epoch. The app never says true or false. It shows the number.
- V
One frame. Origin at the Great Pyramid's base centre, axes east-north-up, georeferenced to WGS84. The Heliopolis line, the shaft alignments and the equinox sun all live in the same coordinates.
Deliverables
Six things that exist at the end
- D1
Measurement database
Versioned JSON with a schema, one record per dimension, provenance on every value, and named survey presets.
- D2
Claims registry and dossier
One YAML file per claim; a generated document (Markdown and PDF) with the maths, the fit and the sources for each.
- D3
Parametric geometry library
TypeScript that turns D1 into meshes, plus a landmarks file naming every point and axis a claim can reference.
- D4
Blender scene
Plateau terrain, all structures, materials, LODs, exported glTF, and the hero renders and animations.
- D5
Web app
Viewer with layer toggles, section cuts, a walk-in interior, a real sky with a time scrubber, and one overlay per claim.
- D6
Deployment
Static build on Cloudflare Pages, with a README and the dossier alongside.
Scope
The site, in four tiers
The necropolis is enormous. Tiers keep the mastaba fields from eating the schedule while still giving the plateau its real shape.
| Tier | Structures | Treatment |
|---|---|---|
| 1 | Great Pyramid (G1, Khufu) | Fully parametric exterior with concavity, casing shell, corner sockets and pyramidion. Full interior: descending passage, subterranean chamber, ascending passage, Grand Gallery, Queen's Chamber and shafts, King's Chamber with relieving chambers and shafts, well shaft and grotto, al-Ma'mun's tunnel, the ScanPyramids Big Void and north-face corridor. |
| 2 | Khafre (G2), Menkaure (G3) | Parametric exterior from survey values (G2 keeps its casing cap; G3 its granite lower courses). Interiors as passages and chambers only, from published plans. |
| 3 | Queens' pyramids (G1-a, b, c; G3-a, b, c), satellite pyramids, mortuary and valley temples, causeways, Sphinx Temple, boat pits, Wall of the Crow, Khentkawes, the Eastern and Western mastaba fields | Massed from footprints (Giza Plateau Mapping Project plans, OpenStreetMap) with correct heights. No interiors. |
| 4 | The Sphinx | Sculptural. A Blender sculpt over Lehner's ARCE Sphinx Project plans, with the CC-BY hobbyist scans as reference only; no survey-grade mesh is public. |
| T | Terrain | Copernicus GLO-30 DEM as the base, refined with the GPMP contours around the monuments; low-resolution Nile valley and Cairo for context and for the Heliopolis and Delta overlays. |
Plate I
The Great Pyramid in section
Drawn to scale from the survey values below, north on the left. Solid lines are the monument as built. Dashed lines mark today's truncated top and the two ScanPyramids discoveries. Blue lines are the four shafts, the subject of claim C2. This is the thing Tier 1 produces, in outline.
- 1 Entrance, north face, 17 m up
- 2 Descending passage, 26°31′
- 3 Subterranean chamber, 30 m below base
- 4 Ascending passage, 26°02′
- 5 Queen's Chamber, on the axis
- 6 Grand Gallery, 46.7 m, seven corbels
- 7 King's Chamber, 20 × 10 × 11.18 rc
- 8 Five relieving chambers
- 9 King's Chamber shafts, 45° S and 32°28′ N
- 10 Queen's Chamber shafts, 39°36′ S and 39°07′ N, blocked
- 11 ScanPyramids Big Void (2017), position approximate
- 12 North-face corridor (2023), 9 m
D1
Measurement database
The most valuable and most tedious deliverable. A few hundred records, each hand-entered from a primary source with its uncertainty. The sources rank as follows, and a record always names which one it came from.
- Petrie 1883, The Pyramids and Temples of Gizeh. The base survey for the interior and the casing angle; public domain; measured in British inches.
- Cole 1925, Survey of Egypt Paper 39. The classic base-and-orientation survey of G1, per side.
- Glen Dash Foundation with AERA, 2012–2018. Modern total-station survey of the G1 base, corners and orientation.
- Lehner & Hawass 2017, Giza and the Pyramids. The canonical rounded values for everything on the plateau; the default preset.
- Maragioglio & Rinaldi 1965, vol. IV. Measured drawings of every interior element.
- Gantenbrink 1993, the Upuaut robot survey. The only precise geometry of the four shafts, including the bends.
- ScanPyramids: Morishima et al. 2017 (Big Void), Procureur et al. 2023 (north-face corridor).
- Legon 1979 and Dorner's survey for the relative positions of the three pyramids; Nell & Ruggles 2014 for orientations across the site.
Starting sheet
These are the values I would seed the database with. Every one gets re-verified against its primary source in Phase 0; this table is a starting sheet, not the database.
| Quantity | Value | Royal cubits | Source | Note |
|---|---|---|---|---|
| G1 base, mean side | 230.33 m | 440 | Lehner & Hawass; Cole 1925 gives 230.36; Dash 2015 gives 230.363 (sides 230.33–230.41) | Sides differ by up to ~20 cm. Store all four, and store casing edge and socket corner separately. |
| G1 height, original | 146.59 m | 280 | Petrie, projected from the casing angle | The apex is a projection with error bars. Today's top is 138.75 m. |
| G1 face slope | 51°50′40″ | seked 5½ | Petrie, ±2′ | Seked 5½ is 51°50′34″. See claim A3. |
| G1 orientation | ≈ 3–4′ W of N | - | Cole; Dash; Nell & Ruggles | Per side. The arc-minutes are the point of claim C1. |
| G1 concavity | ≈ 0.9 m | - | Petrie; aerial photographs | Indent at the centre of each base side, measured on the core. Whether the casing followed it is disputed. |
| G1 arris (corner edge) angle | 41°59′ | - | Derived | Some claims quote the edge rather than the face. Store both. |
| Royal cubit | 0.5236 m (20.62 in) | 1 | Petrie, from the King's Chamber | Egypt-wide range 0.523–0.529 m. The single most sensitive parameter in the registry. |
| King's Chamber | 10.47 × 5.24 × 5.84 m | 20 × 10 × 11.18 | Petrie | Floor 42.9 m above base, slightly south of the axis. Granite. |
| Queen's Chamber | 5.75 × 5.23 m, gable 6.23 m | 11 × 10 | Petrie | On the central axis, 21 m up. |
| Grand Gallery | 46.7 m long, 8.6 m high, 2.06 m at floor | - | Petrie; Maragioglio & Rinaldi | Seven corbels; slope 26°02′. |
| Descending passage | 26°31′23″, 1.05 × 1.20 m | - | Petrie | 105 m to the subterranean chamber. |
| Shafts | KC-S 45°, KC-N 32°28′, QC-S 39°36′, QC-N 39°07′ | - | Gantenbrink 1993, Upuaut report (mirror at isida-project.org) | The Queen's north shaft bends around the gallery. Model from his polylines, re-drawn from the published figures, not from one angle. |
| G2 Khafre | 215.25 m base, 143.5 m high, 53°10′ | 411 × 274 | Lehner & Hawass | Seked 5¼, the 3-4-5 triangle. Sits about 10 m higher on the plateau. |
| G3 Menkaure | 102.2 × 104.6 m base, 65 m high, 51°20′ | ≈ 200 × 125 | Lehner & Hawass | Granite casing on the lower sixteen courses. |
| Sphinx | 73 m long, 20 m high, 19 m wide | - | Lehner, ARCE Sphinx Project | Carved in place; faces due east. |
| G1 position | 29°58′45″ N, 31°08′03″ E, base ≈ 60 m ASL | - | Dash; DEM | The datum matters at the 10 m level. See claim B3. |
Record shape
One record per measured quantity. Derived quantities (perimeter, apothem, volume) are never stored; the geometry library computes them so they cannot drift from their inputs.
{
"id": "g1.base.side.north",
"structure": "g1",
"quantity": "length",
"value": 230.253,
"unit": "m",
"sigma": 0.02,
"source": "cole-1925",
"method": "casing-edge",
"note": "north side, casing baseline"
}
Presets bundle a coherent set of records: petrie-1883, cole-1925, dash-2015, and canonical (Lehner & Hawass rounded values, the default). Switching preset regenerates the geometry and re-evaluates every claim. Units are metres internally, with royal cubits, British inches and Smyth's pyramid inch (1.001 in) as display units, because several claims only work in one of them.
D2
Claims registry
Each claim is a card with the same six parts: what it claims, what it compares, the fit against the current preset, how many free choices it needed, its sources for and against, and the overlay it draws. Fits below are computed from the starting sheet with a 0.5236 m cubit. The n column counts free choices: a decision the proponent made that changes the answer, such as picking the socket base over the casing base, an invented unit, or an epoch. Zero means the number falls out of the monument with no help.
A · Proportion and geometry of the Great Pyramid
| ID | Claim | Compares | Fit | n | Overlay |
|---|---|---|---|---|---|
| A1 | π in the profile | Perimeter ÷ height against 2π | 6.2850 vs 6.2832 · +0.03 % | 0 | Ghost "π pyramid" over the model; maths panel |
| A2 | φ in the face | Apothem ÷ half-base against φ (the Kepler triangle); Herodotus' "face area = height²" | 1.6187 vs 1.6180 · +0.04 % | 0 | Ghost "φ pyramid"; the face-area square laid flat |
| A3 | Seked 5½ explains both | Measured 51°50′40″ against seked 5½ (51°50′34″), the π pyramid (51°51′14″) and the φ pyramid (51°49′38″) | spread 1′36″, under Petrie's ±2′ | 0 | Three ghost profiles inside the survey error band; the pyramid cannot tell them apart |
| A4 | King's Chamber 3-4-5 | 20 × 10 × 11.18 rc: wall diagonal 15, floor diagonal √500, space diagonal 25 | height −0.2 % (Petrie) | 1 | Wireframe diagonals inside the chamber, walk-in view |
| A5 | The cubit itself | 0.5236 m against π/6 (0.52360) and φ²/5 (0.52361) | −0.03 % | 1 | Panel. Note that π/6 and φ²/5 agree to 0.002 % with no help from Egypt. |
| A6 | Eight sides | Concavity of ~0.9 m per face, visible at equinox grazing light | measured on the core | 0 | Concavity shape key plus the equinox sun |
| A7 | Khafre's 3-4-5 | 53°10′ against seked 5¼, which is arctan(4/3) = 53°07′48″ | +2′ | 0 | Ghost profile on G2 |
B · Earth and cosmos scale
| ID | Claim | Compares | Fit | n | Overlay |
|---|---|---|---|---|---|
| B1 | 1 : 43,200 | Height × 43,200 against the polar radius; perimeter × 43,200 against the equatorial circumference | 6,333 vs 6,357 km · −0.38 % 39,801 vs 40,075 km · −0.68 % | 2 | A ghost Earth scaled into the scene; the 72 × 600 precession link as a panel |
| B2 | Height × 10⁹ = Earth–Sun distance | 146.6 Gm against 1 AU (149.6) and against perihelion (147.1) | −2.0 % · −0.35 % | 2 | Panel |
| B3 | Latitude equals the speed of light | 29.9792458° N against the base centre at 29°58′45″ N | ≈ 9 m apart, inside the footprint | 3 | Map inset with a datum toggle (WGS84, Old Egyptian 1907). The datum shift alone moves the centre further than the residual. |
| B4 | Pyramid inch and the year | Side = 9,131 P″ = 365.24 × 25, against the casing base (9,069 in) and the socket base (≈ 9,126 in) | −0.8 % · −0.2 % | 3 | Socket outline versus casing outline on the ground; unit selector |
| B5 | Half a minute of equatorial arc | Perimeter against 927.7 m | −0.68 % | 2 | Panel noting this is B1's second half restated: 43,200 = 2 × 21,600 |
| B6 | Centre of the land | G1's meridian and parallel cross more land than any other (Smyth) | computed from Natural Earth polygons | 2 | Globe inset with the land-crossing curves for every meridian and parallel |
C · Sky
| ID | Claim | Compares | Fit | n | Overlay |
|---|---|---|---|---|---|
| C1 | True north | G1's sides against the meridian, ≈ 3–4′ west; how it was done (Dash: equinox shadow; Spence: simultaneous transit of Mizar and Kochab, which dates it to 2467 BCE) | measured | 0 | Compass rose at the base; animated star-pair and shadow methods |
| C2 | Shafts point at stars | KC-S 45° at Alnitak, KC-N 32°28′ at Thuban, QC-S 39°36′ at Sirius, QC-N 39°07′ at Kochab, c. 2450 BCE | app solves the best-fit epoch per shaft | 2 | Shaft axes extended to the sky dome; chart of each star's transit altitude against epoch, with the shaft angle as a horizontal line |
| C3 | Descending passage and the pole star | 26°31′ against Thuban's lower culmination, c. 2170 BCE | app | 1 | Passage axis to the sky; Thuban's circumpolar circle |
| C4 | Orion Correlation | Three pyramids against Alnitak, Alnilam and Mintaka, including Menkaure's offset; belt on the meridian in 10,450 BCE | app: belt tilt and transit altitude against epoch | 3 | Sky projected onto the plateau with Krupp's inversion toggle; Nile against the Milky Way |
| C5 | Sphinx and Leo | Due-east gaze against Leo rising before the vernal equinox sunrise in 10,500 BCE | app | 2 | Sunrise azimuth ribbon across epochs; Leo's figure on the horizon |
| C6 | Solstice akhet | From the Sphinx, the summer solstice sun sets between G1 and G2, drawing the akhet glyph (Lehner) | measured | 0 | Sun path from the Sphinx's viewpoint |
| C7 | Cygnus alternative | Collins' mapping, same engine, different constellation | app | 3 | Reuses C4's overlay with a constellation selector |
D · Site plan and geodesy
| ID | Claim | Compares | Fit | n | Overlay |
|---|---|---|---|---|---|
| D1 | Giza diagonal to Heliopolis | Line through the pyramids' south-east corners against the bearing to the Senusret I obelisk (≈ 45°) | app | 1 | Line across the terrain to the obelisk 17 km away |
| D2 | Legon's rectangle | The three pyramids fit 1000√2 × 1000√3 cubits (1,417.5 × 1,732 rc) | app, from Dorner's positions | 1 | Rectangle on the ground with corner residuals |
| D3 | Prime meridian and the Delta | G1's meridian bisects the Nile Delta; G1 sits at the apex of the Delta quadrant (Stecchini) | app, with Delta polygons | 2 | Meridian and quadrant arcs over the context terrain |
| D4 | Sphinx axis and the temples | Sphinx east–west axis, Sphinx Temple and Khafre's valley temple alignments | measured | 0 | Axis lines on the plateau |
E · Mass and construction, for context
Not claims, but numbers the overlays lean on: volume 2.59 million m³ from b²h/3; about 2.3 million blocks and 6 million tonnes; a 20-year build implies one block placed every three to four minutes of daylight; 203 courses survive, and Petrie measured every one of them, which is what drives the stepped profile in the "today" model.
Claim file
id: A1 title: π in the profile group: proportion inputs: [g1.base.perimeter, g1.height.original] formula: perimeter / height target: 2π tolerance: 0.5% free_choices: [] overlay: type: ghost-profile slope: atan(4/π) sources: for: [smyth-1864, tompkins-1971, hancock-1995] context: [petrie-1883, rossi-2004]
Optional module, cheap once the registry exists: a coincidence explorer that takes any two quantities from the database and searches for ratios and products near famous constants. It shows how many "hits" a monument with this many measurable numbers produces by chance, which is the honest baseline for judging any single claim.
packages/sky
Sky engine
Half the claims are about the sky, and the interesting epochs are 4,500 and 12,500 years ago. Standard astronomy code is not built for that, so this package needs care.
- Catalogue. HYG 4.2, which merges Hipparcos, the Yale Bright Star Catalogue and Gliese with proper motions and parallax in one CSV (CC BY-SA 4.0). Named subsets for Orion's belt, Sirius, Thuban, Kochab, Mizar and Regulus.
- Precession. The Vondrák, Capitaine and Wallace 2011 long-term model, valid for ±200,000 years. The IAU 2006 polynomials most libraries ship are wrong by degrees at 10,500 BCE, which is exactly where the Orion and Leo claims live. The model is a few coefficient tables; implement it in-house if no package does.
- Proper motion. Rigorous space motion. Sirius moves about 4.5° in 12,500 years; the belt stars barely move, which is why the belt's shape survives and Sirius' shaft alignment is epoch-sensitive.
- Frames. ICRS to mean equator of date (Vondrák), to horizontal altitude and azimuth at 29.9792° N, 31.1342° E through local sidereal time, to scene east-north-up. Refraction of about 34′ at the horizon and a local horizon profile for rising and setting claims.
- Sun. VSOP87-based positions from astronomy-engine; equinox and solstice events; ΔT matters for clock times of sunrise, not for its direction.
- Calendar. Julian Day numbers throughout, proleptic Julian calendar for BCE dates, astronomical year numbering (10,500 BCE is year −10499).
- Validation. Match Stellarium, which also uses Vondrák, for Alnitak's meridian-transit altitude at −2500 and −10500 before any sky overlay ships.
Architecture
One monorepo, one data flow
Everything downstream is generated from the measurement database. Blender and the web app consume the same glTF and the same landmark names, so a chamber centroid means the same point in a cinematic render and in a claim overlay.
seked/
data/
measurements/ one JSON file per structure
presets/ petrie-1883 · cole-1925 · dash-2015 · canonical
stars/ BSC5 + Hipparcos subset, as JSON
terrain/ DEM references and the local-frame transform
packages/
units/ cubit · pyramid inch · seked ↔ degrees
geometry/ pyramid() · passage() · chamber() · shaft() → buffers + landmarks
sky/ vondrak.ts · frames.ts · sun.ts · catalogue.ts
claims/ loader · evaluators · overlay descriptors
blender/
generate.py bpy: build meshes from data/
terrain.py BlenderGIS import and re-origin
export.py glTF per structure
scenes/ .blend files: plateau, sphinx, materials, cinematic
apps/web/ Vite + React + R3F
docs/
dossier/ generated from the registry
sources.md · decisions.md
Stack
- Language. TypeScript everywhere; Python only inside Blender. The geometry library is pure TypeScript so Blender, the web app and the tests all get identical vertices.
- Tooling. pnpm workspaces, Vite, Vitest, zod schemas on every data file.
- 3D. three, @react-three/fiber, @react-three/drei, @react-three/postprocessing. Optional "today" layer via NASA-AMMOS 3d-tiles-renderer streaming Google Photorealistic 3D Tiles.
- State. zustand for the layer, preset, time and claim state; URL-encoded so a view is shareable.
- Astronomy. astronomy-engine for the Sun and coordinate utilities; in-house Vondrák 2011 precession written from the paper, since no maintained npm package implements it.
- Geo. proj4 for WGS84 to local east-north-up; QGIS to prepare the DEM and orthophoto in a projected CRS before Blender sees them.
- Assets. Blender 4.2 LTS with BlenderGIS; gltf-transform for Draco and KTX2 after export.
- Frame conventions. Origin at the G1 base centre; +X east, +Y north, +Z up in data and Blender; the glTF exporter converts to Y-up for the web. Metres everywhere.
- Deploy. Static build to Cloudflare Pages.
D4
Blender pipeline
For when you are home. The rule is that Blender models what only Blender can, and generates the rest.
- Generate, don't model. A bpy script reads the measurement files and builds exact-vertex meshes for G1, G2 and G3. Concavity is a shape key from 0 (flat) to 1 (0.9 m). The casing is a separate shell, so "today" is hide the casing and cap the core at 138.75 m.
- Real courses. Geometry Nodes instance the 203 surviving courses with Petrie's measured course heights, so the stripped profile shows the actual thick courses at 35, 44 and 67 rather than a uniform staircase. This is the single cheapest fidelity win in the project.
- Interior as separate solids. Chambers, passages, gallery and shafts are their own objects. Section views in the viewer come from clipping planes; a boolean-cut master exists for renders only.
- Terrain. BlenderGIS imports the DEM and orthophoto in a projected CRS; re-origin to the G1 base centre; check the base elevations against the survey before anything sits on it.
- Sphinx. A sculpt over Lehner's 1:50 plans, with the CC-BY scans open in a reference window. Temples and mastabas are extruded footprints with real heights.
- Materials. Tura casing (smooth, near white), nummulitic core (tan, course lines), Aswan granite (King's Chamber, G3's lower courses, G2's bottom course), basalt paving on the temple floors. Keep PBR to base colour, roughness and normal, and bake.
- Export. One uncompressed GLB per structure from Blender, then gltf-transform for compression, KTX2 textures and deduplication, since Blender's exporter does not write KTX2. The Z-up to Y-up conversion is the exporter's job; the origin convention is preserved.
- Renders. Equinox dawn from the east to show eight faces; the cutaway; and a sky-rollback animation whose star positions are baked from the sky package to CSV, so Blender and the web never disagree about where Alnitak was.
Schedule
Six phases
Durations assume evenings and weekends and are estimates. Each phase ends with a "done when" that can be checked, not felt.
- 0Weekend 1
Foundation
Repo scaffold, the record schema, G1 exterior and interior values from Petrie, claims A1, A2 and B1 in the registry, and unit tests that recompute the perimeter-to-height ratio.
Done when
pnpm testis green and the dossier renders three claim cards from data alone. - 1Weeks 1–2
Geometry
G1 exterior with seked, concavity, casing and core, and truncation. Interior solids. The landmarks file. glTF export and a Blender import that proves the round trip.
Done when Petrie's derived numbers (apothem, volume, the 41°59′ arris angle) come out of the model, not the database.
- 2Weeks 2–4
Blender
Terrain, G2 and G3, Tier 3 masses, the Sphinx, materials, LODs, exports, and the first hero render.
Done when the whole plateau loads in the viewer under a triangle budget of about 1.5 million at the closest LOD.
- 3Weeks 3–5
Viewer
Scene loading, camera modes (orbit, fly, walk the passages), section plane, layer panel, sky dome with sun and a time scrubber from 12,000 BCE to today.
Done when Alnitak's transit altitude matches Stellarium at −2500 and −10500 to within an arc-minute.
- 4Weeks 5–8
Overlays
Group A, then B, then C, then D. Each claim gets its overlay, its maths panel, a sensitivity control and its sources. The preset switch and the cubit slider live here.
Done when every card in the registry renders in 3D and the dossier regenerates from the same files.
- 5Weeks 8–10
Polish and ship
Tour mode as a narrated sequence of views, dossier export, the Blender cinematic, deployment, README.
Done when a stranger can open the URL, click one claim, and understand what it says and how well it fits.
Risks
The hard parts, named
- Surveys disagree. The base differs by up to about 10 cm across Petrie, Cole and Dash, and the original height is projected from a surviving casing angle. Values are ranges, not points, and the overlays show the band.
- Which base? Casing edge versus socket corners changes the perimeter by roughly 1.4 m. Several classic claims silently pick whichever fits. Both are first-class in the database.
- Precession validity. IAU 2006 is wrong by degrees at 10,500 BCE. Use Vondrák or the Orion overlay is fiction in both directions.
- Interior geometry. The shafts are only known from Gantenbrink, and the Queen's north shaft bends. Model from polylines. Treat the ScanPyramids void as a position with error bars.
- Concavity. Measured on the core; whether the casing followed it is disputed. Ship both as a toggle and say so.
- Licensing. Google 3D Tiles require attribution and forbid extraction; Sketchfab scans are CC-BY but hobbyist grade; Digital Giza offers viewers, not downloads; Gantenbrink's drawings survive only on a mirror with no stated terms. Numbers from papers are facts and free to use.
- Scope. The tiers exist so Menkaure's interior and the mastaba fields cannot eat the schedule.
- Performance. Forty structures, terrain, 9,000 stars and the shafts. Budget about 1.5 million triangles at the closest LOD, lazy-load per structure, and keep the stars on a single point cloud.
Sourcing
Sourcing check
What is actually downloadable, under what terms, checked today. Items marked unverified could not be confirmed from a primary source and need a look from home.
Assets and terrain
| Item | Where | Terms | Use in this project |
|---|---|---|---|
| Harvard Digital Giza / Giza 3D | giza.fas.harvard.edu/giza3d | In-browser viewers only; no download link or reuse licence found (unverified whether any mesh is available on request) | Reference. Email the project if a survey mesh would change the plan. |
| Sketchfab scans of the Sphinx and the Great Pyramid | Sketchfab | CC Attribution; hobbyist photogrammetry, not survey grade | Reference for the Sphinx sculpt, not geometry for the model. |
| Copernicus GLO-30 DEM | OpenTopography, AWS Open Data | Free with attribution under the Copernicus DEM licence | Base terrain. No public LiDAR or photogrammetry DEM of the plateau was found, so the ground near the monuments is shaped from the GPMP contours and the surveyed base elevations. |
| Google Photorealistic 3D Tiles | 3d-tiles-renderer (Apache-2.0) with its Google auth plugin and attribution overlay | Policies: attribution required; no caching beyond HTTP headers; no extracting, tracing or deriving 3D objects. API key and billing. | Live "today" layer only, never a Blender source. Optional, Phase 5. |
Survey data
| Item | Where | Terms | Notes |
|---|---|---|---|
| Dash 2015, "The Great Pyramid's Footprint", AERAgram 16(2) | dashfoundation.com (reachable 13 September 2026), also on Academia; publication index | Published paper; numbers are free to use | The paper states a mean side of 230.363 m from 84 casing-baseline points (p. 10), per-side lengths of 230.329 (N), 230.334 (E), 230.384 (S) and 230.407 (W) m with 95 % bounds (Table 1, p. 11), and a mean casing azimuth of −3′54″ ± 44″ (Table 3). The 230.234–230.483 m bounds quoted by secondary sources do not appear in it. Entered and verified in data/measurements/g1.json. Dash 2012 "New Angles on the Great Pyramid" is at aeraweb.org. |
| Petrie 1883 | Birdsall transcription with tables and plates; archive.org scan | Public domain | Chapter 5 for coordinates, 6 for the outside, 13 for orientation. The course table is in the plates. |
| Cole 1925, Survey of Egypt Paper 39 | PDF, also on Scribd | Egyptian government publication; copyright status unclear; the numbers are free to use | Per-side base lengths and orientation. |
| Gantenbrink, Upuaut shaft survey | cheops.org is gone (the domain is now unrelated). Mirror with the report, CAD drawings and photographs at isida-project.org; try the Wayback Machine for the original | No terms stated; treat as copyrighted and cite | Whether the DXF the original site offered is still served is unverified. Plan on re-drawing the shaft polylines from the published figures. |
| Nell & Ruggles 2014, JHA 45(3) | arXiv preprint, free | Paper | Per-structure azimuths for the whole site are in the paper; not yet extracted. |
ScanPyramids
- Big Void. Morishima et al., Nature 552, 386–390 (2017), open access; arXiv PDF. Cross-section similar to the Grand Gallery, at least 30 m long, above the gallery. The paper leaves the inclination open, so the model carries it as a position with error bars and an inclination toggle.
- North-face corridor. Procureur et al., Nature Communications 14, 1144 (2023), open access, CC BY. About 9 m long, about 2 × 2 m in section, directly behind the chevrons above the original entrance. A 2025 resistivity follow-up in Scientific Reports confirms it.
Astronomy in JavaScript
- astronomy-engine (MIT) is right for the Sun, Moon and coordinate utilities. Its precession is the IAU 2006 polynomial, so it is not used for star positions at −10500.
- Vondrák 2011 has no maintained npm package. Implement it from the paper, which is two coefficient tables; a reference JavaScript snippet exists at astrogreg.com, and a package named falcon-ephemeris claims it (unverified). Stellarium's
precession.cis GPL-2, so port it only if the whole package can be GPL. - Stellarium is confirmed to use Vondrák 2011 in its source, so it stands as the validation reference.
- Star data. HYG 4.2 (CC BY-SA 4.0) merges Hipparcos, the Yale catalogue and Gliese with proper motions in one CSV, and is the easiest single file. BSC5 JSON mirrors exist on GitHub; the catalogue itself is public domain, the repositories carry their own licences.
Blender tooling
- BlenderGIS (GPL-3) is the standard for GeoTIFF and HGT import with a CRS. A third-party site claims Blender 4.x support from v2.2.15; check the official releases before installing.
- glTF. Blender's exporter does Draco but not KTX2. Export an uncompressed GLB, then run gltf-transform for compression and KTX2 textures; three.js loads the result with GLTFLoader plus the Draco and KTX2 loaders. Draco is pointless for the pyramid solids, which are a few hundred polygons; KTX2 matters for the terrain textures.
What this changes in the plan
- The shafts are re-drawn from Gantenbrink's published figures on the mirror, not imported from a DXF, unless the DXF turns up.
- The Sphinx is a sculpt over Lehner's plans with the CC-BY scan as reference. No survey-grade mesh is available.
- Vondrák precession is written in-house from the paper. astronomy-engine is used for the Sun only.
- HYG 4.2 replaces the planned join of the Yale catalogue and Hipparcos.
- The Google 3D Tiles layer stays optional and live-only, which the terms require anyway.
Discussion
Decisions to talk through
- 1
Product shape. Web app plus Blender assets, a Blender-only film, or a game engine build.
Recommendation: web app plus Blender. It is the only shape where the claims are interactive, and it is shareable by URL.
- 2
First claim set. Which claims are in version one.
Recommendation: A1–A4, B1–B3 and C1–C4, twelve claims that exercise every overlay type (ghost profile, chamber wireframe, scaled Earth, map inset, sky projection).
- 3
The "today" layer. Google Photorealistic 3D Tiles (needs an API key and attribution), CC scans, or none.
Recommendation: start with none; the "today" model comes from the truncated core and Petrie's courses. Add 3D Tiles in Phase 5 if the terms fit.
- 4
The Sphinx. Scan, sculpt, or stylised massing.
Recommendation: scan if a CC-BY one checks out, otherwise a sculpt. Massing would undercut the word "high fidelity".
- 5
Tone of the copy. Test bench, advocacy, or debunk. The model is identical in all three; only the words change.
Recommendation: test bench. Show measured, claimed, residual and free choices, and let the reader decide. It is the most defensible and the most interesting.
- 6
Interiors for Khafre and Menkaure. Full or passages only.
Recommendation: passages and chambers only, from published plans. No claim depends on their interiors.
- 7
Repository. New repo, public or private, monorepo as above.
Recommendation: new private monorepo named after the working name, made public when the first overlays work.
- 8
Name. "Seked" is a placeholder that happens to be on-topic.
Recommendation: keep it until something better appears; it costs nothing to rename before Phase 1.
Setup
First evening at home
- Install Blender 4.2 LTS and BlenderGIS from its official releases page, checking the 4.x compatibility note.
- Install QGIS.
- Install Node 22 and pnpm; scaffold the monorepo from the tree above.
- Download Petrie 1883 (Birdsall's transcription and the archive.org scan) and the Cole 1925 PDF.
- Download HYG 4.2 and cut it to stars brighter than magnitude 6.5.
- Download the Copernicus GLO-30 DEM tile N29 E031, which covers the plateau.
- Install Stellarium, set the location to Giza, and screenshot Alnitak's transit at −2500 for the validation test.
- Enter the starting sheet into the database, one record at a time, with the page number of its source.
Sources
Reading list
- Petrie, W. M. F. (1883). The Pyramids and Temples of Gizeh. The base survey; public domain.
- Cole, J. H. (1925). Determination of the Exact Size and Orientation of the Great Pyramid of Giza. Survey of Egypt Paper 39.
- Dash, G. (2015–2018). AERAgram and Journal of Ancient Egyptian Architecture papers on the G1 base and orientation.
- Lehner, M. and Hawass, Z. (2017). Giza and the Pyramids. The modern reference.
- Lehner, M. (1997). The Complete Pyramids.
- Maragioglio, V. and Rinaldi, C. (1965). L'Architettura delle Piramidi Menfite, vol. IV. Interior drawings.
- Gantenbrink, R. (1993 onward). The Upuaut shaft survey; cheops.org is offline, mirrored at isida-project.org.
- Morishima, K. et al. (2017). Nature 552, 386–390. The Big Void.
- Procureur, S. et al. (2023). Nature Communications 14. The north-face corridor.
- Legon, J. A. R. (1979). "The Plan of the Giza Pyramids." Archaeological Reports of the Archaeology Society of Staten Island.
- Nell, E. and Ruggles, C. (2014). "The orientations of the Giza pyramids and associated structures." Journal for the History of Astronomy 45.
- Spence, K. (2000). "Ancient Egyptian chronology and the astronomical orientation of pyramids." Nature 408.
- Rossi, C. (2004). Architecture and Mathematics in Ancient Egypt. The seked explanation.
- Vondrák, J., Capitaine, N. and Wallace, P. (2011). "New precession expressions, valid for long time intervals." Astronomy & Astrophysics 534, A22.
- Smyth, C. P. (1864). Our Inheritance in the Great Pyramid. Origin of the pyramid inch and the land-centre claim.
- Tompkins, P. (1971). Secrets of the Great Pyramid, with Stecchini's appendix on geodesy.
- Bauval, R. and Gilbert, A. (1994). The Orion Mystery.
- Hancock, G. (1995). Fingerprints of the Gods; Hancock, G. and Bauval, R. (1996). The Message of the Sphinx; Hancock, G. (2015). Magicians of the Gods.
- Krupp, E. C. (1997). "Pyramid Marketing Schemes." Sky & Telescope, February. The inversion objection to C4.
- Collins, A. (2006). The Cygnus Mystery. The alternative in C7.
- Schoch, R. (1992). "Redating the Great Sphinx of Giza." KMT 3(2). The water-erosion argument behind C5.