sdf_csg op• 데이터 종류: coordgrid → sdf
• 호출: import fullseye as fs; fs.ledger.capsule_sdf(grid, a, b, radius)(구현을 직접 호출하려면 import sdf_ops; sdf_ops.capsule_sdf(grid, a, b, radius), 원장에서 가져오려면 ops3d.get("capsule_sdf"))
선분 a–b를 반경 radius로 두껍게 한 캡슐의 엄밀한 부호 거리장.
sdf(p) = ‖p - (a + clamp(((p-a)·(b-a))/‖b-a‖², 0, 1)·(b-a))‖ - radius. 선분까지의 최단 거리 그 자체이므로 전 공간에서 기울기 노름 1(원기둥과 달리 끝이 둥근 만큼모서리가 없어 엄밀). 리브, 배관, 뼈, 와이어, 공구의 스윕 체적 근사에 적합하다.
인수와 검증(ValueError):
• grid: 마지막 축이 3 인 float 배열 (..., 3).
• a / b: 심선의 끝점(요소 수 3). a == b 이면 구(sphere_sdf 와 일치).
• radius: 굵기(음수는 거부).
반환값: grid.shape[:-1] 의 float64.
사용처: 공구의 도달성을 "공구의 스윕 체적이 부품과 교차하지 않는가"로 볼 때, 공구를캡슐로 두고 sdf_intersect 의 최솟값이 양인지 본다. 골소주, 혈관, 섬유의 합성에도.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• procedural_hand — py -3.11 examples_3d/procedural_hand.py
• sdf_csg — py -3.11 examples_3d/sdf_csg.py
sdf 를 입력으로 받는 것)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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.