A testbed for a new Mapshroom input: your mouse, pen or touch drives a shader alongside the photo and its combined normal/depth map.
Flat paints in image space. Tilt follows a local surface plane. Warp follows the estimated depth and normals. The outline shows the same projected footprint as the paint; soft edges fade inside it. Distance-scaled shrinks the brush on farther surfaces. Surface relief adjusts the estimated slope strength. Higher masking values reject more pixels, relative to the start of each stroke.
Light edits a mask for one directional light; change its direction, color and strength at any time. Eraser works on the selected Paint or Light layer.
Shortcuts: B brush · S stamp · E eraser · T text · L light · I color picker · [ / ] brush size · Ctrl/⌘ Z undo · Ctrl/⌘ Shift Z redo.
Inspired by Adobe’s Project Deep Brush demo. Independently implemented; not Adobe software. This version estimates relative geometry and approximates shading. It does not reconstruct physical materials, invisible surfaces or semantic object masks. Images are edited at up to 1280 px; model download needs internet and may take a minute.
Depth: Depth Anything V2 Small (Apache 2.0), via Transformers.js. Generated studies: blue hatchback, inclined concrete wall, linen folds, marble statue and terracotta vase — AI images with matched maps. The car sample uses imagegen depth; other samples use Depth Anything. Normals are derived from each depth map. Samples: coffee — Rachel Michetti (CC0); Faraday — AndyScott (CC0); Credits & provenance