USD (Universal Scene Description) — Pixar Standard for VFX, Apple AR and NVIDIA Omniverse
USD (Universal Scene Description) is a format and an entire scene-graph framework, developed inside Pixar Animation Studios from the early 2010s and open-sourced in 2016. Unlike glTF — which targets runtime delivery of 3D models to browser and AR — USD is a studio-wide scene format: a single file can reference dozens of others, layer in variants, lazy-load heavy assets through payloads, and override any property in any layer non-destructively. USD powers the pipeline behind Toy Story 4, Frozen 2, most Disney and Weta Digital films. Since 2018 Apple has used a USD subset packaged in a ZIP file — .usdz — as the native iOS AR format for Quick Look. NVIDIA built its entire Omniverse platform on USD. In September 2023 Pixar, Apple, NVIDIA, Adobe, Autodesk, and JDF signed the founding agreement for the Alliance for OpenUSD (AOUSD) under the Linux Foundation — USD became an industry standard, not just a Pixar project. On osm2cdr.ru usd_exporter.py runs through Building3DExporter and emits the .usda ASCII variant, which opens in Houdini Solaris, Blender 3.x, NVIDIA Omniverse Create, and Maya with the USD plugin.

History: Pixar 2012 internal → OSS 2016 → AOUSD 2023
In the early 2010s Pixar Animation Studios was facing a problem familiar to every large studio: there is no single "source of truth" for a film. The same character is described in dozens of files — riggers maintain the skeleton in Maya, animators write animation in Houdini, shader artists paint materials in Mari, lighting TDs assemble lights in Katana. Each tool writes its own format; data is shipped through export chains and something gets lost at every export. Pixar solved this in its own way: starting in 2012 the studio began building an internal universal format where a scene is not a flat file but a composition of multiple layers, each able to reference others, override properties, and pull from variants.
The first USD version ran inside Pixar on Toy Story 3 (later retro-ported) and Frozen 2. In August 2016 Pixar open-sourced USD under the Apache License on GitHub at PixarAnimationStudios/USD (renamed to OpenUSD in 2023). That was a strategic move: by opening the format, Pixar stopped being "the studio with the weird format" and became the trend-setter of the industry.
Reception was phenomenal. NVIDIA launched Omniverse in 2019 — a collaborative 3D platform entirely built on USD as the interchange format between applications. Apple introduced iOS 12 in 2018 with AR Quick Look, and the AR model format for Safari/Messages/Mail turned out to be USDZ — a ZIP package with a .usd file plus textures. Autodesk added USD import/export to Maya 2022 and 3ds Max 2023. Side Effects rebuilt Houdini around USD: since version 18 (2019) there is Solaris — a dedicated context for USD scene composition. Adobe uses USD as the internal scene format in Substance Painter and Stager.
In September 2023 Pixar (Disney), Adobe, Apple, Autodesk, and NVIDIA signed the founding agreement for the Alliance for OpenUSD (AOUSD) under the Linux Foundation. Side Effects, Cesium, Foundry, Epic Games, Blender Foundation joined shortly after. USD officially became an industry standard — not "Pixar's format" but an open scene-description developed by a consortium of the biggest 3D-industry players.
Inside USD: USDA, USDC, USDZ, and layer composition
USD is not one file but a family:
.usda— ASCII variant (human-readable, text). Looks like JSON or Python — open in Notepad and read. Used for prototype, debug, version control (git-diffable)..usdc— binary crate (column-storage-style, efficient). Same content as.usdabut compactly packed for production. Pixar uses only.usdcin finished animation..usd— wrapper extension, autodetect: parser figures out whether ASCII or crate..usdz— ZIP archive (uncompressed, store-only) with one or more.usdfiles plus textures. ZIP without compression deliberately — so iPhone can mmap-stream the file without decompression. The Apple variant for AR Quick Look.
The killer feature of USD is composition arcs. A scene is built from Layers, each describing Prims (primitive scene nodes), and the layers compose by rules:
- sublayers — weaker, like a "background"; the next layer overrides the previous
- references — pointer to another
.usdfile, imports its hierarchy into the current point - payloads — same as references but lazy — not loaded until requested (for heavy assets: entire trees, crowd NPCs)
- inherits — inheritance from a prototype prim (like class inheritance in OOP)
- variants — switchable variations (red/blue/green model versions in one file)
- specializes — weak inheritance with override capability
This composition system lets a lighting TD open shot_042.usd (the final shot file), which references set.usd (the set), which references character_woody.usd (the character), and override only the color of one Woody material in shot_042.usd — without touching character_woody.usd. At the next export the main Woody file is untouched, and the override lives in the shot layer. That is something neither glTF nor FBX nor COLLADA give you fundamentally.

Use cases
VFX studio / film production. Pixar, Disney Animation, Industrial Light & Magic, Weta Digital, DreamWorks, MPC — all use USD as the backbone scene format. A shot lives in .usd with references to assets, and dozens of artists work in parallel: rigging in Maya, animation in Houdini, shading in Mari, lighting in Katana, all converging in USD layer compositions. Big 2020s films can no longer be made without USD.
Apple AR Quick Look (USDZ). Since iOS 12 (2018) any .usdz file shipped via Safari/Messages/Mail/Notes opens in native AR Quick Look — the model stands in the real iPhone-camera world. Used for AR marketing (IKEA, Apple Store product placement), real-estate tours, education. USDZ is the primary AR format of the iOS ecosystem.
NVIDIA Omniverse. NVIDIA's collaborative 3D platform, launched in 2019, is entirely built on USD. Maya, Blender, Revit, 3ds Max, Houdini, Unreal Engine all connect to Omniverse through USD bridges. A change in one tool instantly reflects in all others via Nucleus server with USD on the backend. Used in automotive (BMW, Mercedes), architecture, and communication for geographically distributed teams.
BIM-to-VFX bridge. Architects export buildings from Revit/ArchiCAD via USD, and those same assets feed visualizations in Unreal Engine architectural visualization and Omniverse for real-time review. USD is the only format that actually works between AEC and entertainment industries.
OSM digital twin. A city is exported to USD, opened in Omniverse Create, with additional layers (traffic simulation, smart-city sensor data, IoT events) overlaid via USD composition arcs — each layer describes a separate aspect of the digital twin without overwriting the base geometry.
Strengths and weaknesses
Strengths. Composition system — non-destructive layered scene assembly, no analog elsewhere. Industry-backed (AOUSD since 2023): Pixar, Apple, NVIDIA, Adobe, Autodesk all support. Scales to massive scenes (Pixar films with millions of prims). AR-ready via USDZ (opens natively on iPhone/iPad without apps). Open Apache 2.0 — no licensing risk. Rich materials via MaterialX integration. Animation, skinning, physics, volumes — everything a full-pipeline VFX needs.
Weaknesses. Steep learning curve — composition arcs, layers, references, specializes require understanding. The file ecosystem (.usd/.usda/.usdc/.usdz) confuses newcomers. Library footprint is large (libusd weighs hundreds of megabytes, needs Python, TBB, Boost). Community smaller than glTF web. Not for 3D printing — slicers don't understand USD; for 3D print export STL or OBJ. Not the best web pick — for browser AR/VR use glTF or USDZ via Quick Look.
USD vs glTF vs Alembic vs COLLADA
glTF — runtime format for web/games/AR delivery. USD — authoring format for production pipeline. The difference is like PSD (Photoshop working file) vs JPEG (final image): USD holds everything (composition, variants, references), glTF is the final baked-out result for the renderer. Alembic is a geometry cache (baked animation for playback), often referenced from USD. COLLADA is an outdated 2004 XML format that USD has fully superseded. For web/AR/games — glTF. For film/VFX/Omniverse — USD. Often together: a USD scene references Alembic caches and exports a final glTF.
Pipeline in OSM2CDR
Our usd_exporter.py inherits from Building3DExporter. The pipeline mirrors STL/OBJ/glTF:
- Load buildings from PostGIS via WKB fast-path.
- Calculate building height by the rule
height > building:levels × 3 m > fallback 10 m. - Extrude polygons into prisms via
trimesh.creation.extrude_polygon. - Build a USD Stage programmatically via
pxr.Usd: create Xform "World" → Mesh nodes per building → write faceVertexCounts/faceVertexIndices/points. - Save as
.usda(ASCII) by default for debug and version control. Optionally.usdc(binary crate) withcompression=binaryflag.
Coordinates are Z-up (GIS convention). The USD spec supports upAxis = "Y" or upAxis = "Z" via metadata; we explicitly write upAxis = "Z" for GIS tools (Cesium, QGIS 3D). On import into Houdini Solaris or Maya it renders correctly without rotation.
USDZ packaging (ZIP with .usda + textures) is not currently active in the pipeline: for AR needs export .usda and pack via usdzconvert CLI or Apple Reality Composer manually. On the roadmap — a format=usdz query parameter for direct AR-ready export.

FAQ
USD, USDA, USDC, USDZ — what's the difference? .usd is the wrapper extension (can be ASCII or binary, autodetect). .usda is guaranteed ASCII text (for debug, git, hand-edit). .usdc is guaranteed binary crate (for production speed). .usdz is a ZIP archive with .usd files plus textures (for AR Quick Look on iOS). Same content, different storage formats.
What is AOUSD and why does it matter? Alliance for OpenUSD — an industry consortium under the Linux Foundation, founded September 2023. Founding members: Pixar (Disney), Adobe, Apple, Autodesk, NVIDIA, JDF. The alliance guarantees USD is no longer "Pixar's format" but an open industry standard with transparent governance. Before 2023 all USD changes were Pixar-controlled; now — open governance like Khronos.
What software opens USD? Houdini (Solaris — USD-native context since 18, 2019), Blender (USD import/export since 3.0, 2021), Maya (Autodesk USD plugin, ships with Maya 2022+), 3ds Max (USD with 2023+), NVIDIA Omniverse Create (entirely USD-based), Pixar Renderman, Side Effects Mantra, Foundry Nuke, Adobe Substance Stager. The usdview command (Pixar) is a free CLI/GUI viewer.
How does USD composition differ from FBX/COLLADA hierarchy? In FBX/COLLADA the hierarchy is linear: parent → child → child of child. In USD the hierarchy is multidimensional: parent + sublayers + references + variants + payloads. Dozens of sources can layer onto a single scene simultaneously, and each can override any property of another without touching the source. This is the enabling technology for large pipelines with dozens of artists.
Houdini Solaris — what and why? Solaris is a dedicated context in Houdini 18+ for USD work. Not a "regular SOP level" but LOP (Lighting Operators) — nodes for composing USD stages. Each LOP is a new USD layer; the LOP chain builds the scene composition. Used in production for lighting/lookdev/finalising shots. Houdini Solaris has become the de-facto industry standard for USD authoring.
Can I use USD without understanding composition arcs? Yes, for simple cases — one file with one scene, no references/variants — USD works like a regular 3D format. Composition arcs are for large pipelines. For exporting OSM buildings to Houdini or Omniverse — USD is used as "regular 3D" without complex composition.
Conclusion
USD is not just another 3D format but a scene-description framework underpinning a large portion of the modern VFX and AR industries. Since 2023 under AOUSD it has become an industry standard, similar to glTF in web 3D or PDF in documents. For architects, smart-city developers, and digital-twin engineers, USD opens the door to NVIDIA Omniverse, Houdini Solaris, Maya/3ds Max production pipelines, and iOS AR Quick Look. Try exporting your city district to USD right now at /formats/usd/ and open the result in Blender 3.x, Houdini, or Omniverse Create.
Related
- glTF — the JPEG of 3D, Khronos web/AR format
- OBJ — Wavefront format for 3D exchange
- STL — the 3D printing format
- 3D Tiles and CityGML for smart-city
- CityJSON for digital twins
- How to export 3D buildings from OSM
Sources
- OpenUSD documentation (Pixar) — openusd.org
- USD source code on GitHub — github.com/PixarAnimationStudios/OpenUSD
- Alliance for OpenUSD — aousd.org
- Apple AR Quick Look (USDZ) — developer.apple.com/augmented-reality/quick-look
- NVIDIA Omniverse — nvidia.com/en-us/omniverse
- Wikipedia, Universal Scene Description — en.wikipedia.org/wiki/Universal_Scene_Description