01
OrbitalDepth
The problem.
Orbital photographs of the Moon look flat. A crater and a lava plain can produce nearly identical images depending on where the sun was at the moment of capture. Elevation data exists for some regions, but most photographs have no matching terrain model at all.
OrbitalDepth inverts that problem. Instead of treating shadows as noise, it treats them as the signal.
How it works.
- Shadow analysis measures the direction and length of shadows in the image to solve for the sun's exact position at capture time.
- Photometric correction normalises the image against that lighting model, separating surface reflectance from illumination.
- Shape from Shading recovers a surface normal for every pixel from the corrected intensities.
- Integration turns the normal field into a heightmap, then into a full triangle mesh at real scale.
- Validation compares the reconstructed terrain against NASA's LOLA laser altimetry dataset.
The output exports directly into Unreal Engine 5, Unity or Blender, so a single photograph becomes explorable terrain.
The architecture.
OrbitalDepth runs as a web service. A FastAPI backend accepts uploads, a Celery job queue handles the reconstruction work asynchronously, and results land in S3-compatible storage. The whole pipeline is containerised with Docker.