their is no error showed, i am trying to detect an object using ‘ImageTrackingProvider’, i already added the specific image in AR ressource called ‘ref’ and also the authorization like ‘NSWorldSensingUsageDescription’, ‘Privacy – Tracking Usage Description’ .., when i run the code everything seems fine it load the image here is my console
{Reference images loaded: [ReferenceImage(name: “Imagee”, physicalSize: (0.140 m, 0.140 m)] Loaded image: Imagee, Physical size: 0.14000000059604645 x 0.14000000059604645 meters
Starting ARKit session…
ARKit session started. Waiting for image detection…}
here is my code
import SwiftUI
import ARKit
import RealityKit
import RealityKitContent
import CoreGraphics
@MainActor
struct ImmersiveView: View {
@State private var arkitSession = ARKitSession()
@State private var entityMap: [UUID: ModelEntity] = [:]
@State private var rootEntity = Entity()
private let imageTracking: ImageTrackingProvider
init() {
let loadedImages = ReferenceImage.loadReferenceImages(inGroupNamed: "ref")
imageTracking = ImageTrackingProvider(referenceImages: loadedImages)
print("Reference images loaded: (loadedImages)")
for image in loadedImages {
print("Loaded image: (image.name ?? "Unnamed"), Physical size: (image.physicalSize.width) x (image.physicalSize.height) meters")
}
}
private func updateImage(_ anchor: ImageAnchor) {
let circle = MeshResource.generateSphere(radius: 0.05)
if entityMap[anchor.id] == nil {
let circleEntity = ModelEntity(mesh: circle)
circleEntity.model?.materials = [SimpleMaterial(color: .red, isMetallic: false)]
entityMap[anchor.id] = circleEntity
rootEntity.addChild(circleEntity)
print("Object detected")
} else if let entity = entityMap[anchor.id] {
entity.transform = Transform(matrix: anchor.originFromAnchorTransform)
print("Updated position for anchor ID: (anchor.id)")
}
}
var body: some View {
RealityView { content in
content.add(rootEntity)
}
.task {
do {
print("Starting ARKit session...")
try await arkitSession.run([imageTracking])
print("ARKit session started. Waiting for image detection...")
for await update in imageTracking.anchorUpdates {
print("Anchor update received.")
updateImage(update.anchor)
}
} catch {
print("Error: (error)")
}
}
}
}
//ContentView
import SwiftUI
import RealityKit
import RealityKitContent
struct ContentView: View {
var body: some View {
ImmersiveView()
}
}
#Preview(windowStyle: .automatic) {
ContentView()
}
//Main
import SwiftUI
@main
struct TestVisionTrackerApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
matt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.