Nodes/ComfyUI_HYWorld2/πŸ“¦ Decompose PLY Data
ComfyUI Node

πŸ“¦ Decompose PLY Data

Pulling the cameras and point cloud out of a PLY_DATA bundle

By AHEKOTΒ·Created 4 months agoΒ·Updated about a month agoΒ· 74
πŸ“¦ Decompose PLY Data
  • ply_data
  • camera_pose
  • camera_intrinsics
  • pts3d
  • pts3d_conf
β—„view_index0β–Ί

The WorldMirror nodes hand you a PLY_DATA socket that bundles a surprising amount of stuff: camera poses, intrinsics, point clouds, confidence maps, splat parameters. That's convenient when you just want to preview, but a wall when you want to poke at the internals. VNCCS_DecomposePLYData is the pry-bar - it cracks that bundle open and hands you the individual tensors so you can inspect, rewire, or feed them into something else.

It's a utility node in the truest sense: nothing generative, nothing trained, just extraction. But it's genuinely useful, because the camera tensors are what you need when you want to drive a viewer, build a trajectory, or understand why a reconstruction looks the way it does.

How it works

Give it a ply_data (from any WorldMirror/WorldMirrorV2 reconstruction node or a saved PLY). It pulls out four pieces:

  • camera_pose - the camera-to-world pose for one view, shaped [4, 4].
  • camera_intrinsics - the focal/projection matrix for that view.
  • pts3d - the 3D point positions from the reconstruction.
  • pts3d_conf - the per-point confidence values, which tell you which reconstructed points the model actually trusted.

The view_index input (default 0) selects which camera view's pose/intrinsics you extract - the pose tensor is stored as [B, S, 4, 4] (batch Γ— views), and the node clamps your index into range. So it's the natural way to reach in and grab, say, camera 3's pose for a targeted render.

Inputs and outputs

One required input (ply_data), one optional (view_index). Four outputs: camera_pose, camera_intrinsics, pts3d, pts3d_conf - all TENSOR. Wire the camera tensors into preview nodes (VNCCS_BackgroundPreview takes optional camera poses/intrinsics to frame the viewer), or just read the point counts to sanity-check a reconstruction.

Install & troubleshooting

Same pack install as the rest: ComfyUI Manager (search HY-World 2.0) or clone + pip install -r requirements.txt + python install.py. No models, no downloads, no VRAM - extraction only, so it's instant.

The main gotcha is expectations about view_index: the default 0 gives you the first camera, not "the best" one. If a pose looks odd, it's probably just not the view you wanted - step through with view_index before suspecting the reconstruction. Also note the node reads whatever the reconstruction stuffed into the bundle; if you see zeros or missing tensors, the source node didn't populate that field (some reconstruction paths skip confidence maps), which is a source-node quirk, not this node's bug.

CategoryVNCCS/3D

Inputs (2)

NameTypeDefaultDescription
ply_dataPLY_DATAβ€”
view_indexoptINT00–100β€”

Outputs (4)

NameTypeDescription
camera_poseTENSORβ€”
camera_intrinsicsTENSORβ€”
pts3dTENSORβ€”
pts3d_confTENSORβ€”