Scene to USDZ converter

I can not wait for Apple support for WebXR… :slight_smile:


Yes, it does seem that this is the most efficient solution right now. It‘s fast enough to provide the users a nice experience.

How to you convert from gib to usdz? Did you handle that on your own or do you use any utility like GitHub - google/usd_from_gltf?

Can we expect that this will happen in any near future? I have doubts :frowning:

I would have expected WebGL2 WAYYYYYYYYYYYYYYYYYYYY BACKKKKKKKKKKKKK so honestly not holding my breath but it looks like there is activity in webkit comments about it So still hoping :slight_smile:

1 Like

I can’t understand what’s the purpose of making Safari the new IE. It’s just a pain for development.


Hey @samevision

Yes we use that script in part, but it’s part of the workflow. Material compatibility is another challenge.
Alpha’s, closely overlapping meshes etc etc.
Ironically the Apple quick look system in very fluid it adapts nicely to light. Occlusion etc. Android is not so good especially with the plethora of divorces, yet the Material compatibility is way better on GLB than USDZ.

Ultimately both GLB and USDZ are very simple in terms of materials and Babylon is very dynamic and powerful so you cannot directly translate the Babylon shaders to the other formats so you have to either limit or get creative with this.

I use Apple daily. I like Apple but as @sebavan wrote waiting on safari is a not something we felt we could wait on.

Despite all the work we put in I will be so happy to hear that XR is supported on iOS

PS - interesting fact we do all the conversions and run Babylon sever side without a GPU :wink:

Have a good weekend all

Another trial with a more complex product with HQ textures and materials. This is current taking longer to convert but we have some ideas to reduce the time.


Has there been any recent progress? :face_with_peeking_eye:

No progress with Babylon, but Three.js has built an exporter.

Someone could try to port it to Babylon

As I wrote above there are many things that might not work when converting,
but it would be great not have to rely on a server pipeline to get usdz working.

cc @bghgary and @thomlucc FYI

I think we would welcome a contribution for this. It seems like a good project to tackle as it is fully isolated.


Can’t agree more

1 Like

I need to be able to export scenes to USDZ too.
If you are extra awesome you include animations.

Any update on this?

no plan as of now to support this but I would totally support anybody willing to give it a shot in the community :slight_smile:

1 Like

Hmmm, maybe the monkey king will come to the rescue. That three js script is pretty clear and 600 lines of code is not that bad.

Y’all really that interested in this?

Someone have a link to the file specs?

1 Like

THIS WOULD BE AWESOME @Pryme8 :heart: :heart: :heart: :heart: :heart:

Ill read into this more with my coffee this morning. This kind of sounds fun ngl.

1 Like

Ok here is the first pass at it.
Few things to note:

  1. NO CLUE IF THIS WORKS YET! this was just a raw conversion of walking through and remapping the logic
  2. I need to convert it to be for PBR Materials instead of StandardMaterial to unlock more of the features.
  3. Animations heh yeah right…
  4. Converted it all to a static pattern.
  5. There are some TODO’s and logic I was still questioning sections about.

Need to do some more testing, and then parse something that was a loaded GLTF instead of the primitives.

But at least its started.

UPDATE Just tested it and it for sure does not work yet. Ill have to figure out more about the file specs to know why.

Here if the first file generated from it:

and here is the warning report:

This will take more diving in than I thought…

800$ ? :slight_smile: [Open RFP] ( $800 ) - Basic USD/Z export ( Mesh, materials w/ PBR support ) · Issue #2 · BitReelCo/BJS-PR-Bounty-Pool (

This is the output from the three.js example… so its probably going to be quite the task.