A primer on Gaussian Splats
October 15, 2025
Introduction
This blog post is here to do the following, in the most concise way possible:
- Explain what 3D Gaussian Splats are (3DGS for short).
- Talk about what they are good for and what they are not.
- Teach you how to make your own splats (with free and open-source tools).
What are Gaussian Splats?
A point cloud where each point is a little fuzzy puff of smoke. The puffs (or splats) have a color, orientation and scale. That's pretty much it. Why is this better than a regular old point cloud or a mesh? Because it turns out that if you adjust these little puffs in a clever way, they look photorealistic from any angle. In some cases, they look much better than a mesh. We'll talk more about that in a bit.
Adjusting the little puffs is called "training". It's a computationally expensive task that requires a high-end GPU and hours (or days) or processing, but it only needs to be done once. Rendering a 3DGS is much, much simpler, and really all that's required is to shoot out a ray and sample the splats it passes through.
Lets see an example. Here is a regular old point cloud:
This is the same but every point is a 10x10 square.
Here is a 3DGS but every splat is 5% of the opacity it should be.
A normal 3DGS.
Here is a closeup of a 3DGS where every splat has an outline:
3DGS vs MESHES
Let's look at a direct comparison.
BenchSplat1 from Shachar Weis on Vimeo
This toggles between mesh and 3DGS every second. The one that looks much better is the 3DGS.
3DGS excel at organics. Vegetation, fur, things that have a lot of small detail.
Interactive 3DGS
You can interactively view this 3DGS here:
SuperSplat Viewer
Another Example
Here is another example, an antique Yashica camera.
Yashika from Shachar Weis on Vimeo
You'll notice that the 3DGS can capture reflections and even refractions. Which one is better? Well, I would say it depends. The reflections are nice, but they are "baked" into the 3DGS and might not match the rest of the scene.
3DGS Pros
- High visual fidelity, photorealistic
- Can capture reflections and refractions (but there's a catch)
- Low memory footprint, faster rendering for high detailed objects
When to use which?
3DGS really shine when the object or environment has a lot of small detail, hair or fur, vegetation or organic material, shiny or even transparent surfaces. You'll get higher visual fidelity for less memory and rendering processing cost. What 3DGS doesn't have is a surface. It's essentially still a point cloud, so physics or dynamic lighting is really complicated. Not impossible, but very hard.
With a mesh, I can easily do this:
BenchBalls from Shachar Weis on Vimeo
To summarize, 3DGS pros and cons include the following.
3DGS Pros:
- High visual fidelity, photorealistic
- Can capture reflections and refractions (but there's a catch)
- Low memory footprint, faster rendering for high detailed objects
3D Models:
- Better for dynamic lighting
- Better for physics interactions
- Better for reflections that need to match a digital environment
Let's make a 3DGS
It's time to make our own 3DGS. For this you'll need a few things. We'll be using free and open-source software where possible.
Hardware:
- A decent camera. A good smartphone is ok, DSLR is better. The cheapest DSLR from 10 years ago will get you better results than a 2025 flagship smartphone.
- A PC running Windows or Linux with an NVIDIA GPU, RTX 2060 or better
Software:
- RealityScan from the Epic store (it's free for non-commercial use)
- LichtFeld Studio. It's free and open-source. Warning: setting it up is a long process (at least for Windows, I didn't try Linux). The instructions are very clear. It takes 2-3 hours and requires downloading about 20 GB of files, so be ready for that.
Software Alternatives:
- Brush Also open source, you can try it directly in a browser.
- Postshot - Used to be free but recently went to a subscription model.
- COLAMP - open-source project that does image alignment (and much more). Not easy to use but very powerful. Use this if you can't use RealityScan.
Step 1: Photography
When shooting pictures for 3DGS, your goals are a bit different than "normal" photography. We'll go over what makes a good dataset for splats.
- Lots of pictures. At least 150 for an object, 500+ if you're scanning an environment.
- High quality photos, low noise and as sharp as possible.
- Shoot RAW if possible.
- Shoot with a manually set white-balance and exposure (if possible).
- Wide DOF so that everything is in focus.
- Avoid motion blur at all costs.
The last two are important so I'll elaborate. You want your lighting to be as flat as possible. These make for visually unappealing photos, but remember that our goal is a good scan, not a good picture.
You will need to walk around your subject and shoot many pictures from different angles. If the object is complex you'll want to get in closer and do some sweeps over different parts of it. Remember that you want parallax, so always move the camera between shots and maintain a lot of overlap. 80% or more.
If you shot your pictures using RAW, open them in your favorite RAW processing software, and flatten the lighting. Bring up shadows and bring down highlights. Export as PNG.
Step 2: Alignment
In this step we'll use Photogrammetry software to align the photos and create a point cloud. There are several good options here, we'll be using RealityScan (RC for short) which is free (for projects under $1m).
Drag all your pictures into RC, go to ALIGNMENT -> Settings. If your dataset is good quality set the Max feature reprojection error to 1. If it's not, or you're not sure, set it to 5 or even 10. Press "Align Images" and wait. This will take a few minutes to a few dozen minutes, depending on number of pictures and your GPU.
When it's done, you'll have between zero and many "Components". Your goal is to have one component with as many photos as possible.
Step 3: Training the 3DGS
Open LichtFeld Studio (LFS for short) and drag the Colmap folder you've just created into it. You should see a point cloud. There are some settings in the UI that you can change (and a lot more that are only available via command line). I won't go into most, as they can get quite complex and very "rabbit-holey" but we'll talk about the important ones.
"Max Gaussian" sets the maximum number of splats that will be generated. It will start by converting each point in the cloud to a splat, but then they will split and multiply as the training progresses. The maximum number of splats will be limited by your VRAM and RAM amount.
Step 4: Cleanup and Sharing
Congrats! You made your first 3DGS. It's probably a bit of mess. You can use PointNuker to automatically delete splats that are isolated from others.
Here's what a cleaned 3DGS might look like:
To summarize, 3DGS pros include high visual fidelity and low memory footprint which will help faster rendering for high detailed objects. Moreover, 3D models are better for dynamic lighting and physics interactions.
Thanks for reading!