Extends "build something like this" beyond photos:
- driver.resolve_reference(source) routes any path/URL: image/PDF → a path
claude -p reads directly; STL/STEP/OBJ → render_mesh() renders an isometric
PNG (pyvista; STEP via build123d→STL) and reports the bounding box; a normal
web URL → fetch_web_text() pulls the page's visible text.
- interpret(reference_text=) injects guide/render-dims text alongside any image
directive; handle() + controller.run_command() + woodshop-talk --ref pass it.
- command bar: picker/drag-drop accept images + .pdf + 3D files; any pasted URL
is resolved; resolution (download/render/fetch) runs off the UI thread.
- find_image_url→find_reference_url (any URL); fetch_image→fetch_url (generic).
- tests: URL detect, image+reference-text directives, fetch_url, web-text strip,
resolve_reference routing per kind, real STL render (skips without GL). 220 pass.
3D render gives the model EXACT proportions (+ bbox) instead of a 2D guess.
Honest limit: render needs the viewer stack + working off-screen GL on your box;
the live model round-trip still wants your eyes to confirm.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>