用 iPhone 的 LiDAR 一间一间扫描房间,自动拼成全屋,生成空房间白模和带尺寸的平面图,一键导出给 AI 在 Blender 里做室内设计。
Scan your home room by room with iPhone LiDAR, get an empty whitebox 3D model and a dimensioned floor plan, and export everything for AI-assisted interior design in Blender.
网站 Website · 隐私政策 Privacy · 反馈 Feedback
- 多房间扫描:基于 Apple RoomPlan,扫完一个房间命名后接着扫下一个,最后自动拼成全屋
- 自动拍照:扫描时手机拿稳就自动拍,每张照片记录拍摄位置、朝向和拍到的墙
- 白模:只保留墙、柱、地面和门窗洞口,墙上的门洞窗洞是真的挖空的;家具和设施全部去掉
- 墙体自动整理:扫歪的墙拉直到房间的主方向,同一条直线上被拆碎的墙合并,几厘米的噪点墙去掉,墙角对齐;可以一键恢复到整理前
- 柱子:自动认出贴墙柱(墙上凸出的一块)和独立柱;RoomPlan 漏掉的柱子可以在平面图上点一下手动加,填卷尺量的宽和深
- 尺寸:墙长、层高、门窗宽高和离地高度自动标注;梁下等较矮的墙单独标出墙高
- 门窗编辑:标出平开门 / 推拉门 / 折叠门、平开窗 / 推拉窗 / 固定窗 / 上悬窗,门轴和开向,调整位置和尺寸,添加或删除门窗
- 标注:测距、备注、附照片;用卷尺量过的墙可以填「实测值」
- 导出给 AI:一个 zip 包,包含
whitebox.obj/whitebox.usda/whitebox.glb:白模(GLB 可以直接拖进网页查看器和 AI 3D 工具)ai_images/:每个照片角度一组「现场照片 + 空房间白模图 + 深度图」,给 AI 生图锁住空间和透视floorplan.png/floorplan.pdf:尺寸平面图(单位 mm)scene.json:房间、墙、门窗、柱子、备注、照片位姿的结构化数据build_whitebox.py:Blender 脚本,按真实尺寸重建白模,并给每张照片还原一台同角度的相机AI_README.md:给 AI 读的说明
所有数据只保存在手机本地,App 不联网、不收集任何数据。
界面语言:简体中文、繁體中文、English、Español、日本語,跟随系统语言自动切换。
- 带 LiDAR 的 iPhone(iPhone 12 Pro 及之后的 Pro / Pro Max)
- iOS 18 或更高版本
- 没有 LiDAR 的设备可以安装,但只能加载示例户型查看效果
brew install xcodegen
git clone https://github.com/srmming/Shellplan.git
cd Shellplan
xcodegen generate
open RoomScan.xcodeproj在 Xcode 的 Signing & Capabilities 里把 Team 换成你自己的开发者团队,并把 Bundle Identifier 改成你自己的,然后连上 iPhone 运行。扫描功能必须用真机,模拟器不支持 LiDAR。
单元测试:xcodebuild test -project RoomScan.xcodeproj -scheme RoomScan -destination 'platform=iOS Simulator,name=iPhone 17'
| 目录 | 内容 |
|---|---|
RoomScan/Models/ |
FloorPlanData:唯一的数据源,导出的 scene.json 就是它本身;项目存储;示例户型 |
RoomScan/Scan/ |
RoomPlan 多房间扫描流程,扫描中的手动 / 自动拍照 |
RoomScan/Geometry/ |
RoomPlan → FloorPlanData 的转换;墙体整理和柱子识别(WallCleanup);白模几何(墙按门窗切块、外转角补角) |
RoomScan/Viewer/ |
SceneKit 3D 查看:尺寸标签、点选、测距、备注、照片位置 |
RoomScan/Export/ |
尺寸平面图(PNG / PDF)、OBJ、USDA、GLB、AI 生图素材(白模图 + 深度图)、导出包打包 |
RoomScan/Resources/ |
build_whitebox.py(Blender 重建脚本)、AI_README.md(给 AI 的说明模板) |
Design/ |
图标源文件(SVG)和生成脚本;translations.py 是界面翻译表 |
docs/ |
项目网站(GitHub Pages):介绍、隐私政策、技术支持 |
Geometry/WhiteboxBuilder.swift 和 Resources/build_whitebox.py 用的是同一套切墙和补角算法,改其中一个时另一个也要同步改。
坐标约定:右手坐标系,Z 轴朝上(和 Blender 一致),单位米,地面 z = 0。
Shellplan turns an iPhone with LiDAR into a whole-home measuring tool:
- Scan each room with Apple RoomPlan and name it; rooms are merged into one floor plan automatically.
- Photos are captured automatically while scanning, each with its camera pose and the wall it shows.
- View the empty whitebox model (walls, openings and columns only, no furniture) with wall lengths, ceiling heights, and door/window sizes. Crooked or fragmented walls are cleaned up automatically, columns are detected, and missed columns can be added by hand. Add measurements, notes, photos, and tape-measured values.
- Export a zip with OBJ/USDA/GLB whitebox, empty-room renders and depth maps at each photo angle (for AI image generation), dimensioned floor plan (PNG/PDF),
scene.json, photos, and a Blender script that rebuilds the model and recreates every photo camera.
Everything stays on the device. The app has no network features and collects no data. Available in English, Spanish, Japanese, Simplified and Traditional Chinese.
Build: brew install xcodegen && xcodegen generate, then open the project in Xcode, set your own team and bundle identifier, and run on a LiDAR iPhone.
MIT © 2026 ming zeng



