geom_transform op• Data kinds: voxel → voxel
• Call: import fullseye as fs; fs.ledger.vol_rotate(vol, angle_deg, axes=(1, 2), order=1, reshape=False, mode='constant', cval=0.0) (to call the implementation directly, import volxform; volxform.vol_rotate(vol, angle_deg, axes=(1, 2), order=1, reshape=False, mode='constant', cval=0.0); from the registry, ops3d.get("vol_rotate"))
Rotate a volume in the plane of an axis pair (scipy.ndimage.rotate).
*axes* names the rotation plane and must be exactly one of (0, 1) (z-y plane, turning about the x-axis), (0, 2) (z-x, about y) or (1, 2) (y-x, about z — the axial-slice rotation; the default). Any other pair — including a reversed one like (2, 1) — raises ValueError, so the direction convention below is never silently flipped.
Direction (pinned): a positive *angle_deg* rotates from the first axis of *axes* toward the second — the same convention as np.rot90. Concretely, vol_rotate(v, 90, axes=a, reshape=False, order=0) equals np.rot90(v, 1, axes=a) bit-for-bit when the in-plane shape is square (the test pins this).
reshape=False (default) keeps the input shape (in-plane corners that leave the frame are lost, entering ones are filled with *cval* per *mode*); reshape=True grows the in-plane shape to contain the whole rotated frame — the grown output is cap-checked against MAX_VOXELS *before* the call. *order* is the spline degree (exact integer 0..5; >1 overshoots — module notes).
Returns a (D, H, W) float64 volume (same shape unless *reshape*).
• 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.
• vol_geometry_transform — py -3.11 examples_3d/vol_geometry_transform.py
voxel as input)voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa
geom_transform)*Provenance: volxform.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.