gaussian_curvature — 3D curvature op

• Data kinds: points → signal

• Call: import fullseye as fs; fs.ledger.gaussian_curvature(points, k=25) (implementation को सीधे call करना हो तो import curvature3d; curvature3d.gaussian_curvature(points, k=25), registry से लेना हो तो ops3d.get("gaussian_curvature"))

उपयोग

Gaussian curvature K=k1·k2 (normal उलटने पर invariant)। → (N,)।

अतिरिक्त:

• principal_curvatures वाले ही local quadric surface fit से k1 * k2 लौटाता है। sign normal की orientation पर निर्भर नहीं करता, इसलिए normals argument नहीं है (orientation हमेशा neighbourhood centroid heuristic से होती है)।

• इकाई 1/लंबाई² है। radius R के sphere के लिए 1/R², cylinder और plane के लिए 0, saddle point के लिए ऋणात्मक (k1 और k2 के sign विपरीत)।

• k neighbourhood में points की संख्या है (default 25, N-1 तक काटा जाता है)। जिन points का neighbourhood 5 points से कम है उन्हें 0 मिलता है।

• elliptic points (K>0) / parabolic points (K=0) / hyperbolic points (K<0) के वर्गीकरण में काम आता है। convex और concave में भेद के लिए mean_curvature या shape_index को normals दें।

• input (N,3) point cloud है। Deterministic।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• blas_threads_and_memory — Matrix decompositions धीमे क्यों हैं — BLAS threads, caches, memory layout

संदर्भ (sample data, साहित्य)

• 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 के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• curvature_grasp — py -3.11 examples_3d/curvature_grasp.py

• curvature_shape_index — py -3.11 examples_3d/curvature_shape_index.py

वे अगले ops जिनसे type जुड़ता है (signal को input के रूप में लेते हैं)

fuse_to_voxel

इसी category के (curvature)

principal_curvatures · mean_curvature · shape_index · estimate_normals


*Provenance: curvature3d.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.