An immutable OpenStrata composition of OpenUSD 26.08, the HTTP resolver, point-cloud FileFormat plugins, and the GeoTIFF FileFormat plugin.
The first release targets Windows x86_64, MSVC 14.3, and host Python 3.13. The composition manifest and lock pin seven independently published component artifacts by both their OpenStrata archive digest and OCI manifest digest.
- Runtime identity:
sha256:904b8c12be5668fde17eda3f49c22b5cc30a253a5ffd3cf851d136ea7457f6bc - Composed artifact:
sha256:e0bc2fb1c6da23e8e3c722eefd6e6b0623aa7c0d0679e41e30a82152e61e1c62 - OCI:
oci://ghcr.io/animu-sphere/usd-geospatial-runtime@sha256:182e5382cd5096a1f223f6ea65fbd1460d2fc249d68accf6e9f83281404ec3f3
The composed artifact carries an SPDX SBOM and in-toto provenance. A pull into an empty OST registry verified the OCI digest, archive digest, file inventory, SBOM, provenance, archive safety, and artifact kind before reconstruction.
OpenStrata v0.22.8 or newer is required.
ost runtime compose targets/windows-x86_64-msvc143-py313/composition.toml `
--lock targets/windows-x86_64-msvc143-py313/lock.json --locked --output .local/composed
python tools/accept.py --composition .local/composed `
--output .local/evidenceTo consume the already composed artifact:
ost artifact pull `
oci://ghcr.io/animu-sphere/usd-geospatial-runtime@sha256:182e5382cd5096a1f223f6ea65fbd1460d2fc249d68accf6e9f83281404ec3f3 `
--expect-artifact sha256:e0bc2fb1c6da23e8e3c722eefd6e6b0623aa7c0d0679e41e30a82152e61e1c62 `
--require-kind composed-runtime
ost runtime reconstruct `
--from-artifact sha256:e0bc2fb1c6da23e8e3c722eefd6e6b0623aa7c0d0679e41e30a82152e61e1c62 `
--output .local/reconstructedThe acceptance runner uses only probes installed in the composition. It checks the SDK, HTTP cold/warm cache behavior, LAS/LAZ/PLY/COPC reads, ten HTTP/COPC validator scenarios, and GeoTIFF metadata authoring. Python 3.13 is an explicit host prerequisite and is not bundled.
targets/windows-x86_64-msvc143-py313/metadata.json describes the released
target in machine-readable form: canonical target identity, immutable
composition and artifact identities, component versions, and the component
that provides each capability. It is generated from the manifest, the lock,
and the accepted release evidence, and it is validated against the schemas in
schemas/.
python tools/runtime_metadata.py --write
python tools/validate_metadata.py
python tests/tooling/test_metadata_tools.pyThese commands run in CI and need only CPython 3.13; the repository installs no Python packages.
sdk/ holds a small consumer API over the composition. It does not hide
OpenUSD: open returns an ordinary pxr::UsdStageRefPtr, and what the SDK adds
is a typed failure and machine-readable introspection.
auto runtime = usd_geospatial::runtime_info(prefix);
auto stage = usd_geospatial::open(uri);
if (!stage) {
// stage.error().id() is "UGEO-E031" when no composed component provides
// the format; stage.error().detail("capability") names it.
}runtime_info reads the prefix's own composition lock, so it reports the
runtime that is present -- its target, identities, components, and capabilities
-- without loading OpenUSD, and can say that a prefix is not a runtime at all.
The failure codes are listed in
the diagnostics reference, and
sdk/README.md covers building, testing, and consuming it.
formats reports every extension the runtime knows about with the state that
says whether the composition declared it, OpenUSD will dispatch it, or both, so
a plugin that shipped and failed to load is visible before an asset is opened.
open, runtime_info, and formats exist today; inspect does not.
This release makes no Linux or macOS composition claim. Its synthetic fixtures prove integration, cache reuse, validator invalidation, and format discovery; they do not establish large-file performance, broad server interoperability, or geographic accuracy.
See the v0.1.0 release record for exact inputs and acceptance results.