Post not yet marked as solved
Hi all,
I have a requirement about converting usdz to iges file in swift app, I searched on google but didn't find any support library in this.
do you know a library that supports this?
Thanks all.
Post not yet marked as solved
I am trying to configure the materials of a downloaded USDZ file and then save it in the Documents folder as a new USDZ file.
Currently, I am using the ModelEntity class but I have two problems:
I should modify the materials by using their names, but this class just seems that I can access the list of materials and eventually replace them but without knowing their name;
I have no idea how to save it in the local Documents folder as a new USDZ file in order to pass the URL to the AR QuickLook controller to display the modified file in AR.
Probably I should change my approach by using other classes.
Could anyone give me some advice on how to proceed to achieve my goal? I would really appreciate any help.
Post not yet marked as solved
I select usdz file and add reference node with file url.
let scene = SCNScene()
let refNode = SCNReferenceNode(url: usdzPath)
refNode?.position = SCNVector3(0, -0.1, -0.25)
refNode?.load()
refNode?.scale = SCNVector3(0.01, 0.01, 0.01)
scene.rootNode.addChildNode(refNode!)
sceneView.scene = scene
sceneView.delegate = self
sceneView.autoenablesDefaultLighting = true
sceneView!.allowsCameraControl = true
Its works for me. I show the 3D object.
But i want to change usdz file texture in swift. how can i it?
Post not yet marked as solved
How to get a Video, like .mp4 or .mov converted or placed into USDZ File?
I’m trying to use QuickLook AR to show a 3D ThreeJS model in AR on iOS. Exporting my 3D object to USDZ using the Three USDZ exporter works fine. When opening the USDZ file in XCode everything seems to be fine.
Though, when opening the USDZ in QuickLook AR, the 3D model is flying above the ground, on my camera’s Y level. The camera PoV is positioned exactly in the middle of the X and Z axis of the 3D model and at the bottom of the Y level.
I have another problem with opening the USDZ in QuickLook AR, which is; When opening the USDZ in QuickLook AR, the model is invisible at first. Then when I scale the model down to < 10%, the model becomes visible, though it does not scale in size at all.
Also, the “Model” tab in QuickLook does not even show the 3D model. When switching between the “Model” and “AR” tabs, the model flies by really quick.
For reference, I’ve added my USDZ model below.
What I’m trying to accomplish is to position the 3D model in front of me, and for the 3D model to acknowledge the world shown by the camera. The 3D model should stick to walls, or at least the floor to begin with.
Button click code:
newScene.add(sceneRef)
const pivot = new THREE.Object3D()
newScene.add(pivot)
pivot.add(sceneRef)
// position the object on the pivot, so that it appears 5 meters
// in front of the user.
pivot.position.z = -50
const yaxis = new THREE.Vector3(0, 1, 0)
const zaxis = new THREE.Vector3(0, 0, 1)
const direction = zaxis.clone()
// Apply the camera's quaternion onto the unit vector of one of the axes
// of our desired rotation plane (the z axis of the xz plane, in this case).
direction.applyQuaternion(cameraRef.quaternion)
// Project the direction vector onto the y axis to get the y component
// of the direction.
const ycomponent = yaxis
.clone()
.multiplyScalar(direction.dot(yaxis))
// Subtract the y component from the direction vector so that we are
// left with the x and z components.
direction.sub(ycomponent)
// Normalize the direction into a unit vector again.
direction.normalize()
// Set the pivot's quaternion to the rotation required to get from the z axis
// to the xz component of the camera's direction.
pivot.quaternion.setFromUnitVectors(zaxis, direction)
// Finally, set the pivot's position as well, so that it follows the camera.
newScene.getWorldPosition(cameraRef.position)
newScene.updateMatrixWorld(true)
iosExporter.parse(newScene).then((result) => {
saveUSDZString(result, 'scene.usdz')
})
saveUSDZString function:
function saveString(text: any, filename: any) {
save(new Blob([text], { type: 'application/json' }), filename)
}
save function:
function save(blob: any, filename: any) {
link.href = URL.createObjectURL(blob)
link.download = filename
link.rel = 'ar'
let img = document.createElement('img')
img.alt = 'hi'
img.src = 'https://google.com/img'
link.appendChild(img)
link.click()
}
USDZ Model: https://wetransfer.com/downloads/2d2d2e840f9f964e036cd6077094c33220220630095321/a7f94b9f2bc730fead9107bf133e175220220630095338/193b81?utm_campaign=WT_email_tracking&utm_content=general&utm_medium=download_button&utm_source=notify_recipient_email
Post not yet marked as solved
I haven't been able to find anything online about this, but is there a way to convert a .usdz file or .usd file to some other easily parse-able file type (like json, xml, etc) in order to store this data in a SQL database? Anything info is helpful, thanks!
Post not yet marked as solved
Hello I am trying to figure out what I am doing wrong. I am trying to import audio into the .usdz file, followed the "usdzaudioimport -h" with the params, and I am getting this "Error: unexpected parameter -auralMode for argument --audio" ??
I removed it( then getting the you need parameters), used only one parameter still getting unexpected parameter or for auralMode or playbackMode!? downloaded the latest 3 times, reinstall/verified Python version and installation, the PATH, etc...
It is driving nuts, being the first time I use this tool. I am hoping someone smarter than me can "slap me behind the head" and point out the obvious that I cannot see!! LOL
Here is my command, any hint and things to try will be more than welcome.
Thank you very much!
here the command I used and the result:
% usdzaudioimport /Users/macuser/Documents/griffon_v2.usdz /Users/macuser/Documents/griffon_v2b.usdz --audio /Users/macuser/Documents/CH-146_Griffon_webAr.mp3 -auralMode spatial -playbackMode onceFromStart
usdzaudioimport 0.01
Error: unexpected parameter -auralMode for argument --audio
For more information, run "usdzaudioimport -h"
Post not yet marked as solved
Has the problem of the black background when taking a picture with the AR Quick look function in iOS 15 been resolved? I think it's a rather serious bug.
On an iOS 15 device, go to the Quick Look page below and display any of the multiple 3D models in AR Quick Look; the background will be black when you take a picture with the AR Quick Look shooting function.
https://developer.apple.com/augmented-reality/quick-look/
There are similar events below, but they do not seem to be addressed at all.
https://developer.apple.com/forums/thread/691784
Post not yet marked as solved
Using Reality Composer [within Xcode]... I've built an .rcproject file with 25 scenes containing Behaviors w/Triggers + Actions to change scenes, one after another.
When exported as a .reality file, it does run successfully through all 25 scenes.
❓However... when exported as a .usdz file via "Export: Project" (not "Export: Current Scene"), it only runs the 1st scene, as though the rest of the scenes do not exist. The Trigger to change to the 2nd scene does nothing.
✅ Btw I do have "Enable USDZ export" checked (which is not on by default) in the Preferences for Reality Composer.
✨Thank you✨ I'd greatly appreciate any troubleshooting tips❗️
Post not yet marked as solved
We've been running a system that serves .usdz files to customers for a couple months now, and throughout testing and production, we've had no issues with Quick Look on iOS. Recently, though, we've had instances where the animation is not played. A model has additionally come in at an angle. I believe all of these instances were with users on iOS 15. Are there known issues with Quick Look on iOS 15, considering the updates to ARKit?
I can provide the .usdz files if necessary.
Post not yet marked as solved
Hi,
I looked through whole internet searching for some way to compress USDZ files for AR (Quick Look). I see there is some old blog post about Draco compression for USD - https://opensource.googleblog.com/2019/11/google-and-pixar-add-draco-compression.html .
Does anyone know if Quick Look supports USDZ files with Draco compression? I haven't found any mention of it in the official documentations :/ Or maybe there is some other way?
Post not yet marked as solved
When I import the robot.fbx file into reality converter found in the Apple developer documentation found here:
https://developer.apple.com/sample-code/ar/Biped-Robot.zip
If I bring the .fbx version into RealityConverter, export it to USDZ and bring the USDZ file into Xcode 12 beta or any version below, the usdz robot character loses its skin bindings and the mesh has no skeleton attached.
Has anyone experienced this?
Have you been able to successfully convert an FBX rigged model to an USDZ model with all bones connected?
I have tried this using Reality Converter beta 3
I did not edit the FBX robot character provided with Apples documentation sample.
Post not yet marked as solved
It is possible with SceneKit, but I haven’t found any way for RealityKit.
Post not yet marked as solved
Hello USD team,
Thanks for the great demo USD and Hydra/Storm demo!
Is it possible to build an app with USD Hydra/Storm -> SwiftUI interactions?
Ex: a car configurator that has:
a car as a USD file
animations desired on the USD file.
SwiftUI button to opens the doors, another button to play a sound, etc?
everything rendered in Hydra/Storm. as the demo app
Thanks.
Post not yet marked as solved
Hello,
I have a problem with converting GlTF to USDZ using usdzconverter. After converting, the resulted USDZ file has a displaced axis of rotation, when the original axis is placed in the center of the object.
I've attached two screenshots, in the first one axis is correct (the file was converted with a third-party service) and in another one it's not (usdzconverter was used)
Is there a way to fix it somehow?
Thanks, Mikola
Post not yet marked as solved
I use Entity.loadAsync to load the USDZ.
The camera is stuck for a moment when loading the model.
var cancellable: AnyCancellable? = nil
cancellable = Entity.loadAsync(contentsOf: Bundle.main.url(forResource: "vyygabbj_afr", withExtension: "usdz")!)
.sink(receiveCompletion: { error in
DispatchQueue.main.async {
cancellable?.cancel()
cancellable = nil
}
}, receiveValue: { [weak self] ey in
guard let self = self else { return }
self.modelEy = ModelEntity()
self.modelEy.addChild(ey)
self.rootAnchor.addChild(self.modelEy)
ey.availableAnimations.forEach {
ey.playAnimation($0.repeat())
}
DispatchQueue.main.async {
cancellable?.cancel()
cancellable = nil
}
})
Post marked as Apple Recommended
Hi,
On my mac (with Apple Silicon chip) I have different tools that required Python 3.9. To install Python 3.9 I use Homebrew.
I wanted to install "USDZ Tools". I downloaded USDPython-pkg from https://developer.apple.com/augmented-reality/tools/ and by unzipping it I got the file USDPython-0.65.pkg
If I try to run usdzconvert -h I get this
~ % usdzconvert -h
env: python3.7: No such file or directory
I tried replacing !/usr/local/bin/python3.7 with !/usr/bin/env python3 in all python scripts
I then tried to relaunch usdzconvert -h now I get this
% usdzconvert -h
Error: failed to import pxr module. Please add path to USD Python bindings to your PYTHONPATH
I checked PATH and PYTHONPATH are good. I then looked in the pxr folder. Inside there are python files and dynamic libraries with the extension so.
If run the following command, for example, on _ar.so
% file /Applications/usdpython/USD/lib/python/pxr/Ar/_ar.so
/Applications/usdpython/USD/lib/python/pxr/Ar/_ar.so: Mach-O 64-bit dynamically linked shared library x86_64
This is not a dynamic library for Apple Silicon
On the Internet some say that by launching the terminal in Resetta mode it works. I tried it doesn't work for me.
Will there be a native version for Apple Silicon for USDZ Tools?
Regards
Tof
Post not yet marked as solved
Hi - I'm a founder at an AR SaaS company that relies on the USDZ conversion tools to deliver quicklooks to our Apple device users.
I was wondering if there was a changelog for the 0.64 to 0.65 update that I could access (whether publicly, or under NDA) as our content pipeline has baked in a lot of the old 0.64 quirks, issues and unsupported USD features that we discovered (things like avoiding multi-UV material mapping, or how to ensure GLTF texture transforms come through).
If we knew the specific changes made - whether bugs fixed, or additional USD features supported - it would make upgrading much smoother and more predictable.
Is there anyone I can contact to get a list like that?
Post not yet marked as solved
I'm aware that you can create a simple scene in RC, import it to Xcode, and then add additional 3D objects with OcclusionMaterial applied to them using RealityKit.
However, I would like to accomplish that the other way around, i.e. exporting a .reality-file (or usdz?) from Xcode with OcclusionMaterial applied into RC. Is that possible? If so, what's the workflow?
Post not yet marked as solved
I want to crop the usdz model in runtime. I use ModelIO for this.
Before: [https://i.stack.imgur.com/yDXXF.jpg)
After: [https://i.stack.imgur.com/m9ryg.jpg)
First of all, get file from bundle
let url = URL(fileURLWithPath: file)
} else {
print("Object not found in Bundle")
}
And then I need to access asset
let asset = MDLAsset(url: url)
What should I do after this step? How am I supposed to use SCNGeometrySource and SCNGeometryElement or MDLVoxelArray classes?