Post

Replies

Boosts

Views

Activity

What does setWorldOrigin() do?
I stumbled across the function setWorldOrigin(relativeTransform:) from the ARSession which is documented here: https://developer.apple.com/documentation/arkit/arsession/2942278-setworldorigin I made a custom ARSession where i override this function and print and modify the relativeTransform parameter. The print shows that this function is called with an updated relativeTransform value but it seems that it has no impact e.g. on the world origin when starting or continuing a scan, the tiny puppet house in RoomPlan or any tracking position that i get from ARKit. Has anybody experience with this method or knows what parts are influenced by setWorldOrigin()?
0
0
228
Sep ’24
Multiple floor levels in one story
In lots of houses there are different levels but are still on the same floor. What i mean is that there are things like stairs on the entrance that only have a few steps and would count basically as the same story. RoomPlan already does a nice job recognizing them during the scanning but after the StructureBuilder or the optimization step it is not really satisfying. Has anyone managed to handle those cases? Or do you have to scan a specific way to capture such small differences within a level?
0
0
257
Sep ’24
Modify CapturedRoom Objects
The RoomPlan API makes it possible to serialize and de-serialize CapturedRoom objects. This opens up the possibility to modify a CapturedRoom (e.g. deleting surfaces/objects) in a de-serialized state and serialize it as a new CapturedRoom. All modified attributes are loaded accordingly, so far so good. My problem starts with the StructureBuilder and it's merge function capturedStructure(). This function ignores any modifications to attributes of a CapturedRoom. The only data that is considered is encoded in the CoreModel attribute (which is not mentioned in the official documentation). If someone has more information or a working solution about how to modify CapturedRooms please let me know. Additionally if there is somewhere a documentation about the CoreModel-attribute please post a link here.
0
0
361
Sep ’24
Add basic story ceilings to RoomPlan model
The structure builder provides walls and floors for each captured story, but not a ceiling. For my case it is necessary that the scanned geometry is closed to open up the possibility to place objects on the ceiling for example and therefore it is important that there is an estimated ceiling for different rooms within a story. Is there any info that apple has something like this on the roadmap in the future because i think this can open opportunities especially when thinking about industrial application of the API. If somebody has more insights on this topic pls share :)
1
0
472
Aug ’24
StructureBuilder with modified CapturedRooms
My goal is to modify CapturedRooms and load them back into the StructureBuilder to generate a new CapturedStructure. Since CapturedRooms cannot be modified directly I stored them as JSON, modified the parameters (e.g. switching object categories) and serialized them back into a CapturedRoom object. So far so good, the object is loaded correctly. But when i put them into the capturedStructure() all the original parts of the CapturedRoom are used. As some of you may have already noticed there is an undocumented CoreModel stored in CapturedRooms when you export them in JSON-format. It seems that the structure builder only uses this CoreModel to compose the output. So here my question to the forum: Does anybody know a way to edit a CapturedRoom so the StructureBuilder respects those changes and composes a new structure including those changes?
1
1
449
May ’24
iOS 17 Simcard Status
In order to get more accurate compass data it seems that iOS devices with a simcard installed can provide better results. To distinguish between data delivered I would like to retrieve a status telling me if there is a simcard available and connected to the mobile network or not. All recommendations are pointing to the deprecated CoreTelephony functions which are obsolete since I am working with iOS17 devices. Is there a way to check if the device uses a simcard or not?
1
0
787
Mar ’24
Pause ARSession broken in 17.4
I have a tracking issung with the latest beta 17.4 and want to know if anyone encountered the same problem. My app is using the pause=false functionality for multiroom that apple provided to let the ARSession run in the background: roomCaptureView?.captureSession.stop(pauseARSession: false) When resuming the scan/scanning the next room I initialize a new RoomCaptureView with the running ARSession: let roomCaptureView = RoomCaptureView(frame: rcvc.view.bounds, arSession: arSession!) This worked fine on all previous versions and different devices. Since the update to 17.4 I noticed that the tracking will be lost after initializing the next scan which feels like the pauseARSession is not working (the ARSession has still the same ID) Devices: This behaviour/error does not occur on devices with 17.3 or lower: 15 Pro Max, 14 Pro Max, 13 Pro This behaviour/error occures on devices with 17.4: 15 Pro Max, 14 Pro Max If anyone has noticed the same issue I would like to know that I'm not the only one. Thanks.
4
4
852
Feb ’24
Structure Builder crashing with EXC_BAD_ACCESS
A case occured where the Structure Builder is crashing with EXC_BAD_ACCESS and the error cannot be handled without the app crashing. I have two minimalistic models, one even reduced to the minimum of the "coreModel" itself. (See attachment) Each model alone in the StructureBuilder works fine. Using both causes the crash. Has anyone found a way to handle this error without the app crashing? override func viewDidLoad() { super.viewDidLoad() let capturedRooms: [CapturedRoom] = [ loadCapturedRoom(fileName: "appleModel1"), loadCapturedRoom(fileName: "appleModel2") ] buildStructure(capturedRooms) } func buildStructure(_ capturedRooms: [CapturedRoom]) { let structureBuilder = StructureBuilder(options: []) Task { print("----- START BUILDING STRUCTURE -----") do { let capturedStructure = try await structureBuilder.capturedStructure(from: capturedRooms) } catch { print("----- FAILED BUILDING STRUCTURE -----") } // Crashing with: EXC_BAD_ACCESS // This part will never be reached print("----- FINISH BUILDING STRUCTURE -----") } } func loadCapturedRoom(fileName: String) -> CapturedRoom { do { guard let jsonFileURL = Bundle.main.url(forResource: fileName, withExtension: "json") else { fatalError("JSON file not found.") } let data = try Data(contentsOf: jsonFileURL) return try JSONDecoder().decode(CapturedRoom.self, from: data) } catch { fatalError(error.localizedDescription) } } appleModel1.json appleModel2.json
2
1
610
Dec ’23
CV3DSLAMAnchorUpdateCopySessionID
I got multiple crashes with the issue that the app has crashed in the SlamEngine during CV3DSLAMAnchorUpdateCopySessionID. There is no pattern when this occurs and I do not know how to reproduce this error but since it is occuring multiple times I thought i will ask in this forum if anyone has a similar issue or knows a fix for this.
3
1
1.1k
Oct ’23