Archaeological LiDAR Survey — American Southwest
A reproducible remote sensing pipeline for detecting and visualizing archaeological features across the ancient Southwest. Named for the kiva — the subterranean ceremonial chamber at the heart of Ancestral Puebloan architecture, and precisely the kind of subtle feature that LiDAR reveals after centuries of desert wind have erased it from the surface.
| Site | State | Period | Key Features |
|---|---|---|---|
| Chaco Canyon | NM | 850–1150 CE | Great houses, road network, kivas |
| Mesa Verde | CO | 600–1300 CE | Cliff dwellings, mesa-top villages |
| Hohokam Phoenix | AZ | 300–1450 CE | Canal network, platform mounds |
| Canyon de Chelly | AZ | 2500 BCE–present | Cliff dwellings, petroglyphs |
Switch between sites by changing active_site in config.yaml.
# Install environment (Windows)
pixi install
# Download DEMs for the active site
pixi run python scripts/download_dem.py
# Render 3D terrain
pixi run python scripts/render_site.py --site chaco
# Open notebooks
pixi run notebooksproject-kiva/
├── config.yaml ← Switch sites here
├── pixi.toml ← Python environment
│
├── notebooks/
│ ├── 01_data_acquisition Download USGS 3DEP LiDAR tiles
│ ├── 02_render_forge3d 3D terrain renders via forge3d
│ ├── 03_lidar_processing Point cloud → bare-earth DEM
│ ├── 04_archaeological_viz SVF, LRM, hillshade products
│ └── 05_feature_detection Automated mound/kiva detection
│
├── scripts/
│ ├── download_dem.py Download GeoTIFF DEMs from USGS
│ └── render_site.py forge3d 3D terrain renderer
│
├── data/
│ ├── raw/ LAZ point cloud tiles (gitignored)
│ ├── processed/ GeoTIFFs and raster products (gitignored)
│ ├── renders/ PNG render outputs (gitignored)
│ ├── vectors/ GeoJSON site features (committed)
│ └── assets/ Project imagery and branding
│
└── web/
└── index.html GitHub Pages interactive map
USGS 3DEP tiles (LAZ / GeoTIFF)
↓
Ground classification → bare-earth DEM
↓
┌─────────────────────────────────────────┐
│ Archaeological visualization suite │
│ · Multi-azimuth hillshade │
│ · Sky-View Factor (SVF) │ ← best for kiva depressions, road berms
│ · Local Relief Model (LRM) │ ← best for mounds, platform edges
└─────────────────────────────────────────┘
↓
Automated detection → candidate_features.geojson
↓
forge3d path_tracing → 3D terrain renders
↓
Leaflet web map → GitHub Pages
Project Kiva uses forge3d for GPU-accelerated 3D terrain visualization via its headless path tracer — no Rust toolchain or viewer binary required.
from forge3d import path_tracing
from forge3d._png import save_png
tracer = path_tracing.create_path_tracer(1920, 1080, max_bounces=2)
camera = path_tracing.make_camera(
origin=(ox, oy, oz), look_at=(cx, cy, cz),
up=(0, 0, 1), fov_y=45.0, aspect=16/9, exposure=1.0
)
rgba = tracer.render_rgba(dem_array, camera)
save_png('render.png', rgba)Live at bdgroves.github.io/project-kiva
- Satellite, topo, and terrain basemap toggle
- Known great house and kiva locations with historical notes
- Automated candidate feature detections
- Schematic road and canal overlays
- Lekson, S.H. (1999). The Chaco Meridian. AltaMira Press.
- Chase, A. et al. (2011). Airborne LiDAR, archaeology, and the ancient Maya landscape. Journal of Archaeological Science, 38(2).
- Evans, D. et al. (2013). Uncovering archaeological landscapes at Angkor using LiDAR. PNAS, 110(31).
- Opitz, R. & Cowley, D. (Eds.) (2013). Interpreting Archaeological Topography. Oxbow Books.
Code: MIT · Data: USGS 3DEP public domain · Built in Tacoma, WA
Feature detections are unverified automated outputs and should not be cited as archaeological findings.
