Preview Gaussian Sharp
The preview for gaussians that only look right from one camera
- extrinsics
- intrinsics
- extrinsics
- intrinsics
Some gaussian splats lie about being 3D. The ones from monocular depth pipelines - SHARP-style, single-image-to-gaussians prediction - are really a flat fan of depth estimates that only look coherent from the exact camera they were predicted from. Spin them in a free turntable and they look like garbage, because you're seeing them from a viewpoint they were never built for. PreviewGaussianSharp is the viewer that knows this: it takes extrinsics and intrinsics and opens the scene from that captured view, so the splat looks the way it was meant to.
It's part of the GaussianPack family (GitHub repo ComfyUI-TurntableGSViewer, self-labeled "GaussianPack") and is, by the author's own header comment, a copy of the "Preview Gaussian" node from his GeometryPack - the same 3D-node line as the HyWorld2 and TRELLIS.2 wrappers. This node is the GeometryPack-style viewer bolted onto the GaussianPack toolchain.
How it works
Where PreviewGaussians opens with a default camera (identity extrinsics, FOV from a slider), this one seeds the camera from the matrices you hand it: the camera sits at the extrinsics-derived position looking down +Z, and the FOV comes from the intrinsics. That reproduces the capture view - the one where the scene is supposed to look correct.
Both matrices are optional inputs:
extrinsics- a 4x4 camera extrinsics matrix for the initial viewintrinsics- a 3x3 intrinsics matrix for the FOV
Leave them unconnected and it degrades to a plain viewer, which is fine for a quick look but wastes the point of the node.
The part people miss: it outputs cameras too
Unlike the other previewers, this one has outputs: it passes extrinsics and intrinsics straight through. That's deliberate and useful - tee the matrices from here into PreviewGaussianCamera (which renders from explicit poses to an IMAGE tensor) or into any camera-driven node downstream. One node both shows you the capture view and hands the same view parameters onward, so what you see is exactly what will render.
Inputs: ply_path (required), plus optional extrinsics and intrinsics. Outputs: extrinsics, intrinsics.
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. Manager users: search "GaussianPack". Same pack caveats as always: the experimental comfy-env installer fetches the pixi package manager on first install, and spz-family features want Node.js. No model weights to download.
When to reach for it
If you're working with SharpPredictGaussiansFromMetricDepth output (the tooltip's own suggested source) or any monocular depth-derived splat, this is the honest preview. If a "sharp" gaussian looks broken when you open it in the normal viewer, the fix isn't the file - it's that you're orbiting a scene that only works from its origin. Open it here, with its own matrices, and it stops looking like a hallucination.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| ply_path | STRING | Path to a Gaussian Splatting PLY file | |
| extrinsicsopt | EXTRINSICS | 4x4 camera extrinsics matrix for initial view | |
| intrinsicsopt | INTRINSICS | 3x3 camera intrinsics matrix for FOV |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| extrinsics | EXTRINSICS | — |
| intrinsics | INTRINSICS | — |