Skip to content

USDZExporter: Add animation support.#33589

Merged
Mugen87 merged 1 commit into
mrdoob:devfrom
Mugen87:dev5
May 18, 2026
Merged

USDZExporter: Add animation support.#33589
Mugen87 merged 1 commit into
mrdoob:devfrom
Mugen87:dev5

Conversation

@Mugen87

@Mugen87 Mugen87 commented May 16, 2026

Copy link
Copy Markdown
Collaborator

Related issue: #26010, #31652
Fixed #23415

Description

The PR adds basic animation support to USDZExporter. It's based on #26010 but with a different API and implementation that better matches GLTFExporter.

Side note: The bike asset is not fully exported correctly since four parts (black rubber tubes) of the asset are instances of SkinnedMesh. As soon as we add UsdSkel support to USDZExporter, that issue should be fixed as well.

Updated demo: https://rawcdn.githack.com/Mugen87/three.js/def24839d00eff6803ee828bde446a0875ef0f05/examples/misc_exporter_usdz.html

Below shows the exported USDZ in Mac Preview:

vid.mov

@Mugen87 Mugen87 added this to the r185 milestone May 16, 2026
@Mugen87 Mugen87 merged commit e70a1b5 into mrdoob:dev May 18, 2026
9 checks passed
@Mugen87

Mugen87 commented May 19, 2026

Copy link
Copy Markdown
Collaborator Author

As soon as we add UsdSkel support to USDZExporter, that issue should be fixed as well.

I've tried this today and it's a nightmare. Neither Blender nor Sketchfab produce USDZ assets with animated skeletons that fully work in Mac Preview/Quicklook. When adapting the same USD structure like from the assets of the Quick Look gallery (https://developer.apple.com/augmented-reality/quick-look/), the export needs Quick-Look specific Quirks. And even the official models render broken in Preview e.g. they fallback to flat shading when skeletal animation is used.

Testing with Mac Preview does not seem to be the best approach so I wonder if it isn't better to strictly stick to the USD spec for now.

@Mugen87

Mugen87 commented May 19, 2026

Copy link
Copy Markdown
Collaborator Author

I'm going to stop the addition of skeletons since the current skinning support in tools is very inconsistent. No tool (Mac Preview/Quick Look, Blender, Sketchfab) handles skeletal animation in USDZ uniformly. Every implementation interprets the spec differently. Meaning the USDZ files produces in Blender or Sketchfab do not fully work in the other tools. So when our USDZExporter would adapt one approach it's likely users report bugs because the exported USDZ does not work in their chosen tool. At least in today's coding session no approach in USDZExporter I've tried really worked out in the mentioned tools.

At the moment, I think it's better to focus USDZExporter on more stable features. For skinned mesh, it's better when developers pick GLTFExporter.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

USDZExporter animations

1 participant