Terrain processing libraries for 3D tile generation.
This repository provides libraries for processing terrain data into formats suitable for 3D globe applications like CesiumJS.
- Mesh Generation - Generate adaptive meshes from heightmap data using the RTIN algorithm
- Quantized Mesh - Encode/decode Cesium quantized-mesh-1.0 terrain format
- Coordinate Transformations - Convert between geodetic and ECEF coordinates
| Language | Path | Status |
|---|---|---|
| Rust | rust/ | Available |
| JavaScript | js/ | Planned |
| Go | go/ | Planned |
RTIN (Right-Triangulated Irregular Network) mesh generation from heightmaps. Based on the Martini algorithm by Mapbox.
- Source:
rust/martini/ - Published on crates.io as
martini
Encoder and decoder for Cesium quantized-mesh-1.0 terrain format.
- Source:
rust/quantized-mesh/
Higher-level utilities — re-exports martini + quantized_mesh, plus
seamless DEM-gradient vertex normals (eliminates tile-boundary shading
seams) and RGB heightmap codecs (Terrarium / Mapbox Terrain-RGB / GSI).
- Source:
rust/terrain-codec/
- Load a heightmap (GeoTIFF, PNG, etc.)
- Mesh it with
martini→ vertices, indices, UVs - Encode with
quantized-mesh→.terrainfile (quantized-mesh-1.0)
MIT OR Apache-2.0