superquadric op• Data kinds: points → primitive
• Call: import fullseye as fs; fs.ledger.fit_superquadric(points) -> 'dict' (implementation को सीधे call करना हो तो import superquadric; superquadric.fit_superquadric(points) -> 'dict', registry से लेना हो तो ops3d.get("fit_superquadric"))
• GPU: नहीं (केवल CPU reference implementation)
point cloud पर least_squares से superquadric surface fit करता है और dict{a,eps,R,t,residual} लौटाता है।
प्रारंभिक pose = inertia tensor के eigenvector, प्रारंभिक a = principal axis bbox का आधा, प्रारंभिक eps=(1,1)। a को धनात्मक रखकर और eps को [0.1, 2.0] में clip करके optimisation किया जाता है।
Scale: point cloud को उसके centroid पर लाकर bounding box के विकर्ण L से भाग दिए गए आयामरहित coordinates में हल किया जाता है, फिर a = L·a', t = 重心 + L·t' (重心 = centroid), residual = L³·residual' से वापस लाया जाता है (★2026-11-05 red-team N5)। पहले raw coordinates में ही हल किया जाता था; residual लंबाई की 1.5 power से घटता है, इसलिए scipy का default gtol पहले evaluation में ही पूरा हो जाता था, और s <= 1e-4 वाले point cloud पर PCA का initial value वैसा ही लौटता था (ellipsoid a=(2,1.5,1) 1.979/1.495/1.001 बन जाता था, centre 0.17·s खिसक जाता था)। अब s से स्वतंत्र एक ही हल मिलता है। जिस point cloud के सभी points एक ही हों (L == 0) उस पर ValueError।
dict: {'a': (3,), 'eps': (2,), 'R': (3,3), 't': (3,), 'residual': float}
• 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 के स्रोत।
• superquadric_fit — py -3.11 examples_3d/superquadric_fit.py
primitive को input के रूप में लेते हैं)fuse_to_voxel · angle_between_lines · angle_between_planes · angle_line_plane · distance_point_plane · distance_point_line · distance_line_line · distance_segment_segment
superquadric)sample_surface · inside_outside · superquadric_residual
*Provenance: superquadric.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.