Nodes/ComfyUI-TD/3DGStoTD
ComfyUI Node

3DGStoTD

Stream Gaussian Splats from ComfyUI into TouchDesigner as live point data

By JiSenHua·Created 2 years ago·Updated 12 days ago· 164
3DGStoTD
  • splat
    ply_path
    broadcastfalse

    GaussianSplattingtoTD - displayed in ComfyUI as 3DGStoTD - is the node that streams 3D Gaussian Splatting data from ComfyUI into TouchDesigner. The ComfyUI2TD.tox component parses it into CHOPs, and TD can render it with a free preview component. If you're doing photorealistic 3D scenes - the splatting workflow captures real scenes or renders, then splats them for viewpoint-free playback - this is the piece that gets the splat into your live TD project instead of locking it in a saved file.

    The name is slightly misleading in that it accepts two different sources: a SPLAT socket (from ComfyUI-Sharp, which you must install) or a plain ply_path string pointing at a PLY file. The SPLAT path is the in-graph route - the splat stays in memory and streams through - while ply_path is the file route for splats you've already written to disk.

    How it works

    The interesting part is what the node does to the data before shipping it. In-memory SPLAT objects from ComfyUI-Sharp carry activated parameters - opacities through a sigmoid, scales through exp - so the node inverts those back to standard 3DGS PLY parameter space (logit opacity, log scale), pulls the f_dc color term, and repacks everything into a binary PLY with the classic gaussian fields: position, color, opacity, scale, rotation. That standard-format PLY is what goes over the WebSocket (a custom message type), and the tox turns it into CHOPs TD can manipulate - points you can position, scale, and feed to the gaussian-splatting preview TOP.

    The inputs

    An output node; the splat materializes in TD.

    • splat - optional SPLAT input from ComfyUI-Sharp. Prefer this for in-memory streaming.
    • ply_path - optional string, a path to a PLY file. Either source works; the tooltip notes they're alternatives.
    • broadcast - off by default (current client only).

    Install

    Pack install is standard - ComfyUI Manager search ComfyUI-TD, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/JiSenHua/ComfyUI-TD.git
    

    Restart; dependencies (trimesh, imageio-ffmpeg, soundfile, plyfile) come with it. The heavier requirement is ComfyUI-Sharp for the SPLAT route, and the tox component must be v5.3.x or newer - this node needs the newer parser, so if you're on 5.1/5.2 from the image nodes, update it.

    Gotchas

    Version is the trap here. The README is explicit that 3DGS needs tox v5.3.x+, and the pack's other nodes only demand 5.1 - so an otherwise-working setup can silently fail on this node. The splatting preview in TD comes from Tim Gerritsen's community asset (free on the Derivative forum), which the pack credits; you'll want that for an actual preview rather than raw CHOP numbers. And if you're doing this on cloud ComfyUI, expect big payloads - a dense splat is far heavier than an image, so keep the broadcast flag off unless you really need every client to get it.

    CategoryTouchDesigner

    Inputs (3)

    NameTypeDefaultDescription
    splatoptSPLATOptional input source. Choose either this SPLAT input or ply_path. If both are provided.
    ply_pathoptSTRINGOptional input source. Choose either a PLY file path or the SPLAT input. If both are provided,.
    broadcastoptBOOLEANfalseSend to all connected ComfyUI frontend clients. If disabled, the data is sent only to the current client.

    Outputs (0)

    No outputs