fusion opany → voxelimport fullseye as fs; fs.ledger.fuse_to_voxel(items, size=64, bounds=None, device='cpu', smooth=0.8) (実装を直接呼ぶなら import fuse3d; fuse3d.fuse_to_voxel(items, size=64, bounds=None, device='cpu', smooth=0.8)、台帳から引くなら ops3d.get("fuse_to_voxel"))fullseye.ledger.fuse_to_voxel(...) は宣言 out 型 voxel の値だけを返す(本体は補助情報も返す)。捨てられた側が要るときは fullseye.ledger.fuse_to_voxel.raw(...)、または fuse3d.fuse_to_voxel を直接呼ぶ。
(voxel, bounds)device="cuda")複数構造を共通密度 voxel へ融合(TRIZ 統合)。items=[(data,kind,params_dict), …]。
mesh(topology)+ points(sample)+ depth(観測)等の相補的な構造を 1 表現に。返り値 (voxel, bounds)。
手順: 各 (data, kind, params) を to_points(data, kind, **params) で点群にして
縦に連結し、match3d.points_to_voxel で size^3 の密度 grid に splat する
(各点が落ちる cell を +1、smooth > 0 なら σ = smooth voxel の Gaussian で
平滑)。bounds=None なら連結点群の (min, max) を格子範囲にする。
引数:
items: 空でない list/tuple で、各要素が長さ 3 の (data, kind, params_dict)
(params_dict は dict 必須)。to_points の samples を変えたければ
params に samples= を入れる。size: 1 軸の voxel 数(立方格子固定)。bounds: (lo, hi) それぞれ長さ 3。複数の雲を同じ格子に載せるとき(比較・
voxel_iou)は必ず明示する。device: torch デバイス("cpu" / "cuda")。smooth: Gaussian σ [voxel]。返り値: (voxel, bounds) — voxel は (size, size, size) float64 の
点数密度(合計 ≈ 総点数、確率ではない)、bounds は実際に使った (lo, hi)。
格子 index は points_to_voxel の floor((p - lo) / span * (size - 1)) で、
軸 0 が点の x 成分に対応する(voxel の軸順 = 点の成分順)。
検証(ValueError): items が list/tuple でない・空・要素が 3 組でない・
params が dict でない(生データを直接渡す誤用を入口で止める)。
py -3.11 examples_3d/transforms_repr.pyvoxel を入力に取れる)voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa
fusion)Provenance: fuse3d.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.