How RoomPlan API Uses LiDAR for 3D Floor Plans

Apple's RoomPlan API, introduced in iOS 16, leverages the hardware LiDAR Scanner alongside ARKit and machine learning to scan interior spaces and produce precise, parametric 3D floor plans. By capturing spatial depth and classifying architectural features in real time, the API enables supported iPhone and iPad devices to recognize physical dimensions, structural boundaries, and interior objects, exporting them into standard 3D formats for architecture, interior design, and real estate applications.

The Role of the LiDAR Scanner

The foundation of RoomPlan is the hardware LiDAR (Light Detection and Ranging) Scanner available on Pro-tier iPhones and iPads. The sensor projects invisible light pulses onto the surrounding environment and measures the exact time of flight (ToF) it takes for those pulses to bounce back.

This process continuously generates a dense, centimeter-accurate point cloud of the room. Unlike traditional camera-based photogrammetry, which relies on ambient light and visual contrast, LiDAR functions reliably in variable lighting conditions and accurately maps uniform, textureless surfaces like blank drywall.

Real-Time Machine Learning and Semantic Classification

While the LiDAR sensor provides geometric depth data, the RoomPlan framework uses sophisticated on-device machine learning models to interpret that data semantically.

As a user pans the device across a room, RoomPlan analyses the camera feed and point cloud simultaneously to identify and categorize specific elements:

  • Structural Surfaces: Walls, floors, openings, doors, and windows.
  • Interior Objects: Furniture and appliances, including chairs, tables, sofas, beds, refrigerators, and sinks.

Instead of generating raw, unsegmented 3D meshes, the system dynamically fits parametric bounding boxes and planar surfaces to detected items. It calculates specific attributes such as dimensions, orientation, and spatial relationships (e.g., determining that a window is embedded within a specific wall).

Scanning Workflow and Real-Time Feedback

RoomPlan provides an integrated UI component called RoomCaptureView. When initialized, it manages the underlying ARSession and displays a real-time scanning overlay:

  1. User Guidance: Visual cues prompt the user to scan uncaptured areas, adjust distance, or turn on lights if the camera feed is too dark.
  2. Dynamic Visualization: As the user scans, parametric 3D representations of walls and recognized objects render directly on the screen, showing the floor plan assembling in real time.
  3. Multi-Room Stitching: While optimized for single rooms, continuous scanning allows users to capture contiguous areas as long as tracking remains unbroken.

Data Output and Serialization

Once the scan is complete, RoomPlan outputs a CapturedRoom data object. This structure contains all detected components broken down into distinct categories:

  • Walls and Openings: Exact lengths, heights, and positions of walls, along with coordinates of cutouts for doors and windows.
  • Objects: Identified furniture instances categorized by type, complete with 3D transform matrices (position, rotation, and scale).

Developers can export this data directly to USD (Universal Scene Description) or USDZ file formats. This native export capability allows the scanned floor plans to be imported immediately into 3D design software, architectural CAD applications, or game engines without requiring manual clean-up or geometry reconstruction.