← pavelm.net

/experiments

Experiments

Prototypes I am still working on. All of them are vibe coded. Expect rough edges, missing pieces and the occasional breakage; they need a recent desktop browser with a decent GPU. The finished, running projects are on the home page.

Work in progressnot hosted yet

Floor plan and photos to 3D

An automated pipeline that turns a floor plan sketch and a handful of photos into a furnished 3D model. The first run is a real apartment in Den Haag, built from nothing more than its listing: one floor plan and 29 photos. The plan is traced wall by wall into Blender, and every model is built by Blender Python scripts, with no image-to-3D service involved.

Furnishing runs as an agent swarm. An orchestrating agent (Opus) looks at every photo once and writes a spec and photo crops for each unique piece of furniture, lamp and fitting. Four material agents, one per family, turn photo samples into tileable textures. Then one modelling agent per item, about eight at a time, builds it in Blender with a shared kit until a validator passes (dimensions, triangle budget, parts that actually touch) and its preview matches the crops. Cheap Haiku agents built 52 of the 55 items and Sonnet the fitted kitchen. Eight placement agents, one per room, then set out 69 pieces, checked against renders from the photo viewpoints.

Each agent writes only its own files and only the orchestrator touches the apartment scene, so parallel work never conflicts. Saving the Blender file rebuilds the web version: baked surface maps, GPU-compressed textures, collision and a floor plan.

Walk through the result →
  • Blender
  • Python
  • Claude Code
  • Subagents
  • Opus · Sonnet · Haiku
Work in progress/fahrenheitstraat

Fahrenheitstraat 453 walkthrough

The viewer for the pipeline’s first apartment. Walk through the rooms with the keyboard or on touch, open doors, switch lights and hide pieces of furniture. The sun follows the real address for any date and time of day.

Press Raytrace and the current view is rendered with a WebGPU path tracer and Intel’s Open Image Denoise, for bounced light and reflections. Much of the work went into keeping all of it inside a phone’s graphics memory.

  • Three.js
  • WebGPU
  • Path tracing
  • OIDN
  • KTX2
Work in progress/guarded-landscape

Guarded Landscape

A remake of The Sentinel, Geoff Crammond’s classic from the ZX Spectrum days. The rules follow the original: start low, absorb trees and boulders for energy, build robot shells on higher ground and transfer into them, until you stand above the Sentinel and absorb it before it turns and drains you.

Around the rules is a new look: 10,000 seeded landscapes nine times the original size, biomes with procedurally grown trees, a day and night cycle under volumetric clouds, and sound synthesized live with Web Audio. It also runs as a desktop app.

  • TypeScript
  • React
  • Three.js
  • Web Audio
  • Tauri

On GitHub