ScenarioExplorations Two rulers

Two concepts. Two rulers. One rule. Espresso machine and rangefinder

Two rulers.

Never build on a drawing.
Measure something that cannot drift.

Two GPT Image 2 concepts on Scenario became real Blender models, part by part, built by agent teams under one supervisor. One team measured a generated 3D mesh. The other measured the concept image itself. Pick an object, then drag across the picture.

The shared trap

Drawn views drift.

Both builds started where most do: ask the image model for front, side and top views, then model from them. Both found the views could not be trusted, in two different ways.

Espresso machine · views drawn one at a time

Drawn front view of the espresso machine Drawn side view of the espresso machine Drawn top view of the espresso machine, rejected

Every full edit moved something else, and the views disagreed in 3D: the lever's side plate faced the camera in both the front and the side view. Dropped after about 40 minutes and 620 CU.

Rangefinder · hero and six views in one image

One generated sheet: a three-quarter hero and six orthographic views of the rangefinder
Cross-view checkABC
Height spread18.3 %14.5 %18.7 %
Body depth spread5.3 %32.4 %13.0 %
Side views mirrored rightnoyesno

One image keeps the style together, but a script that measured the six views against each other found no sheet consistent. Worse, the front view placed the windows, lens and dials about 22 mm left of where the hero shows them.

Two answers

Two rulers, same rule.

Neither team built on what a generator drew. Each found a reference that holds still, measured it, and scored every gate through a camera fitted to the concept.

Ruler A · measure a generated mesh

Three meshes, one guide.

Tripo P2 mesh in clay
Tripo P2
Hunyuan 3D 3.1 Pro mesh in clay, the chosen guide
Hunyuan 3D 3.1 Pro Chosen
Hitem3D 3.0 mesh in clay
Hitem3D 3.0

The concept went to three image-to-3D models on Scenario at once (770 CU, 11 minutes). The most coherent mesh was scaled so the tower stands 0.40 m, rendered in fixed orthographic views at 0.3 mm a pixel, and used as a ruler. Agents measured it and were never allowed to copy, snap to or join its geometry. Where it disagreed with the concept, the concept won.

Reference
Generated mesh, 0.92 overlap
Gates scored on
5 ortho views + concept camera

Ruler B · measure the concept image

The hero is the judge.

An early camera fit: sheared body and lens rings on the wrong ellipses
First fit cheated: sheared body
Windows, controls and lens rings back-projected over the concept
Solved, features back-projected

No mesh generator was allowed, not even as a measuring proxy. The hero image is near axonometric: both ends of the body have the same height and the verticals stay vertical. That gave the camera directly (azimuth 29.9, elevation 13.6, 12.5 px per mm), and every visible feature was back-projected onto the plane it sits on and written to one millimetre file, LAYOUT.json.

Reference
The concept image, 0.993 body fit
Gates scored on
Concept camera + region crops

Every gate, four checks

Red is missing volume. Blue is extra.

Select a row to show that gate above.

Side by side

Two builds, one ledger.

Lever espresso machineRangefinder camera
ConceptGPT Image 2 on Scenario, one prompt, 1024 × 1536GPT Image 2 on Scenario, hero + six views in one 3840 × 2160 image
The rulerHunyuan 3D 3.1 Pro mesh, chosen from threeThe concept image, through its solved camera
Overlap at blockout0.9240.973
Overlap, final0.9450.967
Builders3 agents (body, brew, lever) + 1 independent reviewer4 agents (body, lens, top controls, small fittings)
Parts6773
Modelling cage102k vertices, 203k edges136k vertices, 276k edges
Clock, gates3 h 152 h 33
Agent time5 h 124 h 29
Scenario credits1,403 CU205 CU (+114 CU for the film)
LookCycles, nine colour samples checked against the conceptCycles, flocked lens interior, lights hidden from transmission

Overlap is the silhouette IoU from each concept's own fitted camera, excess counted against it. The two numbers are not a contest: the objects, the concepts and the rules differ. The rangefinder build was not allowed to use a mesh generator at all; the espresso build used one only as a ruler.

The final models

Turn them around. Check the back.

Drag to orbit, pinch or hold ⌘/Ctrl and scroll to zoom. Mesh shows the real quad edges the agents modelled, over clay; Wireframe shows them alone.

Loading the model

The renders

Cycles, from the models.

Every image renders the rebuilt geometry: no base mesh, no generated image.

Lever espresso machine

Espresso machine, three-quarter render on a light studio
Close-up of the lever linkage, spring and pressure gauge
Dark studio render from the concept angle
Rear three-quarter render
Low three-quarter render on a dark studio
Macro of the group head, portafilter and spout

Rangefinder camera

Rangefinder rendered from the concept's fitted camera
Lens close-up: knurled focus ring, chrome depth-of-field ring, timer lever
Back three-quarter: eyepiece, hinged door, film reminder dial
Exploded view: lens rings, top controls and plates on their own axes
Top view of all controls on the top plate
Clay close-up of windows, shoe, dials and lens rings

The rangefinder film

Two minutes, narrated.

Five camera moves rendered from the final scene, the process screens, a Gemini 3.8 TTS narration and an ElevenLabs Music v2.5 bed, all on Scenario.

Make your own

Take the method with you.

The making-of walks through both builds with every gate and number. The agent skill gives your agent the same route through Scenario MCP for a concept of your own.

One supervisor, two rulers.

Both builds were steered by a Claude Opus 5.5 supervisor that measured, directed and rejected, while modelling agents wrote one Blender Python script per part group. Every number here comes from the two production ledgers.

Ruler A · Lever espresso machine

  1. 1

    One concept

    A lever espresso machine, one prompt, 1024 × 1536: brushed stainless, graphite side panels, a walnut handle, a pressure gauge.

    WithGPT Image 2 on Scenario · 11 CU

  2. 2

    Drawn views, dropped

    Front, side and top drawn one at a time. Local pixel moves held positions to about 1%, but the views disagreed in 3D. Stopped after about 40 minutes.

    WithGPT Image 2 · Python (PIL) · 620 CU

  3. 3

    Three base meshes

    Tripo P2, Hunyuan 3D 3.1 Pro and Hitem3D 3.0 ran on the concept at once. Hunyuan won: a connected linkage, a real dial, no invented parts.

    WithScenario image to 3D · 770 CU · 11 min

  4. 4

    A ruler, not a model

    Scaled so the tower stands 0.40 m, rendered in five fixed orthographic views at 0.3 mm a pixel; a camera fitted to the concept (overlap 0.935).

    WithBlender 5.2.1 · SciPy · Birefnet cutout · 2 CU

  5. 5

    Blockout, then primary forms

    Three agents in parallel: body, brew, lever. They measured the mesh and were never allowed to copy, snap to or join it.

    WithBlender headless · bpy · gates at 0.90 and 0.93

  6. 6

    Detail, then a second pair of eyes

    Only details the concept shows. An independent reviewer audited 66 objects: 0 blockers, 5 majors, 10 minors, all fixed and re-gated.

    WithBooleans · angle-limited bevels · weighted normals

  7. 7

    Look

    Per-part brushing directions, polished trims, graphite powder-coat, walnut, a printed dial; nine colour samples within about 10 levels of the concept.

    WithCycles · OIDN

Ruler B · Rangefinder camera

  1. 1

    Concept and views, one image

    An unbranded 1960s rangefinder: hero 3/4 plus six orthographic views in a single 3840 × 2160 image, three candidates.

    WithGPT Image 2 on Scenario · 205 CU

  2. 2

    Check the sheet, then demote it

    A script segmented every view and compared widths, heights and depths. No sheet agreed with itself; the hero of sheet B became the only judge.

    WithPython · OpenCV

  3. 3

    Solve the concept's camera

    Free optimisation cheated (sheared body, negative radius). Reading the picture gave a near-axonometric camera; a local search on the body outline reached 0.993.

    WithNumPy · SciPy

  4. 4

    Back-project to millimetres

    Windows onto the front plane, controls onto the top plane, rings onto the lens axis, all into LAYOUT.json. The sheet's front view turned out 22 mm off.

    WithOne shared layout file

  5. 5

    Blockout at 0.973

    Primitives at the measured positions, scored as a silhouette from the fitted Blender camera, before any detail.

    WithBlender 5.2.1 headless · bpy

  6. 6

    Four part groups, three rounds

    Body, lens, top controls and small fittings in parallel. Agents found interface conflicts; the supervisor settled each in LAYOUT.json and reviewed every region from the concept camera.

    WithHard-surface stacks · EXACT booleans · weighted normals · 0 intersections

  7. 7

    Look, solved by elimination

    The lens glass read as bright stripes. Four test renders showed the studio leaking through the elements; lights hidden from transmission and a flocked interior gave the deep black of the concept.

    WithCycles · OptiX

Making of · PDF

Both builds, step by step

Open the making-of ↗

Agent skill · ZIP

Rebuild your own concept

Download the skill

Scenario

Make yours

Start free ↗

What did not work

  • Espresso: drawn turnaround views moved with every edit; a masked image edit failed with a server error and still cost 69 CU.
  • Espresso: Tripo P2 returned its mesh turned 33° and had to be squared before comparing.
  • Rangefinder: the first camera fits bent the geometry to fit a focal bound that was too low.
  • Rangefinder: a screw moved off an edge round straight into the rewind knob; the agent that owned it caught it.

Tip

Pick a reference that cannot drift, fit a camera to the concept, and score every gate from that camera. The ruler can be a generated mesh or the image itself; it is never the model.

Credits

1,608 CU

Espresso 1,403 · rangefinder 205. The rangefinder film added 114 CU (narration 24, music 90).