curvature op• Data kinds: points → signal
• Call: import fullseye as fs; fs.ledger.mean_curvature(points, k=25, normals=None) (implementation को सीधे call करना हो तो import curvature3d; curvature3d.mean_curvature(points, k=25, normals=None), registry से लेना हो तो ops3d.get("mean_curvature"))
mean curvature H=(k1+k2)/2। → (N,)। orientation पर निर्भर मात्रा।
normals (oriented reference normals, (N,3)) न देने पर convex-side heuristic इस्तेमाल होता है (open surface का concave/convex sign अनिश्चित रहता है)। oriented normals देने पर परिणाम global orientation के साथ मेल खाता है और सही sign देता है।
अतिरिक्त:
• गणना principal_curvatures जैसी ही है (k+1 neighbourhood का PCA normal + local quadric surface fit), और (k1 + k2) / 2 लौटाता है। इकाई 1/लंबाई है।
• sign की convention में convex धनात्मक है, और यह global concave/convex से तभी मेल खाता है जब normals दिया जाए। न देने पर open surface का H हमेशा convex side पर रहता है (absolute value के बराबर)।
• जिन points का neighbourhood 5 points से कम है उन्हें 0 मिलता है। k को N-1 तक काटा जाता है।
• radius R के sphere के लिए 1/R, cylinder के लिए 1/(2R), plane के लिए 0। saddle point (k1 = -k2) भी 0 देता है, पर gaussian_curvature वहाँ ऋणात्मक होता है, इसलिए दोनों में भेद किया जा सकता है।
• normals (N,3) होना चाहिए और हर row finite तथा non-zero हो (ValueError)। Deterministic।
• blas_threads_and_memory — Matrix decompositions धीमे क्यों हैं — BLAS threads, caches, memory layout
• 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 के स्रोत।
• curvature_shape_index — py -3.11 examples_3d/curvature_shape_index.py
• minimal_surfaces — py -3.11 examples_3d/minimal_surfaces.py
signal को input के रूप में लेते हैं)curvature)principal_curvatures · gaussian_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.