Hi
Is this possible to have RoomCaptureSession and ARSession together, as we need feature points
RoomPlan
RSS for tagCreate parametric 3D scans of rooms and room-defining objects.
Posts under RoomPlan tag
90 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Let's say a 10-feet wall. Would RoomPlan return 11, 10.1, or 10.01 feet? Thanks a lot.
I am in need to create a 2D floor plan with the dimensions mentioned, from the generated 3D result of RoomPlan. Is there a way to create it in a little easy-to-understand manner? Or will it require manual elaborate coding?
During scanning, I got this error and scanning process immediately quips without any output. I wonder what this error means and what caused it. Thanks.
The two links on this page for RoomPlan sample code from WWDC 2023 are broken. Any idea when we can expect these to be posted?
https://developer.apple.com/documentation/roomplan/providingcustommodelsforcapturedroomsandstructureexports
and
https://developer.apple.com/documentation/roomplan/mergingmultiplescansintoasinglestructure
Thanks!
Our app is available in the App Store and it's working well on ios16 devices.
A few days ago, we noticed in Organizer weird bugs coming from ios17, with the only hint "NO_CRASH_STACK".
After installing ios17 on an iPhone, we were able to reproduce the crash directly at launch, but only when the app is downloaded from the appstore (no crash when the app is installed with Xcode 15 beta)
"type": "EXC_CRASH",
"signal": "SIGABRT"
},
"termination": {
"code": 4,
"flags": 518,
"namespace": "DYLD",
"indicator": "Symbol missing",
"details": [
"(terminated at launch; ignore backtrace)"
],
"reasons": [
"Symbol not found: _$s8RoomPlan0A14CaptureSessionCACycfc",
"Referenced from: <XXXX----XXXXXXX> /Volumes/VOLUME//.app/",
"Expected in: <XXXX--**-XXXXX-XXXXXXX> /System/Library/Frameworks/RoomPlan.framework/RoomPlan"
]
Does Anybody else encounter this issue?
What should we do to solve this?
thanks!
So, I have been playing with the new version of RoomPlan (it is pretty awesome!). However, I found this bug... or, I think it is a bug:
When I get the JSON, I get the following field, for each room:
{
"rooms": [
{
"story": 1,
"floors": [
...
],
"coreModel": "xPNhmdphlnynwusRL92NgUYKht...
...
...
This is kind of annoting, as this is quite a big field. With the coreModel, the file is 828kB. When I remove it, it is 267kB.
im try load ARWorldMap roomCaptureView?.captureSession.arSession.run(arWorldTrackingConfig, options: []), but when i load ARWorldMap, RoomPlan not work, the screen goes black, and nothing is displayed,
Does anyone know the cause and solution?
A feature of my app I am in need of is to allow users to go through their room and mark specific positions, then be able to navigate these positions with a floor plan like a map. Think google maps but for your room, showing the user's position.
I know it is possible to make a floor plan with RoomPlan, which could act as a map, but would it be possible after the plan is made to track a user's location in the room and show it?
Is this too complex for RoomPlan? And if so how would I tackle this problem?
Hello fellow developers,
When attempting to merge single rooms into one model, the resulting floorplan I got appears to have rooms stacked on top of each other.
I am using a single ARSession for all the scans, to my understanding, the world coordinate system remains consistent during a continuous ARSession. I can't figure out why the rooms are overlapping or positioned vertically on top of each other in the generated floorplan. I am uncertain whether this issue stems from my own code implementation.
I did the following modification to the sample code
Initiated an ARSession in RoomCaptureViewController
private var arWorldTrackingConfig: ARWorldTrackingConfiguration = ARWorldTrackingConfiguration()
private var arSession: ARSession = ARSession()
Pass ARSession to roomCaptureView
private func setupRoomCaptureView() {
arSession.run(arWorldTrackingConfig)
roomCaptureView = RoomCaptureView(frame: view.bounds, arSession: arSession)
roomCaptureView.captureSession.delegate = self
roomCaptureView.delegate = self
view.insertSubview(roomCaptureView, at: 0)
}
Pause the ARSession after completion of scanning one room
private func saveSession() {
isScanning = false
roomCaptureView?.captureSession.stop(pauseARSession: false)
setCompleteNavBar()
}
@IBAction func saveScanning(_ sender: UIBarButtonItem) {
if isScanning { saveSession() } else { cancelScanning(sender) }
self.exportButton?.isEnabled = false
self.activityIndicator?.startAnimating()
}
Any experiences or insights are greatly appreciated.
Hey team, I was looking at the new Sections data in RoomPlan. It's really awesome! However, it looks like the polygons data is being stored as a SIMD2 instead of SIMD3. Is the data being cast incorrectly? (I see the Y axis seems to match the ground level). If so, would you mind fixing this bug? It would be great to see this data!
I am building an app that uses the RoomPlan API, but I am hoping to change the UI, is it possible to, for instance, change the color of the lines that are displayed? Also, there only appears to be a way to turn off the live model, not translate it around the screen. Is it possible to do either of these things in IOS 17's RoomPlan?
Is there an easy way from API to get surface area measurements?
Hi,
I'm trying to implement the RoomPlan, could you tell me pls, which methods I can use to manipulate with resulted rendered room model: i.e. chenge the wall color by click etc. It can looks laughly but I didn't use this API before. If it doesnt have such functions please recoomend the api which I can use to manipulte scan results for such case: selecting a wall and change its color or marking it with some symbols which should be rendered on it. Thx
Is there a method to extract the iphone position and orientation? Or to get the trajectory of the iphone during the room scan?
I am trying to find the size limitations for RoomPlan. Originally I was planning to get this data from the exceedSceneSizeLimit error. But it appears that errors are only given to the delegate once the captureSession is ended and it provides the final capture data to the delegate.
I'm trying to merge room with WorldMap:
but my screen goes black when doing a scan,
First: i load world map
arWorldTrackingConfig.initialWorldMap = worldMap
//arWorldTrackingConfig.planeDetection = [.horizontal, .vertical]
arSession.run(arWorldTrackingConfig)
if #available(iOS 17.0, *) {
roomCaptureView = RoomCaptureView(frame: view.bounds, arSession: arSession)
}
else{
roomCaptureView = RoomCaptureView(frame: view.bounds)
}
roomCaptureView = RoomCaptureView(frame: view.bounds)
roomCaptureView.captureSession.delegate = self
roomCaptureView.delegate = self
view.insertSubview(roomCaptureView, at: 0)
and save when scan done:
roomCaptureView?.captureSession.arSession.getCurrentWorldMap { worldMapData, error in
if let error = error {
return
}
if let worldMap = worldMapData {
let fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("worldMapData")
do {
let data = try NSKeyedArchiver.archivedData(withRootObject: worldMap, requiringSecureCoding: true)
try data.write(to: fileURL)
} catch {
print("error ARWorldMap: \(error.localizedDescription)")
}
}
}
the first scan is fine, but the next time, when the worldMap is saved and loaded, my screen goes black,
does anyone have a solution or sample code??
-thank-
I have got a crash related with RoomPlan framework on iOs 13.5.1
Hardware Model: iPad6,11
Process: xxxxxxx [4677]
Path: /private/var/containers/Bundle/Application/15CC2737-2FFD-4A17-A111-A2DB7A6838E0/xxxxxxx.app/xxxxxxx
Identifier: xxxxxxx
Version: 1489 (4.7.3)
AppStoreTools: 14E221
AppVariant: 1:iPad6,11:13
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: xxxxxxx [1071]
Date/Time: 2023-08-05 04:34:53.0188 +0700
Launch Time: 2023-08-05 04:34:52.7050 +0700
OS Version: iPhone OS 13.5.1 (17F80)
Release Type: User
Baseband Version: n/a
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Description: DYLD, can't resolve symbol _$s8RoomPlan0A14CaptureSessionC13ConfigurationVMa in /private/var/containers/Bundle/Application/15CC2737-2FFD-4A17-A111-A2DB7A6838E0/xxxxxxx.app/xxxxxxx because dependent dylib #40 could not be loaded
Triggered by Thread: 0
Thread 0 name:
Thread 0 Crashed:
0 dyld 0x0000000105ea8f68 __abort_with_payload + 8
1 dyld 0x0000000105eafee8 abort_with_payload_wrapper_internal + 100 (terminate_with_reason.c:102)
2 dyld 0x0000000105eaff18 abort_with_payload + 12 (terminate_with_reason.c:124)
3 dyld 0x0000000105ead13c dyld::halt(char const*) + 384 (dyld2.cpp:4240)
4 dyld 0x0000000105e607fc dyld::fastBindLazySymbol(ImageLoader**, unsigned long) + 168 (dyld2.cpp:4328)
5 libdyld.dylib 0x00000001b1482398 dyld_stub_binder + 60
6 xxxxxxx 0x000000010475cc38 type metadata completion function for RoomPlanCaptureViewController + 60 (<compiler-generated>:0)
7 libswiftCore.dylib 0x00000001bedcf76c swift_getSingletonMetadata + 956 (MetadataCache.h:920)
8 xxxxxxx 0x000000010475a540 type metadata accessor for RoomPlanCaptureViewController + 48 (<compiler-generated>:0)
9 libobjc.A.dylib 0x00000001b13ab958 realizeAllClasses() + 112 (objc-runtime-new.mm:2840)
10 libobjc.A.dylib 0x00000001b13ae6dc objc_getClassList + 92 (objc-runtime-new.mm:5013)
.
.
14 dyld 0x0000000105e732c4 ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 428 (ImageLoaderMachO.cpp:2427)
15 dyld 0x0000000105e736b0 ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 52 (ImageLoaderMachO.cpp:2524)
16 dyld 0x0000000105e6e0f0 ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 536 (ImageLoader.cpp:1621)
17 dyld 0x0000000105e6c520 ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 184 (ImageLoader.cpp:605)
18 dyld 0x0000000105e6c5e8 ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 92 (ImageLoader.cpp:620)
19 dyld 0x0000000105e61a64 dyld::runInitializers(ImageLoader*) + 88 (dyld2.cpp:4923)
20 dyld 0x0000000105e687b8 dlopen_internal + 832 (dyldAPIs.cpp:1761)
21 libdyld.dylib 0x00000001b1483a08 dlopen + 172 (dyldAPIsInLibSystem.cpp:1545)
.
.
.
30 dyld 0x0000000105e732c4 ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 428 (ImageLoaderMachO.cpp:2427)
31 dyld 0x0000000105e736b0 ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 52 (ImageLoaderMachO.cpp:2524)
32 dyld 0x0000000105e6e0f0 ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 536 (ImageLoader.cpp:1621)
.
.
36 dyld 0x0000000105e687b8 dlopen_internal + 832 (dyldAPIs.cpp:1761)
37 libdyld.dylib 0x00000001b1483a08 dlopen + 172 (dyldAPIsInLibSystem.cpp:1545)
38 substitute-inserter.dylib 0x0000000106019284 0x105f3c000 + 905860
39 substitute-inserter.dylib 0x0000000106326ac0 0x105f3c000 + 4106944
40 substitute-inserter.dylib 0x00000001062e7980 0x105f3c000 + 3848576
41 dyld 0x0000000105e732c4 ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) + 428 (ImageLoaderMachO.cpp:2427)
42 dyld 0x0000000105e736b0 ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 52 (ImageLoaderMachO.cpp:2524)
43 dyld 0x0000000105e6e0f0 ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, char const*, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 536 (ImageLoader.cpp:1621)
44 dyld 0x0000000105e6c520 ImageLoader::processInitializers(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&, ImageLoader::UninitedUpwards&) + 184 (ImageLoader.cpp:605)
45 dyld 0x0000000105e6c5e8 ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) + 92 (ImageLoader.cpp:620)
46 dyld 0x0000000105e5e608 dyld::initializeMainExecutable() + 136 (dyld2.cpp:1569)
47 dyld 0x0000000105e62eb0 dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*) + 4400 (dyld2.cpp:6989)
48 dyld 0x0000000105e5d208 dyldbootstrap::start(dyld3::MachOLoaded const*, int, char const**, dyld3::MachOLoaded const*, unsigned long*) + 396 (dyldInitialization.cpp:145)
49 dyld 0x0000000105e5d038 _dyld_start + 56
by framework is weakly linked
Load command 53
cmd LC_LOAD_WEAK_DYLIB
cmdsize 80
name /System/Library/Frameworks/RoomPlan.framework/RoomPlan (offset 24)
time stamp 2 Thu Jan 1 03:00:02 1970
current version 1.0.0
compatibility version 1.0.0