vork by Voyager
An agent writes a scene as code, renders it on the GPU, looks at the result and revises the code. Source-available and free during the research preview.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Turn a phone video into a 360° virtual tour: a from-scratch panorama stitching engine, web player with floor plans, measurement and VR, plus an experimental 3D Gaussian-splat walkthrough. Runs on your own machine. Personal project, MIT.
翻訳待ち
Loading the full README.
Read the full README ↗Turn a phone video into a 360° virtual tour — open source.
Project site · Türkçe README · Architecture notes (Turkish) · Contributing
All screenshots show the engine's synthetic test rooms — no real home appears anywhere in this repository.
An estate agent stands in the middle of a room and turns a phone around for a minute. BioSphere
extracts the sharpest frames, solves how the camera rotated, stitches an equirectangular
panorama of up to 8K, and serves it in a web player that links rooms together, draws a floor
plan, measures distances, opens in VR and embeds in any listing page with an <iframe>. No
360 camera, no special hardware.
It began as a product for Turkish estate agents and is now an open, single-developer engineering project. Everything here runs on one laptop.
Status as of October 2026. Numbers are measured, not estimated; the measurements live next to the code and in docs/ARCHITECTURE.md.
| Feature | Notes |
|---|---|
| Guided phone capture + 360 stitching | Phone video → equirectangular panorama up to 8K. Rotation-only bundle adjustment with loop closure, mesh alignment against hand-held parallax, graph-cut seams, multi-band blending, pole fill. The reference real capture renders at 4096 px in ~170 s (was 1278 s) on a 16-thread laptop. |
| Synthetic quality gate | Renders a procedural room, simulates a phone capture (motion blur, rolling shutter, exposure drift, real parallax) and scores the stitch against ground truth with solid-angle-weighted PSNR/SSIM. |
| 360 player | Rooms linked by floor rings you walk through, a room bar, progressive resolution, embeddable <iframe>. |
| Measurement & floor plan | Distances on the floor, scaled from the camera height. Room outlines fitted from each panorama overlap the true floor at 0.984–0.991 IoU, edges within 9 cm, on rooms of known size; the plan is editable by hand. |
| Accounts, QR capture links, uploads | The phone films from a QR code without signing in (a 12-hour token for one property, honoured only on an allow-list of capture routes). Chunked, resumable uploads; live job progress. |
| Feature | Notes |
|---|---|
| Listing copy | Title and description for Turkish listing portals; every number is audited against the measured facts. About $0.005 per listing on Claude Haiku. |
| Investment assistant | A chat inside the player about rental yield, payback, purchase costs, mortgage and the area's price trend. All arithmetic runs in deterministic engine tools, market data comes from web search with cited sources. Claude Sonnet 5.5 by default, about $0.03 per question, with per-listing and global daily budget caps. Estimates, not investment advice. |
| Feature | Notes |
|---|---|
| VR | WebXR on headsets (Quest, Vision Pro) and a phone "VR box" (Cardboard) mode with lens correction and gaze selection, for both the 360 tour and the 3D walkthrough. 104 unit tests and a desktop check (?vr=cardboard); not yet tried on a real headset or phone. |
| 3D walkthrough | A Gaussian-splat model from a walk-through video: ALIKED + LightGlue features, COLMAP/GLOMAP poses, Brush training, SOG export, PlayCanvas viewer. Works on carefully captured video; a fast, blurry or messenger-compressed phone video breaks into separate parts. Needs a GPU and about 30 minutes per build. |
| Feature | Notes |
|---|---|
| Furniture removal & virtual staging | Works as a prototype. Refilling furniture in panoramas from the room's own walls and floor cut the dark-smear share from 0.43–0.71 to 0.08–0.11, but with local models (LaMa, Stable Diffusion 1.5 + ControlNet, Mask2Former) it does not reach production quality: floors still come out flat, and staging re-skins the furniture rather than redesigning the room. That needs larger models and a real GPU budget, so I kept my focus on the core 360 engine — this is the next step. |
I designed BioSphere as a product for estate agents and built every layer myself — the stitching engine (written from scratch, not on top of an off-the-shelf 360 library), 3D reconstruction, the web player, the dashboard and the AI tools.
Then I met estate agents one by one. Most don't even shoot video for a listing, and a one-minute 360 capture is, for most of them, either extra effort or simply not their preference; large listing portals already offer a similar tour to their members for free. So instead of shelving it, I made it open source — for anyone to access, use and build on. Having built, end to end and on my own, a system that turns a phone video into a walkable 360° tour genuinely makes me happy.
360 tour
phone video ─► sharp keyframes ─► feature matches ─► rotations (bundle adjustment + loop closure)
─► exposure & vignette ─► mesh alignment ─► graph-cut seams ─► multi-band blend
─► pole fill ─► 512 / 2048 / 4096 / 8192 px equirect ─► three.js player ─► <iframe>
3D walkthrough
walk video ─► keyframes ─► ALIKED + LightGlue ─► COLMAP / GLOMAP ─► levelling & scale
─► rooms registered into the walk (Sim3) ─► Brush 3DGS training ─► clean ─► .sog
─► PlayCanvas viewer
The engine is Python (FastAPI, OpenCV, NumPy/SciPy, SQLite); the dashboard, capture app and players are Next.js 16 / React 19 with three.js and PlayCanvas. Design decisions and the measurements behind them are written up, in Turkish, in docs/ARCHITECTURE.md.
This is the beginning of the README. Read the rest at the original. Read the full README ↗