Learn — what is gaussian splatting?

A place, rebuilt out of light.

No triangles. No texture maps. A gaussian splat is millions of oriented ellipses hanging in space — each one holding a position, a size, a tilt, a color, and how solid it is. Together they carry the light your camera saw, and the room comes back exactly as it stood.

GAUSSIANS318 DENSIFYING DRAG TO ORBIT
FIRST GUESS SHARP

Drag the rail: same scene, more gaussians. The right end is nine thousand of them. A real capture runs into the millions, and keeps getting sharper the whole way.

Scroll

Step · 01 — the loop

It tunes itself against every frame.

Nothing measures a splat into existence. MacSplat solves where your camera stood, scatters a rough cloud of ellipses into the scene, renders a guess from one of those viewpoints and holds it against the real frame. The difference tells every ellipse exactly how to improve— a little left, a little wider, a little greener, a little more solid. Then it goes again. Tens of thousands of times, until the render and the photograph are the same picture.

Why — the renderer runs backwards

Splatting a gaussian onto a pixel is a smooth bit of arithmetic, so it can be differentiated: for every pixel that came out too red, you can compute exactly how much each ellipse's position, size, tilt, color and opacity contributed to that redness. Slide all of them a hair down that slope and the next render is closer. That's the whole trick — the picture is the supervision, and nobody has to model anything.

FRAMES SFM — CAMERAS SOLVED SEED CLOUD TRAIN · DENSIFY · PRUNE SPLAT
ITER0 GAUSSIANS9 PSNR0.0 dB TRAINING

This is the real loop, at 80×80 pixels.

Nine fat ellipses, one target image, and gradient descent doing the rest — running here, not a video. Watch the error panel drain and the fit climb past 35 dB. A blob flashes green when it splits: an ellipse too coarse for the detail it covers gets cut in two, invisible ones get deleted. That is how a splat gets from a few thousand to a few million without anyone deciding where they go.

Where the first ellipses come from

Structure from motion matches features across your frames, solves the camera path, and drops a sparse point cloud. Every one of those points becomes a gaussian — that's the guess training starts from.

TOO COARSE → SPLIT IN TWO

Split, and prune

An ellipse that is blurring over real detail gets cloned and shrunk; one that ended up transparent or enormous gets thrown away. The count is never fixed — the scene decides it.

COLOR PER ANGLE

Color that knows where you stand

Each gaussian stores its color as spherical harmonics — a little function over directions — so a wet floor or a chrome kettle brightens as you move, instead of staying a flat painted patch.

Step · 02 — two approaches

Two ways to rebuild the same room.

Photogrammetry and splatting start from the same footage and the same solved cameras, then part ways. A mesh commits to geometry: it decides where the surface is, stretches triangles over it and bakes color into them — something you can edit, collide with, animate, print. A splat never builds a surface at all; it fits translucent ellipses until the render matches the photograph — the light of the place, kept as it was. Different logic, different technology, different answers. Which one is right depends entirely on what you plan to do next.

{{ meshChip }} {{ splatChip }} SURFACE — SOLID, EDITABLE, DECIDED LIGHT — SOFT, VIEW-DEPENDENT, OBSERVED

One capture, two representations.

Move your pointer across to slide the divider; drag to orbit. Same frames, same cameras. On the left, geometry gets decided: clean, solid, light enough to hand to a game engine — and the curve of the handle, the rim of the glass and the glaze on the jug all get resolved into faceted surface, because surface is what a mesh has. On the right, nothing gets decided: the ellipses simply agree on what the frames showed, reflections and all.

Where they differ Mesh Splat
Made oftriangles + baked textureoriented 3D gaussians
Flat walls, floors, boxes✓clean and cheap~can look grainy
Leaves, hair, wire, mesh fabric~resolved into surface✓kept, wisp for wisp
Glass, chrome, wet stone~baked as one fixed color✓shifts as you move
Physics, collision, 3D print✓it is a surface✗nothing to collide with
Editing, rigging, animation✓every tool on earth~young, improving fast
Weight on disk✓megabytes~hundreds of megabytes
Looking like the real place~convincing✓often indistinguishable
Capture to result~modelling and cleanup✓one pass, no cleanup
Grab it