Highlight
OpenUSD and MaterialX—two open standards introduced to RealityKit on visionOS last year—expand to iOS, iPadOS, and macOS this year; QuickLook supports interactive USD Variants switching, and Preview’s Storm renderer supports MaterialX.
Core Content
3D content developers have long faced a pain point: creation tools, runtime renderers, and file formats each form their own ecosystem—moving assets between platforms always means lost information, material rework, and re-tuning effects. MaterialX ShaderGraph arrived on visionOS last year, but only visionOS could use it—the same shader had to be rewritten for iOS.
Apple’s approach: use Pixar’s OpenUSD and ILM’s MaterialX as platform foundations so all Apple platforms share the same asset format and material description. This year RealityKit ShaderGraph nodes expand from visionOS to iOS, iPadOS, and macOS—a single material definition performs consistently everywhere. New additions include blend shapes (facial animation) and subdivision surfaces (runtime smooth surfaces), plus interactive USD Variants switching in QuickLook and RealityKit API. On macOS, Preview adds Storm renderer support for MaterialX, plus Finder USDZ conversion and thumbnail preview—the entire 3D workflow from creation to preview to distribution closes within system tooling.
Detailed Content
RealityKit ShaderGraph Cross-Platform Expansion (01:00)
MaterialX ShaderGraph was only available on visionOS last year. This year those nodes (including Apple-customized bespoke nodes) expand fully to iOS, iPadOS, and macOS. Apple also published node definitions to online documentation for third-party DCC tool integration. Different app renderers have varying capabilities, so node behavior may differ, but definitions are unified.
Blend Shapes and Subdivision Surfaces (03:37)
Blend Shapes let characters make preset expressions (similar to Animoji). Subdivision Surfaces let you keep low-poly models in the editor while runtime automatically subdivides smooth surfaces, avoiding high-poly assets consuming memory. See developer documentation for performance considerations for both.
Interactive USD Variants Switching (04:07)
USD natively supports Variants—multiple appearance variants defined on the same prim. This year QuickLook can interactively switch between them. A key constraint: Variants must be declared on the USD scene’s default prim. RealityKit API also supports specifying a variant when loading USD files.
Below is a typical USD Variants declaration from the “What’s new in Quick Look for visionOS” code example:
#usda 1.0
(
defaultPrim = "iPhone"
)
def Xform "iPhone" (
variants = {
string Color = "Black_Titanium"
}
prepend variantSets = ["Color"]
)
{
variantSet "Color" = {
"Black_Titanium" { }
"Blue_Titanium" { }
"Natural_Titanium" { }
"White_Titanium" { }
}
}
Key points:
defaultPrim = "iPhone"declares the scene’s default prim—Variants must be defined on this prim for QuickLook to recognize and switchvariants = { string Color = "Black_Titanium" }specifies Black_Titanium as the default selected variantprepend variantSets = ["Color"]declares this prim has a variant set named ColorvariantSet "Color" = { ... }lists all available color variants; each variant can contain different materials or sub-hierarchy definitions
macOS Toolchain Updates (04:53)
Preview adds an Adjust Size tool to resize and reorient models without opening a 3D editor. Export can compress textures to reduce file size. Storm renderer lighting updates to more closely match RealityKit and now supports MaterialX (including multiple ShaderGraph nodes).
On the Finder side: right-click menu adds Convert to USDZ (via Shortcuts app); Archive Utility can unzip USDZ. Large files now support pre-rendered thumbnails—browsing directories with large USD files no longer stutters.
System Libraries and Command-Line Tools (06:38)
OpenUSD upgrade supports Unicode prim names (Hindi, Chinese, etc.)—contributed jointly by NVIDIA and Pixar. macOS includes multiple USD command-line tools: usdcat (format conversion), usdchecker (file validation), usdzip (create USDZ packages), usdcrush (compress USDZ).
Core Takeaways
-
What to do: Introduce USD Variants for product showcase apps, letting users interactively switch colors/styles. Why it’s worth it: QuickLook natively supports variant switching—no custom UI needed; USD format lets one asset file contain all variants, reducing package size. How to start: Declare variantSet on the USD file’s default prim, load with RealityKit’s
Entity.loadModelor open in QuickLook—users can switch in preview. -
What to do: Replace hand-written custom shaders with MaterialX ShaderGraph. Why it’s worth it: ShaderGraph edits visually in Reality Composer Pro without programming, and performs consistently across visionOS / iOS / iPadOS / macOS, eliminating platform adaptation cost. How to start: Create ShaderGraph material in Reality Composer Pro using Apple’s bespoke nodes, export and load directly in RealityKit on each platform.
-
What to do: Use blend shapes + subdivision surfaces combination in character animation. Why it’s worth it: Keep low-poly in the editor for easy manipulation; runtime auto-subdivision ensures visual quality; blend shapes make facial expressions controllable and reusable. How to start: Create blend shape targets and low-poly model in DCC tools, export as USD—RealityKit automatically handles subdivision and expression blending.
-
What to do: Automate USD asset pipelines with macOS command-line tools. Why it’s worth it:
usdcheckervalidates assets in CI;usdzip/usdcrushbatch-package and compress USDZ, avoiding manual errors. How to start: Addusdcheckervalidation step in build scripts, useusdzipto generate USDZ in packaging stage, thenusdcrushto compress textures.
Related Sessions
- Discover RealityKit APIs for iOS, macOS, and visionOS — New cross-platform RealityKit APIs this year, including hover effects, lights/shadows, and portal crossing
- What’s new in Quick Look for visionOS — QuickLook interactive USD Variants switching and new customization APIs
- Compose interactive 3D content in Reality Composer Pro — Using blend shapes, IK, and animation sequences in Reality Composer Pro
- Optimize your 3D assets for spatial computing — 3D asset optimization best practices, including ShaderGraph, baking, and material instancing
Comments
GitHub Issues · utterances