RoomPlan

RSS for tag

Create parametric 3D scans of rooms and room-defining objects.

RoomPlan Documentation

Posts under RoomPlan tag

91 Posts
Sort by:
Post not yet marked as solved
2 Replies
1.4k Views
Hi Apple community, Currently developing an iOS application using Room Plan API, I'd like to remove real world objects detected with Room Plan to my ARView. I already tried to use the following code but it deletes only the anchor entities (customText, UI instructions...) attached to the Anchor : arView.scene.removeAnchor(anchor) My aim is to delete real world object content to my ARView like in this example : (I have an error when uploading files like png, jpg or pdf so there is a link) https://ibb.co/yR8CRVy Is there any way to do that using Room Plan API and ARKit ? Thanks in advance, Goat
Posted
by
Post not yet marked as solved
1 Replies
954 Views
Here is the current code I am using for it. When scanning my room, it is not identifying any door. And there are 2. Am I missing anything? import UIKit import RoomPlan import ARKit import RealityKit class RoomPlanViewController: UIViewController, RoomCaptureViewDelegate, UIViewControllerTransitioningDelegate { @IBOutlet weak var doneButton: UIButton! @IBOutlet weak var exportButton: UIButton! @IBOutlet weak var statusLabel: UILabel! var roomCaptureView: RoomCaptureView! let customDismissal = CustomSlideDownDismissal() var finalResults: CapturedRoom? override func viewDidLoad() { super.viewDidLoad() roomCaptureView = RoomCaptureView(frame: view.bounds) roomCaptureView.delegate = self view.insertSubview(roomCaptureView, at: 0) exportButton.isHidden = true statusLabel.isHidden = true self.transitioningDelegate = self } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) roomCaptureView?.captureSession.run(configuration: RoomCaptureSession.Configuration()) } @IBAction func Back(_ sender: Any) { roomCaptureView?.captureSession.stop() self.dismiss(animated: true, completion: nil) } @IBAction func doneButtonPressed(_ sender: UIButton) { roomCaptureView?.captureSession.stop() doneButton.isHidden = true exportButton.isHidden = false } func captureView(didPresent: CapturedRoom, error: Error?) { statusLabel.isHidden = false statusLabel.text = error == nil ? "The scan was successfully completed" : "An error occurred during the scan: \(String(describing: error))" finalResults = didPresent print("DOOR HERE") print(finalResults?.doors.count as Any) exportButton.isHidden = false statusLabel.isHidden = false } @IBAction func exportButtonPressed(_ sender: UIButton) { let filename = "Room.usdz" let destinationURL = FileManager.default.temporaryDirectory.appending(path: filename) do { try finalResults?.export(to: destinationURL) let activityController = UIActivityViewController(activityItems: [destinationURL], applicationActivities: nil) }
Posted
by
Post not yet marked as solved
0 Replies
542 Views
I can't post a video I don't think. But in the screen shots, I'm sightly making a circle with the phone and the green lines will disappear and then reappear. Those green lines are drawn via .addChildNode(). We're using RoomPlan to detect cabinets(.storage), and then we outline the cabinets with SCNNodes. We have other methods to capture cabinets that don't use RoomPlan. And the lines for those cabinets do not wink in and out. Perhaps there is a bug with visibility culling? We're pretty dang sure the nodes are not disappearing because we are calling .hide() anywhere. Perhaps object detection from RoomPlan running in the background is interfering?
Posted
by
Post not yet marked as solved
1 Replies
779 Views
Can I Keep the floor of the scanned CapturedRoom model with RoomPlan?. Every time I scan a space, the presented preview includes the floor but when I try to manipulate the 'finalResults' (CapturedRoom) I can't find the floor component. There is a way where I can keep it or rebuild it?. Thanks!
Posted
by
Post not yet marked as solved
3 Replies
1.4k Views
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!
Posted
by
Post not yet marked as solved
1 Replies
913 Views
I'm trying to test the RoomPlan exporter with ModelProvider. I ran the sample code, and tried loading from the existing room plan samples of Merging Multiple Scans. Then after I open the exported USDZ output, none of the objects are being substituted with the objects inside RoomPlanCatalog.bundle. I have debugged and checked that the Catalog is loaded correctly. What is the specification of providing a catalog for RoomPlan's ModelProvider? As it's not clear what we should do regarding that from the documentation. Shouldn't there be a generic 3D mesh provided for objects such as Chair, Table, and Shelf, but I couldn't see any of them loaded. Although chair could be easily detected during the scan process, as I observed the session delegates. Tried configuring the captureSession.arSession with SceneReconstruction configuration, but there's no difference. It looks like the issue is only on the exporting process.
Posted
by
Post not yet marked as solved
2 Replies
806 Views
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!
Posted
by
Post not yet marked as solved
1 Replies
492 Views
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.
Posted
by
Post not yet marked as solved
0 Replies
339 Views
So, I am using CapturedStructure to scan multiple spaces in a property. I intended to use the story field available on the Surface structures within the floors field. However, they all have a story == 0; and when I enumerate(), it seems incorrect as well. This is happening to me at least after printing the CapturedStructure into a JSON. This also happens to rooms's floors: The section states one story, but the floors all say 0
Posted
by
Post not yet marked as solved
1 Replies
612 Views
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?
Posted
by
Post not yet marked as solved
0 Replies
525 Views
In the presentation there was a reference to a Parent/Child relationship. The parent for doors and Windows might be Walls but the relationship between Walls or multiple Windows or doors would be that of a "Sibling" or "Peer" component to maintain logical consistency of the objects. I would also recommend a Junction Object, which means more than an Edge because it would describe the two peer objects that were being joined, and the angle of that junction between the objects. The Junction could also describe the shape of the junction to capture any curvature or discontinuity of the junction. Multiple junctions might also be peers because they would have a junction between other adjoining surfaces giving a more complete description to the structure of the room. The parent of all of these surfaces and junctions would be the Room itself. Such a description would be useful in an architectural review of the room structure.
Posted
by
Post not yet marked as solved
0 Replies
658 Views
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?
Posted
by
Post not yet marked as solved
0 Replies
532 Views
We enable with our SyncReality tool Placing 3D assets automatically onto the digital double of the home of the enduser. we - as the developer- won’t need access to the point cloud, not even access to the RoomPlan data of the enduser, at least not in the concrete sense, only in an abstract rule based sense: place on the biggest table UI no.1, place onto the largest free wall UI no.2 etc. would that be possible for the vision pro?
Posted
by