You are currently viewing 3D Model Anything: quét phòng bằng iPhone LiDAR thành scene Three.js chỉnh sửa được

3D Model Anything: quét phòng bằng iPhone LiDAR thành scene Three.js chỉnh sửa được

Wes Bos vừa đẩy lên GitHub một repo tên là 3d-model-anything. Nói ngắn gọn: bạn dùng iPhone có LiDAR quét một căn phòng, app ghi lại hình học và ảnh chụp, rồi một AI coding agent dùng dữ liệu đó để dựng lại thành scene Three.js có thể chỉnh sửa trong trình duyệt. Không phải ảnh 360 độ, không phải point cloud nặng trịch. Ra được mesh, texture, camera khớp với ảnh gốc.

Nghe thì giống mấy app scan nhà đang có trên App Store, nhưng khác ở chỗ: đầu ra là code. Bạn mở file scene ra, sửa hình học, đổi vật liệu, thêm đèn, nhúng vào web. Cái này hợp với dev hơn là với người mua bán bất động sản.

Vấn đề nó giải quyết, nói thẳng

Dựng scene 3D từ ảnh chụp thật thường có hai cực. Một là photogrammetry kiểu RealityCapture hay Meshroom, ra mesh đẹp nhưng nặng, không sửa được, không phải format web-native. Hai là mấy app scan room như Polycam hay RoomPlan của Apple, ra model đóng, export sang USDZ hay GLB rồi coi như xong, muốn chỉnh thì phải mở Blender.

Repo này chọn hướng thứ ba. App iPhone làm phần “thu thập bằng chứng”: hình học từ LiDAR, ảnh chụp, số đo. Phần còn lại giao cho agent. Agent đọc dữ liệu, đo đạc, dựng scene Three.js, rồi render các góc nhìn và so sánh với ảnh gốc để chỉnh dần. Tác giả gọi đây là “iterative reconstruction workflow”, và README nói rõ: “not a one-click scan-to-perfect-model converter”. Câu này quan trọng, đừng đọc lướt.

Hiện tại workflow chỉ tập trung vào phòng và nội thất. Đừng mong nó dựng được cái xe hơi hay khuôn mặt.

Vì sao repo này đang được chú ý

563 sao sau khoảng một ngày kể từ lúc tạo (21/10, cập nhật 22/10). Con số đó với một repo Swift làm app iOS không phải chuyện thường, nhất là khi chưa có bản App Store. Lý do nằm ở tên tác giả: Wes Bos là người làm khóa JavaScript nổi tiếng, cộng đồng dev front-end biết mặt từ lâu.

Điểm khác biệt so với đám repo 3D khác là cái “agent skill” đi kèm. Repo không chỉ có app, mà còn có một file SKILL.md ở .agents/skills/scan-to-threejs/SKILL.md. Bạn mở repo trong agent hỗ trợ local skill, bảo nó dùng skill đó với dữ liệu export, thế là nó tự đi qua quy trình đo, dựng, so sánh ảnh. Đây là kiểu đóng gói workflow thành artifact cho agent, không phải prompt rời rạc dán vào chat. Xu hướng này đang lên, và repo này là một ví dụ khá gọn.

Thêm nữa, demo văn phòng của Wes được đẩy lên GitHub Pages ở wesbos.github.io/3d-model-anything. Vào xem được ngay, có các chế độ dollhouse, walking, overhead, wireframe, knolling. Xem wireframe rồi bật overlay ảnh gốc là thấy ngay chỗ nào agent dựng lệch.

Cài và chạy thử

Viewer chạy bằng Node.js 22.12 trở lên. Clone repo rồi:

npm ci
npm run dev

Mở http://localhost:5188. Playground cho agent nằm ở đường dẫn riêng:

/play.html?room=office-v4&mode=fpv

Muốn build bản production:

npm run build
npm run preview

Lưu ý: demo chỉ đóng gói văn phòng của tác giả cùng vài texture chọn lọc. Scan gốc và bộ ảnh không được phân phối kèm, nên hai chế độ Scan và Overlay bị tắt trong ví dụ này. Muốn thử với phòng của bạn thì phải tự quay.

Phần app iOS cần Xcode, và thiết bị phải có LiDAR (iPhone Pro hoặc iPad Pro đời mới). Máy không có LiDAR vẫn import và xem lại scan được, nhưng không quét mới được. App hiện là source-available, chưa lên App Store. README nói rõ đừng giả định là tải được từ store.

Quy trình lấy dữ liệu: export room hoặc session qua share sheet của iOS, giải nén vào thư mục data/captures-in/ (thư mục này bị gitignore). Export giữ contract cũ là house-capture/5, đổi tên app không đổi format file.

3D Model Anything: quét phòng bằng iPhone LiDAR thành scene Three.js chỉnh sửa được - ảnh 1
Ảnh: github.com/wesbos/3d-model-anything

Phần agent thì mở repo trong một agent hỗ trợ local skill, rồi ra lệnh kiểu:

Use scan-to-threejs to rebuild the room in data/captures-in/my-room. Inspect the measurements and photos, create an editable scene, and compare rendered views with the original photographs.

Helper cần Python 3. So sánh ảnh cần Pillow. Muốn thử depth reconstruction thì cần thêm NumPy và Open3D. Script capture dùng CLI agent-browser.

Phòng mới đặt trong demos/ và đăng ký ở demos/index.ts. Ví dụ văn phòng giữ lại nhiều lớp dựng (office-v2, office-latest, office-v4) để bảo toàn hình học cuối.

Ai nên dùng cái này

Dev front-end muốn có scene 3D thật để test Three.js mà không phải ngồi gõ tay từng box. Làm demo walkthrough cho studio kiến trúc, showroom nội thất, hay landing page bất động sản. Dựng lại căn hộ đang thuê để thử bố trí đồ đạc trước khi mua. Giáo viên dạy WebGL cần ví dụ có dữ liệu thật.

Còn nếu bạn chỉ cần một model để in 3D hay đưa vào game engine, repo này không dành cho bạn. Nó ra scene Three.js, không ra file GLB sạch để import vào Unity.

Cũng đừng kỳ vọng chạy trên Windows hay Android. App là Swift, chỉ iOS. Viewer thì chạy đâu cũng được vì là web.

So với mấy lựa chọn khác

Polycam và RoomPlan cho kết quả nhanh hơn nhiều, mở app quét vài phút là có model. Nhưng đầu ra đóng, muốn sửa hình học phải qua Blender, và texture thường dính vào mesh theo kiểu khó tách. Repo này chậm hơn, cần agent chạy qua nhiều vòng, bù lại scene là code thuần, sửa được từng tham số.

Meshroom và photogrammetry truyền thống thì không cần iPhone LiDAR, chụp bằng máy ảnh thường cũng được. Nhưng mesh ra nặng, không tối ưu cho web, và quy trình dài hơn nếu muốn khớp camera với ảnh gốc để so sánh. Điểm mạnh riêng của repo này là cái vòng lặp “render rồi so với ảnh gốc” được đóng gói thành skill, agent tự làm thay bạn.

Ưu, nhược và mấy chỗ cần để ý

Ưu điểm rõ nhất: đầu ra là Three.js scene chỉnh sửa được, không phải file nhị phân đóng. Skill cho agent là thứ tái sử dụng được, copy sang thư mục skill của agent khác cũng chạy, miễn là có viewer/runtime đi kèm trong repo. Demo công khai, xem được ngay không cần cài.

Nhược điểm: phụ thuộc phần cứng Apple có LiDAR. Chưa có app trên App Store, phải build bằng Xcode, cản trở với người không quen môi trường iOS. Workflow nhiều bước, cần kiên nhẫn. README tự nhận là “iterative”, nghĩa là không phải một phát ăn ngay.

License là chỗ lấn cấn. Code và skill dùng MIT, nhưng ảnh và texture của văn phòng demo có điều khoản asset riêng. Thương hiệu bên thứ ba, artwork, sản phẩm xuất hiện trong ảnh không thuộc license code. Nếu bạn định publish demo từ phòng của mình, phải tự kiểm tra asset trước. Tác giả cũng nói rõ: giữ capture của bạn riêng tư.

Tài liệu ở mức đủ dùng cho dev có kinh nghiệm, không phải kiểu hướng dẫn từng bước cho người mới. Thiếu topics trên GitHub, không có release chính thức, lịch sử phát triển không được đưa vào repo. Đây là dự án non trẻ, đừng đưa vào production mà chưa thử kỹ.

Một chi tiết nhỏ nhưng đáng giá: tác giả giữ nguyên các lớp dựng cũ (office-v2, office-latest) thay vì xóa. Với người muốn học cách agent tiến hóa qua từng vòng, đây là tư liệu tốt hơn nhiều so với một scene hoàn chỉnh duy nhất.

563 sao trong một ngày là tín hiệu đáng để clone về nghịch. Nhưng hãy coi nó là bộ công cụ cho workflow, không phải cái máy scan thần kỳ. Cần iPhone có LiDAR, cần agent hỗ trợ local skill, cần Python 3 và một chút kiên nhẫn với vòng lặp so sánh ảnh. Đổi lại bạn có scene Three.js sửa được bằng code, thứ mà mấy app scan đóng gói không đưa cho bạn. Repo ở đây: wesbos/3d-model-anything.

Chia sẻ bài này

TelegramXFacebookZalo
Đăng ngày 23/10/2026
Giang Na
Về tác giả: Giang Na
Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.

Giang Na

Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.