Doop
Doop: 오픈소스 멀티플레이어 디자인 캔버스 및 AI 에이전트용 MCP
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기My dorm room rebuilt in Blender from 16 phone photos, with Cycles renders and a 3D viewer that runs in the browser.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗My dorm room rebuilt in Blender from 16 phone photos, with Cycles renders and a 3D viewer that runs in the browser.
Open the 3D viewer · Downloads · 中文说明
| Kitchen and entrance | Desk | Cutaway overview |
|---|---|---|
All four images are Blender Cycles renders at 1600 × 1200 with 64 samples. None of them is a photo.
I wanted to see how close I could get to a real, lived-in room by modelling it by hand from ordinary photos: no laser scanner and no photogrammetry mesh. The result had to stay editable. Every cabinet door, cable, snack bag and folded jacket is a separate named Blender object, created by Python scripts that rebuild the whole scene from nothing.
scene/room.blend: the editable scene (v1) with all textures packed. Opens in Blender 4.5 LTS.renders/: the four Cycles renders above.demo/: the Three.js viewer, hosted on GitHub Pages. You can orbit the whole room with the near walls cut away, jump to the bedroom, kitchen and desk cameras, and change the light and exposure. It loads a 6 MB compressed model. The full 42 MB room.glb is on the v1.0.0 release.scripts/: build_scene.py and about 40 modules it calls (geometry, materials, lights, cameras), plus render.py, check_assets.py and the web-model compressor.assets/: textures. They are CC0 wood from Poly Haven, patterns drawn by script, surfaces sampled from my photos, and a few AI-generated prints for the bedding, the pillowcase and one oak veneer (AI_TEXTURES.md). assets/README.md says where each texture came from.build_scene.py builds the walls, the window and its blind slats, the bed frame and its bolts, the wardrobe and dresser (with rails, stiles and bevels), the kitchenette, the microwave, the coil burners, the sink basin, the bedding and the clutter. It uses a fixed random seed, so every run gives the same scene. My photos are not needed to rebuild it.render-stats.json).The .blend, the four renders and the web model in this repository are v1 (September 2026). After v1 I kept refining in the source: the calibrated layout, wood sampled from photos, better bedding, desk items and package prints. The last full build of that work, "r10", is attached to the v1.1.0-closeout release as a 161 MB .blend. Running build_scene.py on the current main builds this later revision, not v1. Two r10 preview renders (800 × 600, 32 samples):
| Desk (r10) | Dresser and bed (r10) |
|---|---|
It still looks like CG up close. The folded duvet, the pile of clothes, the backpack's shape, the transparent plastic and some of the lighting and colour are clearly off compared with the photos. The room's size is estimated. The browser viewer uses its own lights and tone mapping, so it looks flatter than the Cycles renders. I stopped iterating at r10 because each further round cost a lot of time for small gains.
Why not photogrammetry or Gaussian splats? A phone scan (Polycam, RealityScan) or a splat would look more photographic for far less work. But the result is one fused mesh or a point cloud: you can't open the wardrobe, move the suitcase or relight the room. Making the scene editable was the point of this project.
Viewer (Node 20.19+ or 22.12+):
git clone https://github.com/appleweiping/room-replica.git
cd room-replica/demo
npm ci
npm run dev # http://127.0.0.1:5173
Rebuild the scene (Blender 4.5 LTS, no extra Python packages):
blender --background --python-exit-code 1 --python scripts/build_scene.py -- --render none
blender --background scene/room.blend --python-exit-code 1 --python scripts/render.py -- \
--view all --resolution 1600 --samples 64
build_scene.py writes scene/room.blend and the full scene/room.glb. Rendering all four views overwrites renders/ and took about an hour on my laptop. cd scripts/web-model && npm install && npm run build regenerates the compressed web model.
Checks (no Blender needed, these run in CI):
python -m unittest discover -s tests
python scripts/check_assets.py # renders, demo copies, web model, manifest
The original photos are not in the repository. The laptop and tablet screens and the door notice show generic graphics, not what was really there.
The code is MIT (LICENSE). The Poly Haven textures are CC0, and assets/README.md lists their sources. My original photos are not in the repository and are not licensed. The textures sampled from them (four folders under assets/textures/, listed in the same file) are not covered by MIT or CC0, and any product artwork or trademarks they show belong to their owners.
这是我按 16 张手机照片在 Blender 里手工参数化重建的宿舍房间。所有家具、杂物和织物都是可编辑的独立对象,由 Python 脚本从零生成。仓库里的 scene/room.blend、四张 Cycles 渲染图和网页模型是 v1 版本。之后的多视角标定和材质改进在源码里,最后一次完整构建(r10)在 v1.1.0-closeout Release 中下载。唯一的实测尺寸是标准 Twin XL 床垫(36 × 80 英寸),其余尺寸都是按照片估算的。床品褶皱、衣物堆和背包等细节仍然能看出是 CG。在线三维浏览:https://appleweiping.github.io/room-replica/