surface opなし → voxel(引数だけで決まる op —— 画像やデータの入力を取らない)import fullseye as fs; fs.ledger.gyroid_solid_mask(shape=(64, 64, 64), level=0.0, periods=1.0, thickness=0.3) (実装を直接呼ぶなら import render3d; render3d.gyroid_solid_mask(shape=(64, 64, 64), level=0.0, periods=1.0, thickness=0.3)、台帳から引くなら 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.
py -3.11 examples_3d/minimal_surfaces.pyvoxel を入力に取れる)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. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.