Reference to 3D reconstruction
Treat supplied images and measurements as the source of truth. The goal is a
repeatable asset with documented assumptions, not a plausible but unmeasured
mesh.
Plan and register references
- Preserve originals and record file hashes, pixel dimensions, orientation,
crop, lens/orthographic assumptions, and known dimensions. Do not silently
stretch a reference to fit a camera.
- Classify the task: single-view concept, front/side/top orthographic fit,
multi-view reconstruction, wireframe-to-mesh, logo/mascot, or texture-driven
surface. For single views, label depth as inferred.
- Establish Blender units and a named
REF_* collection. Add image empties or
planes with locked transforms; keep them out of final renders/exports.
- Create measurable landmarks (corners, centerlines, extrema, joints, and
silhouette breaks). Store expected image-space positions and tolerances.
Before modeling, read references/reference-registration.md.
Follow its idempotent image-empty recipe, camera conventions, calibration and
landmark schemas. Run scripts/reference_projection_report.py in Blender after
registration and after any camera, scale, or silhouette change. Do not accept a
visual overlay without the resulting projection report.
Reconstruction loop
- Block out with primitives at the measured scale. Lock the reference camera
and solve projection before adding detail.
- Fit the primary silhouette and major parts across all available views.
Use separate objects for independently moving parts and preserve stable
names. Avoid adding hidden geometry to cover a projection mismatch.
- Refine only after silhouette/landmark error is within the declared
tolerance. Apply controlled bevels, subdivision, and topology repair while
checking proportions at thumbnail size and in greyscale.
- Assign materials/UVs through
texture-uv-material-workflow; validate the
reference look separately from geometric fit.
- Render a neutral Blender control and the same camera through
ovrtx-current-scene-workflow. Compare framing, silhouette, normals,
occlusion, and color with label-free images plus a numeric fit report.
Use blender-community-skill-bootstrap to install upstream blender-modeling
and blender-cameras recipes when those optional skills are absent. Use
blender-python-execution for the MCP transaction. Keep reference images in a
named COL-reference collection and create them through Blender's data API;
do not depend on the current selection.
Use blender-camera-framing only for beauty or diagnostic subject containment.
Do not use it to solve a registered reference camera: registration fixes the
camera from calibration and measures object error against that camera.
Acceptance gates
- Reference files and source
.blend remain immutable; derived outputs use a
caller-selected cache/output folder.
- Every fit claim names camera/projection, landmarks or mask metric, tolerance,
and view(s) tested. “Looks close” is not a fit result.
- Image planes, guides, and diagnostic overlays are excluded from beauty renders
and USD unless explicitly requested.
- Mark unseen depth, occluded surfaces, and inferred materials as assumptions.
- Require every view to state whether depth is measured, constrained by another
view, or inferred. A passing 2D projection report does not validate depth.
- A failed OVRTX render is a runtime/add-on diagnostic; use the documented
status and log surfaces to diagnose it.
Handoff
Return the requested .blend or export plus the camera/scale assumptions, fit
metrics, and unresolved ambiguities needed to judge the reconstruction. Add a
reference manifest, source map, or previews only when the handoff benefits from
them. For USD/SimReady, continue with the dedicated skill.
1---2name: reference-to-3d-reconstruction3description: Reconstruct a measured Blender asset from one or more image references, wireframes, logos, or orthographic views, then validate scale, registered cameras, landmarks, silhouette, materials, and OVRTX output. Use for reference-locked modeling, orthographic image registration, pixel-to-world calibration, or explicit inferred-depth reporting; it needs Blender/MCP and the installed add-on.4---56# Reference to 3D reconstruction78Treat supplied images and measurements as the source of truth. The goal is a9repeatable asset with documented assumptions, not a plausible but unmeasured10mesh.1112## Plan and register references13141. Preserve originals and record file hashes, pixel dimensions, orientation,15 crop, lens/orthographic assumptions, and known dimensions. Do not silently16 stretch a reference to fit a camera.172. Classify the task: single-view concept, front/side/top orthographic fit,18 multi-view reconstruction, wireframe-to-mesh, logo/mascot, or texture-driven19 surface. For single views, label depth as inferred.203. Establish Blender units and a named `REF_*` collection. Add image empties or21 planes with locked transforms; keep them out of final renders/exports.224. Create measurable landmarks (corners, centerlines, extrema, joints, and23 silhouette breaks). Store expected image-space positions and tolerances.2425Before modeling, read [references/reference-registration.md](references/reference-registration.md).26Follow its idempotent image-empty recipe, camera conventions, calibration and27landmark schemas. Run `scripts/reference_projection_report.py` in Blender after28registration and after any camera, scale, or silhouette change. Do not accept a29visual overlay without the resulting projection report.3031## Reconstruction loop32331. Block out with primitives at the measured scale. Lock the reference camera34 and solve projection before adding detail.352. Fit the primary silhouette and major parts across all available views.36 Use separate objects for independently moving parts and preserve stable37 names. Avoid adding hidden geometry to cover a projection mismatch.383. Refine only after silhouette/landmark error is within the declared39 tolerance. Apply controlled bevels, subdivision, and topology repair while40 checking proportions at thumbnail size and in greyscale.414. Assign materials/UVs through `texture-uv-material-workflow`; validate the42 reference look separately from geometric fit.435. Render a neutral Blender control and the same camera through44 `ovrtx-current-scene-workflow`. Compare framing, silhouette, normals,45 occlusion, and color with label-free images plus a numeric fit report.4647Use `blender-community-skill-bootstrap` to install upstream `blender-modeling`48and `blender-cameras` recipes when those optional skills are absent. Use49`blender-python-execution` for the MCP transaction. Keep reference images in a50named `COL-reference` collection and create them through Blender's data API;51do not depend on the current selection.5253Use `blender-camera-framing` only for beauty or diagnostic subject containment.54Do not use it to solve a registered reference camera: registration fixes the55camera from calibration and measures object error against that camera.5657## Acceptance gates5859- Reference files and source `.blend` remain immutable; derived outputs use a60 caller-selected cache/output folder.61- Every fit claim names camera/projection, landmarks or mask metric, tolerance,62 and view(s) tested. “Looks close” is not a fit result.63- Image planes, guides, and diagnostic overlays are excluded from beauty renders64 and USD unless explicitly requested.65- Mark unseen depth, occluded surfaces, and inferred materials as assumptions.66- Require every view to state whether depth is measured, constrained by another67 view, or inferred. A passing 2D projection report does not validate depth.68- A failed OVRTX render is a runtime/add-on diagnostic; use the documented69 status and log surfaces to diagnose it.7071## Handoff7273Return the requested `.blend` or export plus the camera/scale assumptions, fit74metrics, and unresolved ambiguities needed to judge the reconstruction. Add a75reference manifest, source map, or previews only when the handoff benefits from76them. For USD/SimReady, continue with the dedicated skill.