gyroid_solid_mask — 3D 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"))

Usage

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.

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)

• minimal_surfaces — py -3.11 examples_3d/minimal_surfaces.py

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

voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa

Same category (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.