RoomPlan struggles to identify doors and windows. How to fix that?

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)

}

Replies

Hello,

Are you seeing similar results with the sample code project? (https://developer.apple.com/documentation/roomplan/create_a_3d_model_of_an_interior_room_by_guiding_the_user_through_an_ar_experience)

If so, please file an enhancement request for more robust detection using Feedback Assistant.

If not then it would indicate an issue in your code, and then you could compare with the sample project to see what’s different!