Preview Gaussians
Preview Gaussians — the viewer this whole pack is built around
Every other node in the GaussianPack family exists to make, fix, or shrink a gaussian splat. Preview Gaussians is the payoff: an interactive WebGL viewer that renders your splat right in the ComfyUI canvas. The README for this pack literally describes it as "one node, Preview Gaussians" - it's the flagship, the reason the pack got forked in the first place. Feed it a PLY path and you get a turntable you can spin with the mouse.
The pack's GitHub repo is ComfyUI-TurntableGSViewer but the code self-identifies as "GaussianPack" everywhere else - same author who maintains ComfyUI's HyWorld2 and TRELLIS.2 wrappers. Structurally it's forked from the older comfyui-PlyPreview, but it's grown well past that.
What you get
A viewer pane with two camera modes:
orbit(default) - trackball turntable. Drag to orbit, scroll to zoom. The "I just want to look at my scene" mode.spectate- WASD fly-cam. Wander around inside the scene; the mode you want once you're inspecting structure rather than admiring it.
Two renderers, and they're meaningfully different:
playcanvas(default) - the PlayCanvas Engine v2.19 GSplat renderer. Uses WebGPU when available and falls back to WebGL2; it's the one to keep for large scenes (5M+ splats) where frame rate matters.spark- a Three.js + WebGL2 renderer with the best SH3 fidelity, and it auto-detects all the container formats: PLY, compressed.ply, SPZ, KSPLAT, SOG, SPLAT.
The transport_format decision
This is where people actually get value (or confusion). The viewer can receive the scene as:
ply(default) - lossless float32. For a 1M-splat SH3 scene that's ~225 MB down the wire, which can hang your browser on a slow connection - but every view-dependent highlight survives bit-perfect.spz- the server transcodes the PLY to SPZ v2 once and caches it next to the source file. Roughly 9x smaller (~25 MB), but SH2/SH3 coefficients quantize to 4 bits each, which flattens specular highlights.
So: previewing over a slow link or with a huge scene, pick spz; judging shiny surfaces, pick ply. The SPZ path needs Node.js on the server - if the viewer silently falls back to a slow PLY download, that's why.
The other inputs are just ply_path, camera_mode, and fov_degrees (vertical FOV, default 70°). It's an output node with no outputs - it exists to be looked at.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/PozzettiAndrea/ComfyUI-TurntableGSViewer.git
cd ComfyUI-TurntableGSViewer
pip install -r requirements.txt --upgrade
python install.py
Restart ComfyUI. Or ComfyUI Manager → search "GaussianPack". Watch for the experimental comfy-env installer - it downloads the pixi package manager on first install, which surprises everyone the first time. No model weights needed; sample scenes land in input/ automatically.
Where it fits
Wire it after a LoadPLY / LoadPLYOutput, after a GaussianMerge decimation to sanity-check the result, or after a TransformGaussian to verify orientation. If you need the scene rendered to an actual IMAGE tensor (for video, save, or further processing) rather than an interactive viewport, that's PreviewGaussianCamera's job - this one is for looking, and it's the best-looking way to do it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| ply_path | STRING | Path to a Gaussian Splatting PLY file | |
| camera_mode | COMBO | orbit | orbit - trackball turntable camera. spectate - WASD fly-cam. |
| fov_degrees | FLOAT | 705–170 | Vertical field of view in degrees |
| renderer | COMBO | playcanvas | playcanvas - PlayCanvas Engine v2.19 GSplat renderer. WebGPU when available, WebGL2 fallback. Good performance on large scenes (5M+ splats). spark - Three.js + WebGL2. Best SH3 fidelity, auto-detects all formats (PLY, compressed.ply, SPZ, KSPLAT, SOG, SPLAT). |
| transport_format | COMBO | ply | ply - lossless float32, ~225 MB for a 1M-splat SH=3 scene. Slow to download but every SH3 highlight is preserved bit-perfect from training. spz - server transcodes to SPZ v2 once and caches next to the PLY. ~9x smaller (~25 MB), but SH2/SH3 quantize to 4 bits each, which flattens specular highlights. Use when bandwidth matters more than view-dependent fidelity. |
Outputs (0)
No outputs