sdf_csg op• Data kinds: coordgrid → sdf
• Call: import fullseye as fs; fs.ledger.capsule_sdf(grid, a, b, radius) (implementation को सीधे call करना हो तो import sdf_ops; sdf_ops.capsule_sdf(grid, a, b, radius), registry से लेना हो तो ops3d.get("capsule_sdf"))
line segment a–b को radius radius से मोटा करके बने capsule का exact signed distance field।
sdf(p) = ‖p - (a + clamp(((p-a)·(b-a))/‖b-a‖², 0, 1)·(b-a))‖ - radius। यह segment तक की न्यूनतम दूरी ही है, इसलिए पूरे space में gradient norm 1 है (cylinder के विपरीत सिरे गोल होने से कोई कोना नहीं, इसलिए exact)। rib, piping, हड्डी, wire और tool के swept volume के approximation के लिए उपयुक्त।
Arguments और validation (ValueError):
• grid: अंतिम axis 3 वाला float array (..., 3)।
• a / b: core line के end points (3 elements)। a == b हो तो sphere (sphere_sdf से मेल खाता है)।
• radius: मोटाई (negative अस्वीकार)।
Return value: grid.shape[:-1] का float64।
कहाँ उपयोग करें: tool की पहुँच को "tool का swept volume part से नहीं टकराता?" के रूप में जाँचते समय, tool को capsule के रूप में रखकर देखें कि sdf_intersect का न्यूनतम मान positive है या नहीं। trabeculae, रक्त वाहिकाओं और fibres के synthesis में भी।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• procedural_hand — py -3.11 examples_3d/procedural_hand.py
• sdf_csg — py -3.11 examples_3d/sdf_csg.py
sdf को input के रूप में लेते हैं)sdf_to_occupancy · fuse_to_voxel · integrate · extract_surface_points · query_distance · sdf_union · sdf_intersect · sdf_subtract
sdf_csg)grid_coords · sphere_sdf · box_sdf · plane_sdf · cylinder_sdf · torus_sdf · sdf_union · sdf_intersect
*Provenance: sdf_ops.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.