How it works · Path A

The building block

Every Mirage performance is made of millions of tiny, soft blobs called Gaussian splats. Here's what a splat is, how millions of them add up to a picture, and how a computer learns them from ordinary photos.

4 interactive demos · about 7 minutes

One splat

A soft blob, not a triangle

Most 3D graphics are built from triangles: hard, flat surfaces stitched together into a mesh. A Gaussian splat works differently. It’s a soft, fuzzy oval that’s solid in the middle and fades out smoothly at the edges, like a spot of airbrushed paint.

The name comes from the Gaussian, the bell curve from statistics, which describes exactly how the blob fades. In a real scene, each splat is a 3D shape. On this page we draw them flat to keep things simple.

Each splat is described by just a few numbers:

  • Position: where it sits.
  • Shape: how wide, tall, and deep it is, and which way it’s turned.
  • Color.
  • Opacity: how solid or see-through it is.

Try each slider in the demo. Those few numbers are all a single splat needs.

Try it
One splat, every property
Position
50, 50
Size
22 × 10
Angle
30°
Opacity
90%
Color
hue 262
A position, a size and shape, an angle, an opacity, and a color. The dashed rings show where the splat fades out. A real scene is made of millions of these, each with its own numbers, layered on top of one another.
Many splats

Layered into one picture

One splat on its own is just a smudge. A full scene uses millions of them, overlapping in every direction. To turn them into an image, each pixel on your screen has to figure out which splats cover it and in what order.

This is called alpha blending, and it works a lot like stacking sheets of colored glass. The nearest splat contributes first, based on how solid it is. Whatever light gets through is shared with the splats behind it, and so on, until no light is left or you reach the background.

Because every splat is soft, the result doesn’t have the jagged edges you get with a mesh. That’s why splats are so good at hair, fabric, and skin.

Try it
How splats blend into one pixel
This pixel is made of
Purple36%
Pink36%
Blue7%
Background21%
Nearest to you
Each splat takes its share of whatever light is left and passes the rest to the splats behind it. Change which splat is nearest and watch the color of the overlap change. Move the crosshair to see exactly what any pixel is made of.
Training

Practice until it matches

Nobody places millions of splats by hand. They’re trained from photographs, using a simple loop:

  • Draw the current splats from a real camera’s point of view.
  • Compare that drawing with the photo the camera actually took.
  • Adjust every splat’s position, shape, color, and opacity a little, in whatever direction makes the difference smaller.
  • Repeat thousands of times, across many cameras.

The demo runs that same loop, live, on a small flat picture. A real capture does the same thing in 3D on a powerful graphics card, comparing against photos from every camera at once until the splats match all of them.

A good starting point helps. Random blobs work fine for a small picture, but for a real scene we first work out the rough 3D shape from the cameras, so training starts close to the answer.

Try it
Practice until it matches
Picture
This is real training, running in your browser right now. The splats start out as random gray blobs. At every step, the computer compares its picture with the real one and adjusts each blob’s position, shape, color, and opacity to shrink the difference. Try fewer splats to see how much detail you lose. A real scene works the same way, with millions of splats in 3D and many cameras at once.
Light

Color that changes with the angle

Real things don’t look the same from every angle. A satin jacket shines from one side and looks flat from another, and skin has a soft glow along its edges. To capture that, a splat’s color can shift slightly depending on the direction you view it from.

Behind the scenes, this is stored as a small set of extra numbers on each splat (called spherical harmonics). You don’t need the math to see it, though. Drag the camera around and watch the same splat catch the light.

Try it
Color that depends on where you look
The ring shows what color this one splat appears from every direction. Swing the camera toward the bright patch and the splat catches the light. Turn the effect off and it looks the same from everywhere. Highlights, the shine on fabric, and the glow of skin all depend on this.
Check yourself

Three quick questions

Key ideas
  • A splat is a soft 3D blob with a position, shape, angle, color, and opacity.
  • Millions of splats are layered, nearest first, to make every pixel.
  • Splats are trained by drawing, comparing with real photos, and adjusting, thousands of times over.
  • A splat's color can change with the viewing angle, which preserves shine and highlights.
1What does a splat's opacity control?
2How are the splats for a scene created?
3Why can a splat look different from different angles?
0 of 3 answered