OpenUSD FileFormat Plugins and libraries for raster and grid geospatial data. The project reads GeoTIFF first, through a windowed, transport-independent reader, and authors the result into existing OpenUSD schemas. The initial metadata-to-regular-grid mesh slice is connected for synthetic and small inputs; the specialized libtiff backend handles compressed windows, and the reader reports planning and I/O statistics. A production GDAL adapter is planned as the preferred backend for general raster dataset access and later format expansion.
What it does
- Reads raster sources through a windowed reader that never requires materializing a whole image to satisfy a bounded request.
- Keeps georeferencing — CRS, geotransform, pixel anchoring, NoData — explicit at every boundary that converts between pixel, source, and stage-local coordinates.
- Authors
UsdGeomMeshelevation and geospatial metadata through existing OpenUSD schemas, with no custom schema of its own. - Implements no transport. Remote access composes at runtime through the active
OpenUSD
ArResolver.
GeoTIFF -> usdGeoTiff -> RasterGrid -> usdRasterAuthoring -> UsdGeomMesh
^
|
RandomAccessSource
^
|
ArAsset / ArResolver (transport lives here, not here)
usdRasterGdal will implement the same reader contracts. It does not replace
resolver transport or expose GDAL types to plugin and authoring layers.
Early. The repository structure, core libraries, GeoTIFF metadata reader, pixel windows including the supported compressed paths, read planning, and the first regular-grid mesh authoring slice are implemented and tested. The v0.2.0 release covers the windowed pixel-read slice. The full mesh argument and conversion surface remain planned.
| Milestone | Scope | Status |
|---|---|---|
| 0 | Repository skeleton, CMake, OpenStrata workspace, CI, docs | done |
| 1 | Raster core value model, with no OpenUSD | done |
| 2 | GeoTIFF metadata and a metadata-only FileFormat Plugin | in progress |
| 3 | Windowed pixel reading | done |
| 4 | UsdGeomMesh authoring |
in progress |
The task-level record is implementation status; source support is the capability matrix. When a summary disagrees with the implementation, the implementation wins.
| Extension | Plugin | Current support |
|---|---|---|
.tif, .tiff |
raster-geotiff |
metadata and initial uncompressed windows - milestones 2-3 |
.tif and .tiff are shared with non-geospatial TIFF use. The bundle claims
them, and a source without usable georeferencing is reported rather than
assigned an invented CRS.
A FileFormat Plugin does not know about transport, and a resolver does not know about formats. That boundary is not negotiable; see ADR-0002.
| Repository | Owns |
|---|---|
usd-raster-plugins |
Raster formats, raster metadata, CRS/geotransform/NoData interpretation, raster sampling and tiling, raster USD authoring |
usd-pointcloud-plugins |
LAS/LAZ/COPC/PLY, UsdGeomPoints, point tiling and LOD |
usd-http-resolver |
HTTP/HTTPS, Range requests, block cache, transport metrics |
Reprojection, vertical datum transformation, raster writing, and renderer-specific material graphs are out of scope; see the roadmap.
The OpenStrata path, against the pinned cy2026 / usd runtime:
ost configure
ost build
ost test
The core lane, which must build and test with no OpenUSD present:
cmake -S . -B build-core -DUSDRASTER_CORE_ONLY=ON
cmake --build build-core
ctest --test-dir build-core
If the core lane stops working, a core library has acquired an OpenUSD dependency, which is invariant 1 of the workspace contract failing. Details are in BUILDING.md.
Start at docs/README.md. The reading order for a new contributor is the design policy, the workspace contract, the coordinate model, the reader contract, and then the roadmap.
Apache-2.0. See LICENSE, NOTICE, and THIRD_PARTY_NOTICES.md.