title, date, draft, tags, categories
| title |
date |
draft |
tags |
categories |
| CrowdRoom · 总览(v0.1) |
2026-05-20 |
false |
| CrowdRoom |
| 众包 |
| 3D 重建 |
| 机器人 |
| 隐私 |
| iOS |
|
|
CrowdRoom · 总览(v0.1)
一句话定义:CrowdRoom 是「RoomPlan 版的 Sketchfab + Pinterest」——人人用 iPhone 扫一个房间,传到云端就有可在浏览器里 360° 把玩、分层切换、换家具换材质、Remix 再创作的 3D 房间社区。
本章是 CrowdRoom 的总览,与既有 plans/PRISM/00_overview.md 对齐:PRISM 是「机器人空间记忆操作系统」,CrowdRoom 是它的消费级前台与数据入口——把"专业机器人技术栈"和"普通用户的手机"用一个社区粘合起来。
1. 产品定位
| 维度 |
描述 |
| 一句话 |
"RoomPlan 版的 Sketchfab + Pinterest":扫房 → 上传 → 共享 → Remix |
| 内容形态 |
一个房间 = 一份 RoomPlan 源文件(.usdz + JSON)+ 服务端转码出的 .glb + 4 层可切换图层 |
| 核心动作 |
Scan → Upload → View → Toggle Layers → Remix → Share |
| 区别于 Sketchfab |
不是任意 3D 模型库,而是结构化的真实房间(带语义:墙/地/家具/材质) |
| 区别于 Polycam 社区 |
Polycam 偏个人云盘,CrowdRoom 偏公共内容流 + Remix 文化 |
| 区别于 ArcGIS |
不做专业 GIS 查询,只做"分层显示/隐藏/替换"这种消费级图层操作 |
CrowdRoom 不和 PRISM 抢机器人场景,它解决的是「怎么让 RoomPlan 数据从一个人的相册变成一个生态」的问题。
2. 目标用户画像
| 画像 |
标签 |
典型行为 |
核心诉求 |
| A · 扫房爱好者(Scanner) |
极客、博主、Polycam 老用户、租房博主 |
周末扫家、扫民宿、扫展览,上传炫技 |
上传顺、出图快、获赞获关注 |
| B · 灵感党(Browser) |
室内设计学生、装修业主、ins/小红书图源党 |
不扫,只逛;收藏好看的房间作灵感板 |
浏览流畅、能搜风格、能收藏分组 |
| C · Remixer(创作者) |
设计爱好者、3D 玩家、UGC 创作者 |
拿别人扫的房间,换墙纸/换沙发/隐藏家具发"我的版本" |
操作低门槛、能版本对比、能 fork |
三类用户构成采集 → 消费 → 再创作的内容飞轮,对应 plans/iphone/iphone_simplified_plan.md 里"个人验证用 RoomPlan"的轻量场景,但把生产者从 1 人扩到 N 人。
3. 核心用户故事(MVP 范围内 8 条)
| # |
As a |
I want to |
So that |
| US-1 |
扫房爱好者 |
在 iOS App 里调用 RoomPlan 扫完房间一键上传 |
不用导出 USDZ 再手动传 |
| US-2 |
扫房爱好者 |
上传时给房间打标签(户型 / 风格 / 城市)并选择公开/私有 |
控制我作品的可见性与隐私 |
| US-3 |
灵感党 |
在浏览器里 360° 旋转、缩放、走进一个房间 |
不装 App 就能看 |
| US-4 |
灵感党 |
用复选框开关 墙 / 地板 / 家具 / 材质 四个图层 |
像 ArcGIS 那样按需查看结构或装饰 |
| US-5 |
Remixer |
把家具图层里的某件家具替换为公共资产库里的另一件 |
不重新建模就能做"装修方案" |
| US-6 |
Remixer |
把墙面/地面材质换成公共材质库里的另一种 |
快速试色 / 试材质 |
| US-7 |
任何用户 |
给一个房间点赞、评论、收藏到画板 |
形成社区互动 |
| US-8 |
扫房爱好者 |
上传前由 App 自动模糊照片中的人脸/身份证/品牌 logo |
默认隐私安全,不用我手工检查 |
故意不包含的 user stories:实时多人协同编辑、复杂 BIM/CAD 出图、专业 GIS 空间查询、跨房间拼接成楼层——见 §7 非目标。
4. 总体架构图
关键说明:
- iOS App 是唯一采集入口(RoomPlan 仅 iOS);Web 端只消费、不采集
- BaaS(Supabase)= Auth + Postgres + Storage + Edge Functions 一站式,避免自建后端
- Transcode Worker 与 Asset Library 是「服务器渲染/转码」的承载者,对应用户原话里的"服务器渲染"
- CDN 直发
.glb,Web 端实际渲染发生在浏览器 GPU(Three.js),服务端不做实时渲染——这是消费级路线的关键性价比决策
5. 技术栈选型表
| 层 |
推荐 |
备选 |
一行理由 |
| 移动端语言 |
Swift + SwiftUI + RoomPlan |
Flutter + 原生桥接 |
RoomPlan 是纯 iOS API,原生 Swift 最薄 |
| Web 框架 |
React + Vite + TypeScript |
Next.js / SvelteKit |
React 生态最厚,与 R3F 无缝 |
| 3D 渲染库 |
Three.js + React-Three-Fiber + drei |
Babylon.js / PlayCanvas |
R3F 让"图层切换/换家具"用 React 组件思维直接表达 |
| BaaS |
Supabase |
Firebase / Appwrite |
开源、Postgres 底座、便于后续平滑迁移到自建 |
| 对象存储 |
Supabase Storage(小流量)→ Cloudflare R2(量大后) |
AWS S3 / Backblaze B2 |
R2 零出口费,国内外访问都还行 |
| CDN |
Cloudflare |
Bunny.net / 阿里云 CDN |
与 R2 同栈、免费额度大 |
| 转码 Worker |
Node + gltf-transform + USD CLI,跑在 Fly.io / Railway 容器 |
AWS Lambda(冷启动慢,pass) |
gltf-transform 做 Draco/Meshopt 压缩成熟;USD CLI 解 .usdz |
| 公共资产库 |
Google <model-viewer> Asset Pack + 自建 PBR 库 |
Sketchfab API |
起步用免费 CC0 素材,避开版权 |
| CI/CD |
GitHub Actions(iOS 走 fastlane → TestFlight;Web 走 Vercel) |
GitLab CI |
学习成本低、与 Supabase 集成方便 |
| 监控 |
Sentry + Supabase Logs |
Datadog |
个人/早期项目够用 |
该表只列MVP 默认选项;具体表结构、API 端点、转码流水线细节由后续子任务(01_data_schema.md / 02_api_contract.md)展开。
6. 与 PRISM 的关系:复用与边界
6.1 一句话定位
CrowdRoom = PRISM 的"消费级前台 + 数据入口"。
PRISM 解决"机器人怎么记住一个房间",CrowdRoom 解决"普通用户怎么把房间贡献出来、怎么消费别人的房间"。
两者共享同一份"RoomPlan → 结构化空间"的数据约定,但生命周期、SLA、安全模型完全不同。
6.2 复用点(CrowdRoom 直接受益于 PRISM 的既有设计)
6.3 暂不引入的 PRISM 特性(边界)
原则:CrowdRoom 是 PRISM 的只写入口 + 只读消费;它产出的数据可被 PRISM 后续 import 作为先验地图源("普通用户贡献先验"是诱人的长期愿景,但不在 MVP 范围内)。
7. MVP 范围与非目标
7.1 MVP 8 周内能交付(围绕 §3 的 8 条 user stories)
| 模块 |
交付物 |
| iOS App(TestFlight) |
RoomPlan 采集 + USDZ/JSON 导出 + 上传 + 标签 + 隐私脱敏(人脸模糊) |
| Web 前端 |
列表页 / 详情页 / R3F 渲染器 / 4 层图层切换 / 公共素材替换 / 评论点赞 |
| Supabase 后端 |
Auth、rooms / layers / remixes / comments / likes / assets 7 张核心表、Storage 桶、上传回调 Edge Function |
| Transcode Worker |
USDZ → .glb(Draco 压缩) + 生成 layer_manifest.json(4 层引用) |
| 公共资产库 |
≥ 30 件家具 .glb + ≥ 20 种 PBR 材质(CC0 来源) |
| 内容审核 |
上传时静态规则 + 人工 review 队列(暂不做 AI 审核) |
7.2 明确不做(MVP 外)
- ❌ Android / Web 端采集(RoomPlan 仅 iOS,且不引入 Android ARCore 替代——避免数据双标)
- ❌ 实时多人协同编辑(Remix 走 fork 模型,不走 OT/CRDT)
- ❌ 空间 SQL / 任意自定义图层 / PostGIS 查询(P2)
- ❌ LOD、楼层拼接、跨房间空间索引(P2)
- ❌ 商品化(链接到电商)、付费墙、订阅
- ❌ 机器人接入 / PRISM Pipeline B-D 任何一项
- ❌ 自训练 3D 基础模型(家具识别一律用 RoomPlan 内置语义 + 公共资产匹配)
8. 风险与开放问题(≤ 5 条)
| # |
风险 / 开放问题 |
当前判断 |
待后续子任务回答 |
| RK-1 |
RoomPlan 仅 iOS 且需 LiDAR(iPhone 12 Pro+) |
接受为前提,等同于早期 Polycam 的市场范围;不做 Android 替代 |
是否在 Web 端也开放"上传第三方 USDZ"作为 PC 用户入口? |
| RK-2 |
.usdz 在 Web 端兼容性差(Three.js 无原生 USDZ loader) |
服务端强制转 .glb,Web 端只见 glTF |
转码失败率、.usdz 中嵌入纹理/动画的边界由 02_transcode_pipeline.md(待建)回答 |
| RK-3 |
UGC 内容审核:色情、违法建筑、他人住宅未授权扫描 |
MVP 走"上传时声明 + 举报下架 + 人工 review";不上 AI 审核 |
法律边界(中国大陆 vs 海外)、举报响应 SLA 由 10_governance.md(待建)回答 |
| RK-4 |
隐私脱敏:纹理里可能包含人脸、身份证、品牌 logo、镜子里的人 |
默认开启端侧 Vision 人脸检测 + 高斯模糊;镜面区域参考 PRISM no_update_zone 思想做警告 |
脱敏算法细节、用户能否关闭、是否服务端二次扫描由 01_data_schema.md + 09_privacy.md(待建)回答 |
| RK-5 |
存储与带宽成本:单个房间 .usdz 5–50 MB,.glb 压后 1–10 MB;千用户日活即可烧光免费额度 |
MVP 用 Supabase 免费额度 + Cloudflare R2 零出口费;设单用户上传配额 |
配额数值、冷热分层策略、缩略图分级由 02_transcode_pipeline.md 回答 |
9. 下一章预告
| 子任务 |
待产出 |
关注问题 |
01_data_schema.md |
Supabase 7 张表 DDL、layer_manifest.json Schema、与 PRISM L1-L4 的字段映射 |
RK-4 隐私字段、§6 R4 复用怎么落 |
02_api_contract.md |
REST/PostgREST + Edge Function 端点表 |
上传协议、转码回调、Remix fork API |
03_ios_app_plan.md |
iOS App 模块拆解 + 隐私脱敏实现 |
US-1, US-2, US-8 |
04_web_app_plan.md |
Web 前端组件树 + R3F 图层渲染策略 |
US-3~US-7 |
章节版本:v0.1 · 草案
关键收获:CrowdRoom 是 PRISM 的消费级前台;走 Supabase + Three.js + iOS-RoomPlan 的三件套路线;MVP 8 周覆盖 8 条核心 user stories;专业 GIS 与 PRISM Pipeline B/C/D 明确划在 MVP 之外。