What is the Current State of USD and Best Practices for Web Viewing?

I’ve been researching the current state of USD (Universal Scene Description) web viewing capabilities and would like to understand the community’s thoughts on best practices.

My Research So Far

Despite Autodesk’s WASM USD web viewer appearing to be archived (though I’m not entirely certain about this status), I’ve found several projects working on USD web preview implementations:

  1. ponahoum/usdz-web-viewer
  2. needle-tools/usd-viewer
  3. lighttransport/tinyusdz

I’ve also looked into Three.js, which provides some USD viewing capabilities but has its limitations as well.

Questions

  1. What is the current state of USD development, particularly regarding web viewing capabilities?
  2. What are the recommended best practices or production-ready solutions for USD web viewing?
  3. Among these implementations (or others), which would you recommend for production use?
  4. What are the trade-offs between different USD web viewing approaches?
  5. What upcoming developments in this space should we be looking forward to?

I greatly appreciate any insights, experiences, or recommendations the community can provide. Thank you!

@herbst
I’ve seen your project and appreciate your hard work. As a developer of needle-tools/usd-viewer, could you share your thoughts and perspective on this topic?

I’ll also just add to the list, the <model> element in HTML.

Afaik right now only Safari on visionOS supports it but it is standardized and hopefully becomes more ubiquitous with time.

1 Like

https://cloudzeta.com also uses a WASM implementation.
The renderer they use, was made Open Source.

It will hopefully become better known in eCommerce.

Unfortunately, <model> won’t help us to present USD-content outside the Apple platforms.
Unless the future Chromium implementation will also read/present native OpenUSD.

IMHO, Apple is 4+ years ahead for all but simple single asset presentation. :clap:

On Safari 19 aka “26” iPadOS, iOS and macOS, <model> is still behind an experimental flag and at least this bug hasn’t been fixed 237950 – [Model] A long press on a <model> infinitely corrupts the touch events sent to its WKModelView