Gaussian splatting is a 3D digital reconstruction and rendering technique that uses millions of tiny, soft, overlapping 3D shapes called Gaussians to recreate real-world scenes with photorealistic detail and real-time viewing speeds. Here we use a database of photos to create make this reconstruction. We use Colmap, Brush and Supersplat to get the final result.
What exactly is Gaussian Splatting ?#
At its foundation, 3D Gaussian Splatting is a rasterization technique. It adheres to the fundamental principle of traditional computer graphics:
- Start with data describing the scene geometry.
- Project and draw that data onto the screen.
In classical graphics pipelines, scenes are broken down into triangles that are rasterized onto the pixel grid. 3D Gaussian Splatting replaces triangles with 3D Gaussians as the foundational primitive. When millions of overlapping, semi-transparent Gaussians are projected onto screen space and alpha-blended together, they reconstruct photorealistic scenes—complete with complex geometries and view-dependent lighting—at real-time frame rates.
Each individual 3D Gaussian primitive is defined by four core properties:
- Mean ($\mu$): The center position in 3D space, represented by coordinates $(x, y, z)$.
- Covariance ($\Sigma$): An anisotropic 3D covariance matrix that defines the scale, elongation, and spatial rotation of the ellipsoid.
- Opacity ($\sigma(\alpha)$): The transparency of the Gaussian, typically initialized at $\alpha = 0.1$.
- Color Parameters: Encoded either as RGB color channels or as Spherical Harmonics (SH) coefficients to model view-dependent reflections and dynamic lighting highlights.
Colmap#
First, we load the image database into Colmap, to detect features on each of them, and reconstruct them together to get the relations between each images

Brush#
Now, we use brush in order to train the database and perform the reconstruction, using Machine Learning. The app allows the user to see the rendering progress in real time.

After the training, we can see that there are a lot of artifacts created, which we will try to remove to get a more polished look.

Supersplat#
To get our finished product, we use Supersplat to visualise the 3D object, as well as remove any Gaussians that are not relevant to the object we want to show.

Here is a interactive representation of the 3D object (not working at the moment) :


