3dtiled-to-3dtiles
Reference notes

OpenUSD + Gaussian splats (ParticleField) and HLOD

OpenUSD v26.03 added a UsdVol schema for 3D Gaussian splatting: ParticleField3DGaussianSplat.

OpenUSD + Gaussian splats (ParticleField) and HLOD

USD now models 3D Gaussian splats natively

OpenUSD v26.03 added a UsdVol schema for 3D Gaussian splatting: ParticleField3DGaussianSplat.

It is a ParticleField-family prim carrying per-splat attributes (positions, covariance/scale + orientation, opacity, SH/colour) — the USD-native equivalent of KHR_gaussian_splatting. This makes USD a viable leaf-tile content format for splats alongside glTF/SPZ.

Is there a 3D-Tiles-equivalent HLOD hierarchy for USD?

Short answer: not a single standard one yet — USD has the pieces, but no widely-adopted streaming HLOD spec that plays the role 3D Tiles does. The relevant building blocks:

  • Payloads + UsdGeomModelAPI / draw modes — USD can defer-load subtrees via payload arcs and show coarse draw-mode proxies (bounds/cards/textured-cards) for unloaded models. This is LOD-ish (proxy vs render purpose, purpose = proxy/render) but it's discrete model swapping, not a screen-space-error-driven streaming tree with per-tile geometric error.
  • Variants / LOD variant sets — a common convention is a variantSet = "LOD" with high/med/low variants, selected by the app. Again app-driven, not SSE-driven.
  • No bounding-volume-hierarchy + geometricError + refine (REPLACE/ADD) equivalent is standardised the way 3D Tiles defines it. There's no USD-native "subtree availability bitstream" / implicit tiling.

So a faithful analogue of "leaf tiles are USD (with ParticleField3DGaussianSplat), hierarchy encodes SSE-based HLOD" would today be built one of two ways:

  1. 3D Tiles as the hierarchy, USD as content — keep tileset.json (boxes, geometricError, refine) and make each tile's content.uri a .usd/.usdz with a ParticleField prim. 3D Tiles 1.1 allows arbitrary content via 3DTILES_content_gltf-style declarations, but no renderer reads USD tile content today, so this is forward-looking.
  2. Pure USD — a root stage that payloads child stages per spatial cell, with draw-mode proxies as the "coarse" representation. Works in usdview/Omniverse but lacks standardised geometric-error streaming; refinement is proximity/variant driven, not pixel-error driven.

Practical takeaway for this repo: USD ParticleField3DGaussianSplat is a natural export target for leaf splat content (sibling to our SPZ glb tiles), but the streaming HLOD tree stays 3D Tiles until a USD streaming-LOD standard matures. Watch the AOUSD working groups and Omniverse's spatial / "Nucleus"-side streaming for movement here.

Apple Maps splats (2026)

Apple Maps' photorealistic "splat" content (introduced early 2026) is almost certainly a custom HLOD tree of Gaussian splats — they would not stream city-scale splats without a spatial level-of-detail hierarchy (the same problem 3D Tiles / our RAD path solve). Given Apple's USD investment, a plausible shape is leaf nodes carrying ParticleField3DGaussianSplat (or an internal equivalent) under a proprietary spatial/SSE hierarchy — i.e. exactly the "USD leaf content + custom HLOD tree" pattern described above, since no open USD streaming-LOD standard exists yet. This is inference from the public behaviour, not a documented Apple format; treat as an educated guess.

On this page