gsplat op• Data kinds: table → table
• Call: import fullseye as fs; fs.ledger.gs_from_world(world: 'dict', *, spacing: 'float' = 0.004, max_per_object: 'int' = 20000, pos_noise: 'float' = 0.0, color_noise: 'float' = 0.0, sigma_ratio: 'float' = 1.0, normal_ratio: 'float' = 0.1, opacity: 'float' = 0.99, curv_ratio: 'float' = 0.5, edge_ratio: 'float' = 0.25, seed: 'int' = 0) -> 'dict' (to call the implementation directly, import gsplatnp; gsplatnp.gs_from_world(world: 'dict', *, spacing: 'float' = 0.004, max_per_object: 'int' = 20000, pos_noise: 'float' = 0.0, color_noise: 'float' = 0.0, sigma_ratio: 'float' = 1.0, normal_ratio: 'float' = 0.1, opacity: 'float' = 0.99, curv_ratio: 'float' = 0.5, edge_ratio: 'float' = 0.25, seed: 'int' = 0) -> 'dict'; from the registry, opsdrive.get("gs_from_world"))
Returns a 3DGS with Gaussians attached to the faces of the world (world = a driveworld world dict: V, F, face_color, objects).
Per object, spacing s_o = max(spacing, √(object area / max_per_object)) and count N_o = ⌈area / s_o²⌉. Faces are chosen by stratified sampling proportional to area (the (k + u)/N_o points of the cumulative area, u a uniform random number per object), and within a face an R2 low-discrepancy sequence is used (uniform random numbers leave gaps = holes). The covariance is a flat disc along the face; local spacing s_f = max(s_o / 8, min(s_o, curv_ratio · R_f / sigma_ratio)) (R_f = estimated curvature radius of the face; corners ≥ 75° are not counted):
the flat disc is kept small enough not to stick out of the curved surface, and thin parts (threads) are populated more densely accordingly (count weight = area / s_f²). Faces touching a corner (75° or more to the neighbouring face) get s_f ≤ edge_ratio · s_o (the same as 3DGS refining at edges: large discs stuck out past the edge —— the mouth of a bead's hole —— and closed the hole). Σ = R diag(σt², σt², σn²) Rᵀ, σt = sigma_ratio · s_f (default 1.0 = the same as the 3DGS initial value "mean distance to the 3 nearest points"; with 0.7, gaps with α < 0.95 remained in 7 % of the plate's pixels), σn = normal_ratio · σt, R = [t1 t2 n] (local frame of the face). Errors (fixed per Gaussian, the same across frames): position in the face's local frame N(0, pos_noise²) (3 axes), colour N(0, color_noise²) (clipped).
Return dict: face (N,), bary (N,3), offset_local (N,3), color (N,3), opacity (N,), sigma_t (N,), sigma_n (N,), obj (N,) (index into the world's objects), label (N,), spacing_obj (number of objects,), plus mu (N,3), R (N,3,3) (columns = t1, t2, n), normal (N,3) filled in by gs_update.
fail-closed: spacing ≤ 0, max_per_object < 1, noise < 0, sigma_ratio ≤ 0, normal_ratio ≤ 0, opacity ∉ (0, 1], or a world without faces raises ValueError.
Empty input (world is an empty dict) raises ValueError.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_kendama — py -3.11 examples/poc_kendama.py
table as input)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
gsplat)gs_update · gs_render · gs_render_fn · gs_read_file
*Provenance: gsplatnp.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.