RoomPlan

RSS for tag

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

Posts under RoomPlan tag

200 Posts

Post

Replies

Boosts

Views

Activity

Importing RoomPlan output into Blender
I'm sharing this in case someone else wants to use Apple's RoomPlan to create a model and import it into Blender. The problem: I could not successfully import a USDZ model from the RoomPlan app into Blender. (I went through the normal process of importing a USDZ file into Blender: change the file type from ".usdz" to ".zip"; unzipped the file; then tried to import the ".usda" file). No surfaces appeared. The solution: In Apple's source code from here, in the file RoomCaptureViewController.swift, I changed the line try finalResults?.export(to: destinationURL, exportOptions: .parametric) to try finalResults?.export(to: destinationURL, exportOptions: .mesh) recompiled, and went through the USDZ to USDA conversion process again. This time it worked. Apparently Blender cannot import parametric USDA models.
0
0
2.0k
Jan ’23
RoomPlan example App including curved surfaces
Our office room has a round cylindrical corner. But the current RoomPlan example App represents the curved corner by using edges (straight lines): CapturedRoom.Surface.Edge. We are looking for representing the round corner by using curves: CapturedRoom.Surface.Curve. The source code of an ARKit App of us using depthMap is public on GitHub CurvSurf. We are looking for an in-depth help from you.
2
0
1.4k
Jan ’23
RoomPlan/UIKit/ARKit - add custom text to UI
Hi community, I'm a new iOS developer and I'd like to develop application using Room Plan API/UIKit/ARKit. Currently I'm able to : Scan room Detect room objects (in console logs) Export data file (.usdz) from scanned room using the default UIViewController from UIKit. But now I would like to add my custom display when objects are detected. I google it but don't found anything around it. I think I have to use this method from RoomPlan API to display category of detected objects. func captureSession(_ session: RoomCaptureSession, didUpdate room: CapturedRoom) { RoomPlan can't display custom data right ? If yes, I have to use ARKit or UIKit in this method to add custom text to the frame of the detected object ? I can share code if necessary. Thanks in advance, Goat.
7
1
3.1k
Jan ’23
Is it possible to customize a RoomPlan RoomCaptureSession?
I'm hoping to utilize RoomPlan's auto detection of Doors, Windows, Openings, and Objects in my existing ARKit application. I've successfully hooked up a RoomCaptureSession to my ARSCNView in place of the preexisting ARSession (for iOS 16+ users):      if #available(iOS 16, *) {       let session = RoomCaptureSession()       let config = RoomCaptureSession.Configuration()       arView.session = session.arSession       session.run(configuration: config)       self.roomPlanSession = session     } else {       arConfig = ARWorldTrackingConfiguration()      arConfig.planeDetection = [.horizontal, .vertical]       arView.session.run(arConfig, options: .resetTracking)     } I'd like to enable planeDetection on the RoomCaptureSession, but I can't find anyway to do so. Does anyone know if this is possible? Or is the RoomCaptureSession not configurable in that way? Also, the RoomCaptureSession seems to automatically abort/stop if the camera & sensors are covered for a few seconds. For instance, if you set the device on a table (back side down) for ~15 seconds then the session is ended. Is there anyway to force it to keep the session alive in this case?
3
0
1.9k
Jan ’23
Getting device location in ARWorldMap
I am using Roomplan APi to make a 2d floorplan. I am trying to make it possible to scan multiple rooms by scanning one room after the other. Does anybody know if it is possible to get the device location in the ARWorldMap so that it can be saved and the loaded back up when a new room is to be scanned and it will know where it is in the ARWorldMap? I know it can scan the surrounding area to find it location.
1
0
959
Dec ’22
Working group?
Anyone interested in working on a few things together? I have a few questions I'm interested in answering and if there are a couple of folks that would like to do a couple of small collaborative investigations, it would be great to chat.. Current open questions: What is required to import into CAD software like Rhino or Sketchup? What is the dimensional accuracy of the output? Are features tagged relationally? i.e. does a window know which wall it's in? Are there similar libraries that can help accomplish similar things from the outside? Photogrammetry based solutions? Shoot me a note if you'd be interested in discussing!
3
0
952
Dec ’22
Can I use RWorld map together with roomCaptureView?
Does anybody know if I can use the ARWorld map together with roomCaptureView? So that I can scan and save one Room, then save the data from scan, save the ARWorldmap and then make a new roomCaptureView.captureSession to scan the new room? Right know I am first calling:  roomCaptureView?.captureSession.run(configuration: roomCaptureSessionConfig) and then roomCaptureView.captureSession.arSession.run(roomCaptureViewARconfigurationFunc) with the saved ARWorldMap.   @IBAction func saveWorldMapAction(_ sender: Any) {         roomCaptureView.captureSession.arSession.getCurrentWorldMap { worldMap, error in             guard let map = worldMap             else { self.worldMapLabel.text = "error \(error!.localizedDescription) "; return }             do {                 let data = try NSKeyedArchiver.archivedData(withRootObject: map, requiringSecureCoding: true)                 try data.write(to: self.mapSaveURL, options: [.atomic])                 DispatchQueue.main.async {                     self.loadWordMapButton.isHidden = false                     self.loadWordMapButton.isEnabled = true                     self.worldMapLabel.text = "Map Saved "                     print(" map saved")                 }             } catch {                 fatalError("Can't save map: \(error.localizedDescription)")             }         }     } @IBAction func AddNewRoomBtnPressed(_ sender: UIButton) {         sceneViewFloorPlan.alpha = 0         stopSession()         startSession()         oadWordMap() } private func startSession() {         isScanning = true         print("start roomCaptureView")         roomCaptureView?.captureSession.run(configuration: roomCaptureSessionConfig)         setActiveNavBar()     } var defaultConfiguration: ARWorldTrackingConfiguration {     let configuration = ARWorldTrackingConfiguration()     configuration.environmentTexturing = .none     return configuration } func loadWordMap(){     let worldMap: ARWorldMap = {         guard let data = mapDataFromFile             else { fatalError("Map data should already be verified to exist before Load button is enabled.") }         do {             guard let worldMap = try NSKeyedUnarchiver.unarchivedObject(ofClass: ARWorldMap.self, from: data)                 else { fatalError("No ARWorldMap in archive.") }             return worldMap         } catch {             fatalError("Can't unarchive ARWorldMap from file data: \(error)")         }     }()     let configuration = self.defaultConfiguration // this app's standard world tracking settings     configuration.initialWorldMap = worldMap     guard let roomCaptureViewARconfigurationFunc = roomCaptureView.captureSession.arSession.configuration else {         return }     isScanning = true    roomCaptureView.captureSession.arSession.run(roomCaptureViewARconfigurationFunc) setActiveNavBar() }
0
0
818
Nov ’22
How to pause scanning?
I'm using: RoomCaptureView: to scan my room with the device's camera. RoomCaptureViewDelegate, RoomCaptureSessionDelegate: to receive events, data, and process data My wish: I want after scanning for a period of time t, to stop the scanning process (keep the boxes in the real environment, don't draw new boxes, don't have to call the stop() function) Does Roomplan API currently do this, if so, what are the steps? ** As far as I know, there is a RoomCaptureSession available for users to handle their own ArSession, but I don't want to use this.
0
0
657
Nov ’22
RoomPlan: Use the transform and dimensions to generate 4 corner points
I'm trying to use data returned from the RoomCaptureSession delegate to draw four corners of a door in SceneKit. The CapturedRoom.Surface class has Dimensions and Transform members. I was told in the WWDC 2022 RoomPlan Slack lounge: "You can use transform and dimensions parameters to draw lines. The 4 corners can be inferred from those 2 parameters: the first column of the transform is the "right" vector, and second is the "up" vector. The fourth column is the position of the wall/door/opening/window/object Combining those unit vectors with the dimensions vector will give you the corners." So I think this is a basic vector question. I'm not sure what is meant by "Combining those unit vectors with the dimensions vector". I've tried a few things, but I'm not sure how to go about this.
5
1
2.7k
Nov ’22
Is it possible to translate RoomCaptureView user instructions?
I've been working on an app that uses the new RoomPlan API and I'm looking for a way to translate the "Scan Guidance" or User Instructions that are overlayed on the RoomCaptureView when the user is scanning a room. Instructions like "Move device to start" and "Move further away" are in English but I'd like them to be in Dutch in my case. I can't seem to find a way to provide translations to these instructions myself and setting the device region or language doesn't seem to change anything. Is this even possible currently?
1
1
1.3k
Oct ’22
Importing RoomPlan output into Blender
I'm sharing this in case someone else wants to use Apple's RoomPlan to create a model and import it into Blender. The problem: I could not successfully import a USDZ model from the RoomPlan app into Blender. (I went through the normal process of importing a USDZ file into Blender: change the file type from ".usdz" to ".zip"; unzipped the file; then tried to import the ".usda" file). No surfaces appeared. The solution: In Apple's source code from here, in the file RoomCaptureViewController.swift, I changed the line try finalResults?.export(to: destinationURL, exportOptions: .parametric) to try finalResults?.export(to: destinationURL, exportOptions: .mesh) recompiled, and went through the USDZ to USDA conversion process again. This time it worked. Apparently Blender cannot import parametric USDA models.
Replies
0
Boosts
0
Views
2.0k
Activity
Jan ’23
RoomPlan example App including curved surfaces
Our office room has a round cylindrical corner. But the current RoomPlan example App represents the curved corner by using edges (straight lines): CapturedRoom.Surface.Edge. We are looking for representing the round corner by using curves: CapturedRoom.Surface.Curve. The source code of an ARKit App of us using depthMap is public on GitHub CurvSurf. We are looking for an in-depth help from you.
Replies
2
Boosts
0
Views
1.4k
Activity
Jan ’23
RoomPlanAPI object textures
Hi, I want to extract real textures of the objects detected by RoomPlanAPI. So, that i can apply them later on to the model generated by RoomPlan. I want to create an illusion of the real room so that i can have the control over the objects. Does anyone have any idea how can i do that?
Replies
1
Boosts
0
Views
1.2k
Activity
Jan ’23
RoomPlan/UIKit/ARKit - add custom text to UI
Hi community, I'm a new iOS developer and I'd like to develop application using Room Plan API/UIKit/ARKit. Currently I'm able to : Scan room Detect room objects (in console logs) Export data file (.usdz) from scanned room using the default UIViewController from UIKit. But now I would like to add my custom display when objects are detected. I google it but don't found anything around it. I think I have to use this method from RoomPlan API to display category of detected objects. func captureSession(_ session: RoomCaptureSession, didUpdate room: CapturedRoom) { RoomPlan can't display custom data right ? If yes, I have to use ARKit or UIKit in this method to add custom text to the frame of the detected object ? I can share code if necessary. Thanks in advance, Goat.
Replies
7
Boosts
1
Views
3.1k
Activity
Jan ’23
Is it possible to customize a RoomPlan RoomCaptureSession?
I'm hoping to utilize RoomPlan's auto detection of Doors, Windows, Openings, and Objects in my existing ARKit application. I've successfully hooked up a RoomCaptureSession to my ARSCNView in place of the preexisting ARSession (for iOS 16+ users):      if #available(iOS 16, *) {       let session = RoomCaptureSession()       let config = RoomCaptureSession.Configuration()       arView.session = session.arSession       session.run(configuration: config)       self.roomPlanSession = session     } else {       arConfig = ARWorldTrackingConfiguration()      arConfig.planeDetection = [.horizontal, .vertical]       arView.session.run(arConfig, options: .resetTracking)     } I'd like to enable planeDetection on the RoomCaptureSession, but I can't find anyway to do so. Does anyone know if this is possible? Or is the RoomCaptureSession not configurable in that way? Also, the RoomCaptureSession seems to automatically abort/stop if the camera & sensors are covered for a few seconds. For instance, if you set the device on a table (back side down) for ~15 seconds then the session is ended. Is there anyway to force it to keep the session alive in this case?
Replies
3
Boosts
0
Views
1.9k
Activity
Jan ’23
Getting device location in ARWorldMap
I am using Roomplan APi to make a 2d floorplan. I am trying to make it possible to scan multiple rooms by scanning one room after the other. Does anybody know if it is possible to get the device location in the ARWorldMap so that it can be saved and the loaded back up when a new room is to be scanned and it will know where it is in the ARWorldMap? I know it can scan the surrounding area to find it location.
Replies
1
Boosts
0
Views
959
Activity
Dec ’22
Working group?
Anyone interested in working on a few things together? I have a few questions I'm interested in answering and if there are a couple of folks that would like to do a couple of small collaborative investigations, it would be great to chat.. Current open questions: What is required to import into CAD software like Rhino or Sketchup? What is the dimensional accuracy of the output? Are features tagged relationally? i.e. does a window know which wall it's in? Are there similar libraries that can help accomplish similar things from the outside? Photogrammetry based solutions? Shoot me a note if you'd be interested in discussing!
Replies
3
Boosts
0
Views
952
Activity
Dec ’22
Can I use RWorld map together with roomCaptureView?
Does anybody know if I can use the ARWorld map together with roomCaptureView? So that I can scan and save one Room, then save the data from scan, save the ARWorldmap and then make a new roomCaptureView.captureSession to scan the new room? Right know I am first calling:  roomCaptureView?.captureSession.run(configuration: roomCaptureSessionConfig) and then roomCaptureView.captureSession.arSession.run(roomCaptureViewARconfigurationFunc) with the saved ARWorldMap.   @IBAction func saveWorldMapAction(_ sender: Any) {         roomCaptureView.captureSession.arSession.getCurrentWorldMap { worldMap, error in             guard let map = worldMap             else { self.worldMapLabel.text = "error \(error!.localizedDescription) "; return }             do {                 let data = try NSKeyedArchiver.archivedData(withRootObject: map, requiringSecureCoding: true)                 try data.write(to: self.mapSaveURL, options: [.atomic])                 DispatchQueue.main.async {                     self.loadWordMapButton.isHidden = false                     self.loadWordMapButton.isEnabled = true                     self.worldMapLabel.text = "Map Saved "                     print(" map saved")                 }             } catch {                 fatalError("Can't save map: \(error.localizedDescription)")             }         }     } @IBAction func AddNewRoomBtnPressed(_ sender: UIButton) {         sceneViewFloorPlan.alpha = 0         stopSession()         startSession()         oadWordMap() } private func startSession() {         isScanning = true         print("start roomCaptureView")         roomCaptureView?.captureSession.run(configuration: roomCaptureSessionConfig)         setActiveNavBar()     } var defaultConfiguration: ARWorldTrackingConfiguration {     let configuration = ARWorldTrackingConfiguration()     configuration.environmentTexturing = .none     return configuration } func loadWordMap(){     let worldMap: ARWorldMap = {         guard let data = mapDataFromFile             else { fatalError("Map data should already be verified to exist before Load button is enabled.") }         do {             guard let worldMap = try NSKeyedUnarchiver.unarchivedObject(ofClass: ARWorldMap.self, from: data)                 else { fatalError("No ARWorldMap in archive.") }             return worldMap         } catch {             fatalError("Can't unarchive ARWorldMap from file data: \(error)")         }     }()     let configuration = self.defaultConfiguration // this app's standard world tracking settings     configuration.initialWorldMap = worldMap     guard let roomCaptureViewARconfigurationFunc = roomCaptureView.captureSession.arSession.configuration else {         return }     isScanning = true    roomCaptureView.captureSession.arSession.run(roomCaptureViewARconfigurationFunc) setActiveNavBar() }
Replies
0
Boosts
0
Views
818
Activity
Nov ’22
How to pause scanning?
I'm using: RoomCaptureView: to scan my room with the device's camera. RoomCaptureViewDelegate, RoomCaptureSessionDelegate: to receive events, data, and process data My wish: I want after scanning for a period of time t, to stop the scanning process (keep the boxes in the real environment, don't draw new boxes, don't have to call the stop() function) Does Roomplan API currently do this, if so, what are the steps? ** As far as I know, there is a RoomCaptureSession available for users to handle their own ArSession, but I don't want to use this.
Replies
0
Boosts
0
Views
657
Activity
Nov ’22
RoomPlan: Use the transform and dimensions to generate 4 corner points
I'm trying to use data returned from the RoomCaptureSession delegate to draw four corners of a door in SceneKit. The CapturedRoom.Surface class has Dimensions and Transform members. I was told in the WWDC 2022 RoomPlan Slack lounge: "You can use transform and dimensions parameters to draw lines. The 4 corners can be inferred from those 2 parameters: the first column of the transform is the "right" vector, and second is the "up" vector. The fourth column is the position of the wall/door/opening/window/object Combining those unit vectors with the dimensions vector will give you the corners." So I think this is a basic vector question. I'm not sure what is meant by "Combining those unit vectors with the dimensions vector". I've tried a few things, but I'm not sure how to go about this.
Replies
5
Boosts
1
Views
2.7k
Activity
Nov ’22
Is it possible to translate RoomCaptureView user instructions?
I've been working on an app that uses the new RoomPlan API and I'm looking for a way to translate the "Scan Guidance" or User Instructions that are overlayed on the RoomCaptureView when the user is scanning a room. Instructions like "Move device to start" and "Move further away" are in English but I'd like them to be in Dutch in my case. I can't seem to find a way to provide translations to these instructions myself and setting the device region or language doesn't seem to change anything. Is this even possible currently?
Replies
1
Boosts
1
Views
1.3k
Activity
Oct ’22