surface op• Data kinds: none → voxel (an op determined by its arguments alone — it takes no image or data input)
• Call: import fullseye as fs; fs.ledger.gyroid_solid_mask(shape=(64, 64, 64), level=0.0, periods=1.0, thickness=0.3) (to call the implementation directly, import render3d; render3d.gyroid_solid_mask(shape=(64, 64, 64), level=0.0, periods=1.0, thickness=0.3); from the registry, ops3d.get("gyroid_solid_mask"))
The gyroid as a printable solid: the shell within ±*thickness* of the level set.
Returns a `volume` (float 0/1), so it feeds the existing voxel ops
(`vol_label / skeletonize_vol / mesh_slice_stack`) directly and needs
no marching cubes —— this form works on bare numpy, while
:func:gyroid_isosurface needs scikit-image.
★Why this earns its place: at `level = 0` the field is odd under the
body-centred inversion, so the solid fraction of the two sides is *exactly*
equal —— a symmetry fact the mask can be checked against (the measured
fraction above 0 converges on 0.5 as the grid refines), and the shell volume
grows linearly in *thickness* for small *thickness* because the level set has
finite area. Both are independent of how the field was sampled.
Raises `ValueError`: a grid below 8 per axis or over the cap;
non-positive periods; a non-finite level; a negative thickness.
• 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.
• minimal_surfaces — py -3.11 examples_3d/minimal_surfaces.py
voxel as input)voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa
surface)minimal_surface · minimal_surface_bend · gyroid_isosurface · curve3d_tube_mesh
*Provenance: render3d.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.