Debut Homes - Room Scanning
Organization
Debut Homes LLC
Skills
RoomPlan
Metal
Swift
ARKit
Alamofire
REST API
I built a native iOS app using Swift, Metal, and RoomPlan to scan entire homes, generate floor plans, and capture spatial data for 360° panoramas and Gaussian splatting. Developed custom shaders for real-time scan feedback and prototyped on-device mesh texturing before shifting to a cloud-based reconstruction pipeline
#Swift #Metal #Job #ARKit #AugmentedReality
Overview
I developed a native iOS home-scanning app using Swift, Metal, Satin, and Apple's RoomPlan framework. The app guides users through scanning an entire property room by room, generating a floor plan while collecting the spatial data and imagery needed to reconstruct the home in 3D.
I was the sole iOS developer on this project. I worked with our backend engineer and the company's founder to deliver the product according to specifications.
The app serves as the capture component of a larger pipeline, sending data to a backend for processing into 360° panoramas and Gaussian splats.
Real-Time Scanning Feedback
One of the main challenges was helping users understand which areas of a room had been captured sufficiently.
I built custom shaders in Metal to visualize scan coverage in real time, giving users immediate feedback on areas that needed more attention. This made the scanning experience more intuitive and helped users capture the data needed for high-quality reconstruction.
Exploring On-Device Mesh Texturing
Our initial approach was to reconstruct and texture a 3D mesh directly on the device, similar to apps like Polycam and KIRI Engine.
I developed a working prototype of a custom mesh-texturing algorithm, demonstrating that we could generate textured 3D geometry from captured scan data.
However, after evaluating the visual quality of our results and comparing them with existing solutions, we concluded that conventional mesh texturing couldn't consistently achieve the level of photorealism we wanted.
Pivoting to Gaussian Splatting
We shifted our reconstruction strategy toward Gaussian splatting, moving the computationally intensive processing to the backend.
This changed the role of the iOS app. Rather than trying to produce the final 3D reconstruction on-device, it became a focused spatial data capture tool, designed to guide users through the scanning process and collect high-quality input for downstream processing.
This pivot allowed us to prioritize what mattered most on mobile: an intuitive capture experience, reliable spatial data, and clear real-time feedback.
Uploading Captures
The app talks to the Debut backend over a REST API through Alamofire and a shared Debut API client. Agents sign in with email and password, and each capture is uploaded against their account.
Gaussian splat frames stream while a room is still being scanned, and frames that fail because the device is offline are retried afterward. After each room, its feature-point cloud is uploaded as well. When the listing is finished, the app uploads the floor plan, room structure, hero photos, and 360° frames, then publishes the capture so the backend can train one Gaussian splat for the property.
Technologies
Swift — Native iOS development
Metal + Satin — AR visualization and custom shaders
RoomPlan — Room scanning, spatial understanding, and floor-plan generation
LiDAR / ARKit — Spatial data acquisition
Gaussian Splat Capture — My part was capture, not generation, of splats. Generation was done on a backend 3D reconstruction pipeline, which was our backend developer's responsibility.
Alamofire & REST — Account sign-in, live splat-frame uploads, and the floor plan, photos, and 360° frames the backend uses to train a splat

