-
Discover USDKit and what’s new in OpenUSD
Dive into the latest advances in Universal Scene Description (USD) support on Apple platforms, including Swift-based USDKit, the new spatial preview API, and enhanced spatial web capabilities. Discover how the latest updates to the OpenUSD standard add support for accessibility, Gaussian splats, and compressed geometry. We'll also walk through the expanded USD editing and rendering tools in Preview for Mac, showing you how to leverage these capabilities in your own apps.
Chapters
- 0:07 - Introduction
- 0:53 - OpenUSD: Industry Foundation and New Standards
- 2:51 - Gaussian Splats and Particle Fields
- 3:47 - Introducing USDKit
- 4:06 - 3D Editing in Preview and New Renderers
- 5:42 - Spatial Preview: Live Collaboration Between Mac and Vision Pro
- 6:25 - USD on the Web: The Safari Model Tag
- 6:57 - USDKit: Key Concepts and Swift API Walkthrough
- 10:05 - Accessibility Metadata in USD
- 11:19 - Asset Compression: Mesh and Texture
- 12:36 - Integration Paths: USDKit, SwiftUSD, and OpenUSD
- 13:24 - Next steps
Resources
Related Videos
WWDC26
-
Search this video…
-
-
8:12 - Opening a USD Stage
import USDKit // Create a new empty in-memory stage let stage = USDStage() // Open a stage from a file on disk let url = URL(fileURLWithPath: "/ALab/entry.usda") let stage = try USDStage.open(url) -
8:44 - Traversing the Stage Hierarchy
// Traverse all prims looking for the oscilloscope for prim in stage.descendants { if prim.name == "scope" { // There it is! 🔬 } } // It wasn't there — define a new Xform prim for it let scope = stage.definePrim(at: "/World/scope", type: “Xform")) // Add a file reference to the prim try scope.references.add(“/ALab/assets/scope.usda”) -
9:36 - Moving a Prim with a Transform Operation
// Creates xformOp:translate and updates xformOpOrder automatically scope.addTransformOperation(type: .translate) scope["xformOp:translate", as: USDValue.Vec3d.self] = [2.5, 0.0, -1.0] -
10:42 - Applying Accessibility Metadata
// Apply the multi-apply AccessibilityAPI schema with instance name "default" try scope.applyAPISchema("AccessibilityAPI", instanceName:"default") // Create the label and description attributes scope.makeAttribute(named: "accessibility:default:label", as: .string) scope.makeAttribute(named: "accessibility:default:description", as: .string) // Set their values scope["accessibility:default:label", as: String.self] = "Oscilloscope" scope["accessibility:default:description", as: String.self] = "Vintage signal analyzer with a 3D wireframe display, topped by a color bar test monitor" -
12:05 - Exporting with Mesh and Texture Compression
let output = URL(fileURLWithPath: "/ALab/alab_compressed.usdz") // Export the stage as a USDZ package try stage.exportPackage( to: output, options: [ .preferSmallTextureFiles(quality: .standard), // compress textures .preferSmallMeshFiles // compress mesh geometry ] )
-
-
- 0:07 - Introduction
Frames USD as the backbone of Apple's spatial experiences and outlines the topics covered: foundational USD updates, the new USDKit framework, and how they enable rich 3D experiences across Apple platforms.
- 0:53 - OpenUSD: Industry Foundation and New Standards
Apple's evolving role in the OpenUSD ecosystem: updates to OpenUSD, MaterialX, and OpenVDB across all platforms; Apple's membership in the Academy Software Foundation and Alliance for OpenUSD; and the release of the first formal USD core specification.
- 2:51 - Gaussian Splats and Particle Fields
Introduces a new USD primitive type — Particle Fields — co-developed with NVIDIA, Adobe, and Pixar through the Alliance for OpenUSD, enabling Gaussian Splats to be represented natively in USD and composited alongside traditional 3D data.
- 3:47 - Introducing USDKit
A high-level overview of USDKit, the new first-party Swift framework that brings USD support to Apple apps with built-in RealityKit and Spatial Preview integration, designed to be approachable for both USD veterans and Swift developers new to 3D.
- 4:06 - 3D Editing in Preview and New Renderers
Preview on Mac gains essential 3D editing capabilities: direct scene manipulation, property and lighting editing, hierarchy browsing, and asset conversion — all backed by a choice of three renderers: RealityKit, Storm, and a new high-fidelity Raytracer. All three support OpenPBR materials.
- 5:42 - Spatial Preview: Live Collaboration Between Mac and Vision Pro
The new Spatial Preview framework on macOS 27 creates a live link between Preview on Mac and Quick Look on Vision Pro, enabling real-time spatial review and SharePlay collaboration. Developers can integrate the same workflow into their own Mac apps.
- 6:25 - USD on the Web: The Safari Model Tag
Safari's new Model tag brings interactive 3D USD content to web pages on macOS and iOS, with full spatial breakout on visionOS — making USD as native to the web as images and video.
- 6:57 - USDKit: Key Concepts and Swift API Walkthrough
A walkthrough of core USD concepts — Layers, Composition, Stages, Prims, Schemas, Attributes, and Metadata — followed by a practical Swift code example: opening a stage, traversing the hierarchy, adding a referenced asset via composition, and repositioning it with transform operations.
- 10:05 - Accessibility Metadata in USD
Apple has driven standardization of accessibility metadata directly in USD, defining how assistive labels and descriptions are authored on 3D objects. The API is supported in Blender and Maya, and the USDKit walkthrough shows how to apply the AccessibilityAPI schema and set label and description attributes.
- 11:19 - Asset Compression: Mesh and Texture
Introduces state-of-the-art mesh compression (up to 90% reduction) developed with the Alliance for Open Media, combined with existing AVIF texture compression — achieving 7× smaller assets on average. Demonstrated via USDKit's exportPackage API, Preview's UI, and the usdcrush command-line tool.
- 12:36 - Integration Paths: USDKit, SwiftUSD, and OpenUSD
Outlines the three integration paths: USDKit for Apple platform app developers; SwiftUSD via Swift Package Manager for advanced or open-source Swift workflows; and OpenUSD as an embeddable C++ framework for cross-platform codebases. All share the same USD foundation, ensuring file interoperability.
- 13:24 - Next steps
Recap of the session's key announcements — 3D editing in Preview, Spatial Preview collaboration, the Safari Model tag, and USDKit — with pointers to related sessions on Spatial Preview, USD on the web, RealityKit and Reality Composer Pro.