Skip to main content

3DGS to Mesh — Convert Gaussian Splatting to OBJ

Extract a triangle mesh from your Gaussian Splatting scene. Runs entirely in your browser using Marching Cubes.

Last updated Mar 2026

Drop a 3DGS file to extract mesh

Supports .ply and .splat (max ~1M Gaussians)

What You Should Know

How 3DGS to Mesh Conversion Works

Gaussian Splatting represents scenes as millions of 3D ellipsoids (Gaussians), not triangles. This tool converts that representation into a standard triangle mesh by: (1) building a 3D density field from the Gaussian positions and scales, (2) running Marching Cubes to extract the iso-surface where density exceeds a threshold, and (3) transferring colors from the nearest Gaussians to each mesh vertex. The result is an OBJ file with vertex colors that approximates the shape of the original 3DGS scene.

Expected Mesh Quality

The Marching Cubes approach produces an approximation of the surface — not a perfect reconstruction. The mesh will capture the overall shape and major features but may look "blobby" compared to the original Gaussian render. Fine details like thin wires, hair, and sharp edges may be lost or smoothed. This is inherent to the voxel-based approach. For higher quality, increase the grid resolution (at the cost of processing time and memory). The output is useful for 3D printing previews, game engine collision meshes, and quick shape estimation.

Tuning Parameters

Grid resolution controls the voxel density: 64 is fast but coarse, 128 is balanced, 256 captures fine detail but needs more memory and time. The surface threshold (iso-value) controls how much Gaussian density is needed to form a surface: lower values produce thicker, more complete surfaces (good for sparse scenes), higher values produce thinner, cleaner surfaces (good for dense scenes). Start with resolution 128 and threshold 0.5, then adjust based on the result.

Why This Is Hard in the Browser

Professional 3DGS-to-mesh tools (SuGaR, KIRI Engine) run on GPU servers and take 10-45 minutes per scene. They use differentiable rendering and neural surface reconstruction for high-quality results. This browser tool uses a simpler approach (density splatting + Marching Cubes) that runs in seconds but produces rougher output. The tradeoff is: instant results with no install vs. higher quality from server-side processing. For many use cases — collision meshes, 3D printing proxies, quick shape checks — the browser result is good enough.

Frequently Asked Questions
OBJ with vertex colors (RGB). The file can be imported into Blender, Unity, Unreal Engine, MeshLab, and most 3D tools. If you need STL for 3D printing, import the OBJ into our OBJ to STL converter.
Yes. The tool transfers colors from the nearest Gaussian splat to each mesh vertex. The vertex colors are stored in the OBJ file as extended vertex attributes (v x y z r g b). Most tools support this, including Blender and MeshLab.
The Marching Cubes algorithm extracts surfaces from a voxel grid, which inherently smooths sharp features. Increasing the grid resolution helps but won't eliminate the blobby appearance entirely. For production-quality meshes, use GPU-based tools like SuGaR or KIRI Engine.
The tool handles up to approximately 1 million Gaussians in the browser. A typical 3DGS PLY with 1M Gaussians is about 60-250 MB depending on SH degree. Processing time ranges from 10 seconds (64 resolution) to several minutes (256 resolution).
No. All processing runs locally in your browser. Your file is read into memory, the density field is computed, Marching Cubes runs, and the OBJ is generated — all on your device.
No. The conversion is one-way. The mesh is a surface approximation of the Gaussian field — it does not contain the spherical harmonics, opacity, or covariance data needed to reconstruct the original 3DGS representation.

Related Tools