transform op• Data kinds: voxel × points × mesh × depth × gaussians → points
• Call: import fullseye as fs; fs.ledger.to_points(data, kind, samples=20000, **kw) (to call the implementation directly, import fuse3d; fuse3d.to_points(data, kind, samples=20000, **kw); from the registry, ops3d.get("to_points"))
Any 3-D structure → a point set (the common representation). It funnels all five structures into one entry point.
kind: "points"(N,3) / "mesh"=(vertices,faces) / "depth"=depth+{fx,fy,cx,cy[,stride]} /
"voxel"=density grid+{iso} / "3dgs"=means(N,3).
Conversion per kind (as implemented):
• "points" / "3dgs": simply returns np.asarray(data, float) (no shape check; passing (N, 3) is the caller's responsibility).
• "mesh": data = (vertices, faces). match3d.mesh_to_points does area-weighted uniform sampling of samples points (default 20000, fixed seed = deterministic).
• "depth": data is a depth map (H, W); fx, fy, cx, cy in kw are required (KeyError if missing), stride is optional (default 1, thinning). Pinhole back-projection by match3d.depth_to_points turns only pixels with depth > 0 into (x, y, z) points (camera coordinates, x = column direction, y = row direction, z = depth).
• "voxel": the density grid (D, H, W) is thresholded with kw["iso"] (default 0.5), and the integer index coordinates (z, y, x) from np.argwhere are converted to float as the point cloud. They are not converted to physical coordinates (spacing is not applied).
Returns: (N, 3) float64. ValueError if kind is none of the above. samples is ignored for anything other than "mesh".
Caution: "voxel" coordinates are in array index order (z, y, x), while "depth" gives camera coordinates (x, y, z); the meaning of the axes differs per kind. When mixing different kinds with register_cross / fuse_to_voxel, the caller must reconcile this difference.
• 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.
• transforms_repr — py -3.11 examples_3d/transforms_repr.py
points as input)points_to_voxel · gaussians_to_voxel · estimate_point_normals · match_points_ncc · match_pca · moment_axes · icp_point2point_3d · icp_point2plane
transform)points_to_voxel · gaussians_to_voxel · mesh_to_voxel · mesh_to_points · depth_to_points · voxel_to_mips · voxel_to_mesh · tsdf_from_depth
*Provenance: fuse3d.py — 3D 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.