Depth Studio
RECONSTRUCTION WORKBENCH
1

Image

Upload a photo, or generate one from text — then edit it with a prompt.

Style & look optional

Prompt map (batch) optional

A tree of prompts: {a|b} branches into variants, so {a dog|a cat} runs {fast|slowly} renders 4 images. JSON works too and can sweep settings — {"text":"make it red","params":{"strength":[0.3,0.6,0.9]}}.

Advanced (negative, size, steps)

Editing and inpainting keep the uploaded image's shape (only scaled down so the CPU keeps up).

2

What do you want to make?

Tap an action — it starts right away.

3

Result

No result yet

Add an input in step 1 and tap an action in step 2 — the result shows up here.

3D from silhouettes

A voxel hull carved from a grid of silhouettes and colored from the photo. Camera angles are estimated and can be fixed by hand.

Voxel hull from silhouettes + camera estimate.

drag = rotate · scroll/pinch = zoom
Views / angles
The grid is split into views when you run it — then each angle can be corrected.

Run the reconstruction, then fine-tune the angles.

Debug artifacts
Pipeline & settings (voxels, segmentation)
running done dead / disabled branch

Prompt → 3D

SD-Turbo generates the object and turns it into a 3D model — a depth shell from one image, or a visual hull from four sides.

PROMPT

Write a prompt and tap Run — generating on CPU takes a few minutes.

drag = rotate · scroll/pinch = zoom
Generated views
depth: 1 image · hull: front 0° / right 90° / back 180° / left 270°

Nothing yet — tap Run.

Debug artifacts
Pipeline & settings (voxels)
running done dead / disabled branch

Depth map

3D relief from a single image (Depth Anything V2). The camera auto-calibrates from vanishing points; the knobs only fine-tune.

Depth estimate → textured relief.

drag = rotate · scroll/pinch = zoom
original
depth (lighter = closer)
Camera
Estimated automatically — the knobs only nudge it.
Pipeline & settings (auto calibration)
running done dead / disabled branch

Multi-view (SfM)

Poses and a point cloud from 2+ views — matching (LightGlue / classic), registration and depth fusion. Tune the matcher and run again.

Matches the views, solves poses and fuses depths.

drag = rotate · scroll/pinch = zoom
Registration summary
Re-run after tuning the matcher and compare inliers / rms.


Robustness (matcher)

The dense, scan and matcher switches live at their steps in "Pipeline & settings" below. The scan runs off stereo geometry, so it yields points and a mesh even without dense.


Display (after a run)
Keypoints (green = matched)
Pairwise matches (green = inliers)
Epipolar scan (green = dense hits)
Pipeline & settings (matcher, dense, scan)
running done dead / disabled fallback

Video → 3D

Splits the video into shots (cuts and scene changes are expected), tracks points across frames with KLT, estimates camera poses per shot and builds a 3D space for each.

Each shot becomes its own 3D space — pick one below.

drag = rotate · scroll/pinch = zoom
Shots
Cuts detected in the video. Tap a reconstructed shot to show its space.


Display (after a run)
Pipeline & settings (scan)
running done dead / disabled fallback

Ghost hand

Shoot a video from a tripod while your hand moves an object. The hand gets erased and filled with the recovered background — the object looks like it moves on its own.

The processed video shows up here.

Video
A static camera is required — the background is a per-pixel median over the frames.

Spike: the hand is found by skin tone (no ML), so where it covered the object a "bite" remains — that gap is what a known 3D model of the object will fill in later.

Debug artifacts
Pipeline
running done