Figured it out....Apple's latest 2023 Object Capture API has the source code under developer documentation. You can download it, run it and build your sample app from there!
Post
Replies
Boosts
Views
Activity
Heya! I'm pretty sure there will be 6 DOF, saw a video of a gent who watched an Alicia Keys concert when trying out the Vision Pro at WWDC and he said he could move around and view Alicia Keys and all her band members. He pretty much said it was better than being at an actual concert.
Boom! Right below mate. I'm going to attempt to reach out to Chris Flick at Apple to get his opinion on what the best setup will be for the Vision Pro and also ask him a couple of other questions. 1. Can we play back 3D video in a "Volume" that users can actually walk around? and I guess that would be it....ha. Cheers
https://www.usa.canon.com/shop/p/vr-content-creator-kit?color=Black&type=Kit
Seeing the same issue on my end as well. I have the latest versions of Xcode and iOS 17 trying to run the sample code on an iPhone 14 Pro. Guess we have to wait until Apple updates the sample code for Object Capture to be in sync with the latest versions of Xcode and iOS 17. Wish they just developed an app for object capture rather than just supplying sample/source code.
Thanks! I'll run the simulator and see how that goes. Is the above preview code necessary for viewing the volume window in the simulator or on device?
Oh! I Also noticed in Xcode that some windows do not have the grey glass texture to them. Is this an Xcode issue or a problem with my preview code? Thanks! #Preview { if let safeLoad = ecommdata { BrandImage(brand: safeLoad) } else { Text("Unable to load 3D Asset") } }
Hi @kaiberg
Did you ever run into the issue in Xcode simulator where the 3D asset is supposed to appear but all that shows is the progress view spinner? I can see the Model3D in preview but when I run the simulator all I see is the progress view spinner :/
Thanks! @gchiste
I believe this worked but now I'm having issues seeing the USDZ files load in Xcode simulator. All I'm seeing is the progress view spinner. Have you run into this issue?
@gchiste You're amazing :)
That's the piece I was missing. You're more helpful than code level support from Apple that I pay for!
May I get your email and pay you for more questions I will have in my visionOS app development journey?
Thank you again
@gchiste
All is functioning properly now with exception to one piece. The below code is a view that is intended to tie back to the data array and data structure with the intent that when a user taps on the left/right button the user can load the 3D asset that is associated with the specifics of the window's display. For example, a user is looking at a Burton snowboard, taps on the icon and loads the snowboard in front of them via volume window. Then the user taps to the right and is now viewing a sweater from Nike and taps on the icon to see the Nike sweater. The below code is only showing one 3D asset no matter which brand/product the user navigates to.
import RealityKit
import RealityKitContent
struct AssetLoad: View {
@State private var currentIndex: Int = 0
var volumeLoad: [BrandEcommData]
var body: some View {
Model3D(named: volumeLoad[currentIndex].ThreeDitem, bundle: realityKitContentBundle) { model in model
.resizable()
.aspectRatio(contentMode: .fit)
} placeholder: {
ProgressView()
}
}
}
#Preview {
AssetLoad(volumeLoad: ecommdata ?? [])
}
Updated data structure for reference.
import SwiftUI
import RealityKit
struct BrandEcommData: Hashable, Codable, Identifiable {
var id: Int
var brand: String
var name: String
var category: String
var itemDetail: String
var price: String
var itemDescription: String
var imageName: String
var ThreeDitem: String
var image: Image {
Image(imageName)
}
var volume: Model3D<ResolvedModel3D> {
Model3D(named: ThreeDitem)
}
}
Data array snippet for reference.
{
"brand": "Careste",
"name": "Samantha",
"category": "Spring 24",
"itemDetail": "CASHMERE DEEP V NECK SWEATER | OATMEAL",
"price": "$695",
"id": 1001,
"itemDescription": "Samantha's deep v-neck and oversize sleeves are an elevated approach to the basic cashmere pullover. Throw it on over a cami or tailored top for a cozy yet refined look.",
"imageName": "SAMANTHA 1",
"ThreeDitem": "Careste"
},
{
"brand": "Careste",
"name": "Samantha",
"category": "Spring 24",
"itemDetail": "CASHMERE DEEP V NECK SWEATER | OATMEAL",
"price": "$695",
"id": 1002,
"itemDescription": "Samantha's deep v-neck and oversize sleeves are an elevated approach to the basic cashmere pullover. Throw it on over a cami or tailored top for a cozy yet refined look.",
"imageName": "SAMANTHA 2",
"ThreeDitem": "Careste"
},
{
"brand": "Careste",
"name": "Samantha",
"category": "Spring 24",
"itemDetail": "CASHMERE DEEP V NECK SWEATER | OATMEAL",
"price": "$695",
"id": 1003,
"itemDescription": "Samantha's deep v-neck and oversize sleeves are an elevated approach to the basic cashmere pullover. Throw it on over a cami or tailored top for a cozy yet refined look.",
"imageName": "SAMANTHA 3",
"ThreeDitem": "Careste"
},
{
"brand": "Careste",
"name": "Samantha",
"category": "Spring 24",
"itemDetail": "CASHMERE DEEP V NECK SWEATER | OATMEAL",
"price": "$695",
"id": 1004,
"itemDescription": "Samantha's deep v-neck and oversize sleeves are an elevated approach to the basic cashmere pullover. Throw it on over a cami or tailored top for a cozy yet refined look.",
"imageName": "SAMANTHA 4",
"ThreeDitem": "Careste"
},
{
"brand": "Careste",
"name": "Samantha",
"category": "Spring 24",
"itemDetail": "CASHMERE DEEP V NECK SWEATER | OATMEAL",
"price": "$695",
"id": 1005,
"itemDescription": "Samantha's deep v-neck and oversize sleeves are an elevated approach to the basic cashmere pullover. Throw it on over a cami or tailored top for a cozy yet refined look.",
"imageName": "SAMANTHA 5",
"ThreeDitem": "Careste"
},
{
"brand": "Careste",
"name": "Callie",
"category": "Spring 24",
"itemDetail": "CASHMERE MAXI CARDIGAN | OATMEAL",
"price": "$1,195",
"id": 1006,
"itemDescription": "This floor length Scottish Cashmere cardigan features a V-neckline, long sleeves and large patch pockets. A slightly oversized, yet refined fit.",
"imageName": "CALLIE 1",
"ThreeDitem": ""
},
{
"brand": "Careste",
"name": "Claudia",
"category": "Spring 24",
"itemDetail": "SILK RELIEF CASHMERE STRIPE TANK | OATMEAL",
"price": "$525",
"id": 1007,
"itemDescription": "The Claudia cashmere racerback tank is **** and effortless. With subtle, tonal relief stripes and a deep v-neck, this slim silhouette is a standout on its own as well as your go-to baselayer.",
"imageName": "CLAUDIA 1",
"ThreeDitem": ""
},
{
"brand": "Careste",
"name": "Lottie",
"category": "Spring 24",
"itemDetail": "SILK VOLUMINOUS SLEEVE WRAP DRESS | CHOCOLATE",
"price": "$1,195",
"id": 1008,
"itemDescription": "The subtle draped and exaggerated bell sleeves of the Lottie in Chocolate are generously cut in 100% Silk Double Georgette.",
"imageName": "LOTTIE 1",
"ThreeDitem": ""
},
{
"brand": "Ray Ban",
"name": "Mega Wayfarer",
"category": "Optics",
"itemDetail": "Polished Black",
"price": "$200",
"id": 1009,
"itemDescription": "Own the room with the new Ray-Ban Mega Wayfarer Optics RB0840V eyeglasses. These oversized eyeglasses are designed to make a statement. The black frames make them perfect for those looking for a classic style.",
"imageName": "Ray Ban 1",
"ThreeDitem": "StormTrooper"
},
Thank you :)
@Developer Tools Engineer Looks like from the crash report Thread 0 caused Xcode to crash. Assuming that's aka to include environmentObject() in the preview?
Figured it out using the below :)
Group {
if let initialBrand = ecommdata?.first {
let sharedAppState = SharedAppState(initialModelId: initialBrand.id)
BrandImage(brand: ecommdata!, initialBrand: initialBrand)
.environmentObject(sharedAppState)
} else {
Text("Unable to load 3D Asset")
}
}
}
@CodeKit Did Apple state specifically why the app was rejected? Did you spend a day at a developer lab getting your app up to snuff for launching on the App Store? Just curious....
@SpatialCreator67 Make any progress with integrating UE5 in the AVP?
@sagarvkotak Very helpful, I was using the Mac terminal to generate CSRs, using Keychain Access is more intuitive. So I'm integrating Apple Pay into a Shopify Store via headless ecomm that will flow into my visionOS app using Shopify's storefront API. Here's my rub, you cannot download the CSR file from Shopify bc this CSR file uses a ECC algorithm and 256 bits and Apple expects the RSA algo with 2048 bits. Therefore created the CSR via KeyChain Access and uploaded successfully to Apple Developer and downloaded the needed Merchant ID cert that then gets uploaded back into Shopify. Now every time I upload the Merchant ID cert into Shopify I get the below error. Any suggestions? Shopify doesn't have a clue how to resolve this issue. Thanks!
It's become worse :/
Apple please help and drop an update ASAP for MacOS Sequoia. I can't even develop in Xcode at this point and my job depends on it.