carve_look_at — 3D space_carving op

• Data kinds: vector → pose

• Call: import fullseye as fs; fs.ledger.carve_look_at(eye, target=(0.0, 0.0, 0.0), up=(0.0, 0.0, 1.0)) (to call the implementation directly, import visualhull; visualhull.carve_look_at(eye, target=(0.0, 0.0, 0.0), up=(0.0, 0.0, 1.0)); from the registry, ops3d.get("carve_look_at"))

Usage

Builds a camera pose (R, t) that can be passed to carve / synthesize_silhouette.

Same implementation as look_at, under a name reachable from the public layer. Added on 2026-09-08 — until then the correct pose helper for space carving could not be reached from any of fs. / fs.op. / fs.ledger., and fs.op_find("look") also returned 0 hits. Meanwhile fs.look_at is a different thing (the gluLookAt version of render3d, 4x4, −Z forward), so passing its M[:3,:3] and M[:3,3] puts every point behind the camera and returns an empty silhouette without raising an exception. The same name with the opposite convention was the quietest possible way to be wrong.

This one uses the OpenCV convention (X_cam = R X + t, +Z forward, +X right, +Y down).

Parameters

eye : (3,) array_like camera centre (world coordinates).

target : (3,) array_like look-at point (default is the origin).

up : (3,) array_like up direction (automatically switches to a substitute axis if nearly parallel to the line of sight).

Returns

(R (3,3), t (3,)) can be passed directly to synthesize_silhouette(pts, K, R, t, size).

Background guides (the physics and conventions behind this op)

• blender_interop — Using Blender alongside — build the shape, measure it with fullseye (pitfalls: axes, units, ground truth)

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

Runnable examples (verified samples that actually call this op)

• space_carving — py -3.11 examples_3d/space_carving.py

Ops the type connects to (they accept pose as input)

fuse_to_voxel · pose_error · bundle_adjust · mean_reprojection_error · optimize_pose_graph · relative_pose · mean_edge_error · rotation_translation_error

Same category (space_carving)

carve · visual_hull · synthesize_silhouette


*Provenance: visualhull.py — 3D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.