生图3D类

手机拍 6 张照片,浏览器里 36 秒就变出一个能转着看的 3D 场景:这个开源项目连图都不上传

2026年10月19日1 次阅读
手机拍 6 张照片,浏览器里 36 秒就变出一个能转着看的 3D 场景:这个开源项目连图都不上传

一句话先说结论

有个叫 splatting-rs 的开源项目,把「用几张照片做出 3D 场景」这件事整个塞进了浏览器标签页里:你丢进去六张手机照片,等大约半分钟,就能拖动查看一个立体的、可以转视角的 3D 场景,还能把结果下载成 .ply 文件。全程照片不出你的电脑,服务器什么都不用。

它到底是什么

平时你用手机拍一堆照片,想让它们变成能转的 3D 模型,传统做法是:先在工作站上用 COLMAP 这类工具估算每张照片拍摄时的位置和角度(也就是「相机位姿」),再花几分钟到几十分钟去训练。慢、重、还得装一堆软件。

splatting-rs 想干的事,是把这条链路的前半段(也是过去最慢最烦的那半段)直接跳过。它用的是「前馈」思路:让神经网络一次前向推理,就从照片里推出深度和相机信息,不用再单独解一遍位姿;然后在浏览器里用 WebGPU 直接把「3D 高斯泼溅」(3D Gaussian Splatting,简称 3DGS)训练出来。渲染出来的效果,就是那种可以从任意角度贴近看、有体积感的 3D 场景。

为什么值得关注

3DGS 这两年一直是 3D 重建的热门方向,但它的「入口」很劝退:光是解相机位姿这一步,就足以把普通用户挡在门外。而这一次,真正的新意在「跑在哪里」——不是做出了更好的泼溅效果,而是把整条流程搬进了一个网页标签:不用装环境、不用上传、不用等服务器排队。

往大了说,这让 XR / 网页 3D 多了一条「零安装、本地生成」的路:以前看到的泼溅内容多是别人做好给你的,现在你自己在浏览器里就能造一个。

它是怎么做到的

项目由三个 Rust 库叠成一条流水线:

  • mapanything-rs:把 Meta 的 MapAnything 网络移植过来,一次前向就把照片变成带颜色的点云,官方说「不需要相机位姿」。
  • depthanything3-rs:用字节跳动的 Depth Anything 3 Small,从照片预测深度、相机和焦距。它只有约 137MB 权重,而不是 MapAnything 的 4.9GB——作者称它是「为浏览器准备的第一段」。
  • instantsplat-rs:按 InstantSplat 的思路,在点云上每个点初始化一个高斯,再用自己用 WGSL 写的 wgpu 光栅器去优化。

在网页里,Depth Anything 3 Small 跑在编译成 wasm 的 CPU 后端(放在一个 Web Worker 里,页面不会卡),高斯的优化则跑在 WebGPU 上,用的是和原生版本相同的 WGSL 内核。demo 页面承诺得很直接:「Nothing leaves your browser.(什么都不离开你的浏览器)」

实测数字(作者给出的唯一一组)

作者在 M5 芯片的 headless Chrome 里跑了一次:六张 3024×4032 的手机照片(缩到 378×504)。

  • 一次性下载模型:7 秒(之后浏览器会缓存,不再下载)
  • 预处理:0.14 秒
  • Depth Anything 3 Small:23.5 秒(wasm 单线程,含 SIMD)
  • 初始化约 26 万个高斯:0.04 秒
  • 训练:26 步/秒,默认 300 步花 11.5 秒(跑在 WebGPU)
  • 合起来约 36 秒,共生成 259,975 个高斯

一个关键对照:同样的这个深度网络,原生跑在 Metal 上只要 2 秒。也就是说,浏览器里最慢的一环不是训练,而是那个卡在 wasm 单线程上的网络。瓶颈在哪,作者自己写得清清楚楚。

适合谁用

  • 想快速把一个实物、一个小房间、一件小玩意变成「能转着看」的 3D 的人;
  • 在意隐私、不想把照片传到任何服务器的人;
  • 做 WebXR / 网页 3D、想要一条本地生成路径的开发者。

不适用 / 局限(这部分作者也没藏着)

  • 只在它所使用的少数几个输入视角附近才靠谱;换到别的角度,泼溅会「尖刺、破面」。想稳住的话,得再加一步用完整 COLMAP 采集去 refine,98 帧约 3000 步要花大约 5 分钟——等于又请回了它本想跳过的那套工具。
  • 输入分辨率被模型卡在长边 504 或 518 像素。
  • Depth Anything 3 Small 解出来的相机,精度不如 MapAnything。
  • 原生工具面向 Apple Silicon(走 Metal),有 CPU 兜底;网页里的 WebGPU 只能在 localhost 或 HTTPS 下跑。
  • 两个 Rust 移植都还没和 PyTorch 参考实现对过数值,只在真实拍摄上「看过效果」。
  • 目前它只是作者的个人早期实验(仓库自称「我的高斯泼溅实验」,检查时 0 star、只有 7 次提交),只有这一组单芯片实测,别当成成熟产品。

怎么用 / 上手路径

  1. 打开在线 demo(主页链接指向 antoinemopa.github.io/splatting-rs)。
  2. 第一次点一下,下载 137MB 的 Depth Anything 3 Small 权重;之后浏览器会缓存,下次直接用。
  3. 选两张或更多手机照片,等大约半分钟。
  4. 用鼠标拖动查看,满意就下载 splat.ply。

想更讲究效果,也可以在本地按仓库 README 用命令行跑,或者用完整版 MapAnything(11 张照片在 M5 上约 3 分钟,但相机位姿会更准)。

一点提醒

它目前的价值不在「结果有多完美」,而在「这条链路现在能跑在一个网页里、还不上传」。如果你要的是能直接拿去商用的成品模型,先别抱太高期望;如果你关心的是隐私、零安装、以及 WebXR 的方向,那这个一周大的项目值得盯着看。

参考来源

  • GitHub 仓库:https://github.com/antoineMoPa/splatting-rs (Apache-2.0)
  • 浏览器实测说明(README):https://github.com/antoineMoPa/splatting-rs/blob/main/instantsplat-rs/web/README.md
  • 在线 demo:https://antoinemopa.github.io/splatting-rs/
  • Metaverse Watcher 报道:https://www.metaversewatcher.io/splatting-rs-browser-gaussian-splat-six-photos-webgpu/
  • ExplorXR《XR Daily》(2026-10-18):https://explorxr.com/posts/2026-10-18-xr-daily/

*说明:本文基于该项目的官方仓库/README 与多家媒体的转述整理,非官方新闻稿;数字均来自作者自述的实测,尚未经第三方复现。*

参考来源

评论

0 条已公开
登录或注册后可以参与评论。

正在加载评论...