// GLOSSARY · PAINTING WITH GAUSSIANS

Painting with Gaussians

An emerging technique that builds an image from thousands of 2D Gaussian "splats" used as brush strokes, a painterly alternative to pixel grids and diffusion.

Last verified · 2026-08-05 · by Moe Ameen

What it is

Painting with Gaussians is a technique that represents and renders an image as a collection of 2D Gaussian "splats" — soft, elliptical blobs, each carrying a position, a covariance that sets its size, stretch, and rotation, a color, and an opacity — composited front-to-back like translucent brush strokes on a canvas. Instead of storing a picture as a grid of pixels, or generating it from noise the way a diffusion model does, the image is built from a few thousand of these strokes. It is the flat, image-plane cousin of 3D Gaussian splatting, the real-time scene-rendering method that broke out in 2023; here the same primitive is dropped to two dimensions and used as a paintbrush.

There are two families of method under the same name, and they differ in how the strokes get placed. The optimization approach leans on the fact that the splat renderer is differentiable: you seed random splats over a target image, then nudge each one's position, shape, and color with gradient descent until the rendered field matches the target. That path is used for image compression and reconstruction — an open project like belkakari's DrawingWithGaussians is a well-known example. The structural, or analytic, approach skips the optimization loop entirely and places strokes directly from an analysis of the source image: it detects where the edges run and how dense the texture is, then lays strokes along those directions in layers. Dmitri Sotnikov's "Painting with Gaussians," published August 3, 2026, is a recent, detailed example of the analytic family.

The analytic version is worth understanding because it shows how much you can do without a trained model. It uses a structure tensor — extended to color via a Di Zenzo tensor so it catches edges luminance alone would miss — to work out which way each brush stroke should point, a multi-scale wavelet decomposition to map where fine detail lives, a Perlin-noise flow field to add organic swirl, and a hash-based placement scheme so strokes land on white-noise coordinates instead of a regular grid that would produce visible tiling. The painting is built in tiers: broad opaque base coats first, then mid-tones, translucent glazes, and finally fine strokes that taper along the edges. It runs fast — roughly 50–110 milliseconds on a CPU, interactive on a GPU — and it is classical image processing, not machine learning.

One honest clarification: in its common form this is not a text-to-image generator. It takes an existing image — a photo or a render — and re-expresses it as brush strokes, so it is closer to a stylization, compression, and rendering technique than to a prompt-driven model like Midjourney. The payoff for a visual creator is a distinctive, hand-painted look you control down to the individual stroke, produced cheaply and deterministically, without the licensing questions or the recognizable sameness of prompt-based image models. Because the output is stored as splats rather than pixels, it can also be re-rendered at any size or lightly animated.

The history

The lineage runs through 3D graphics. NeRF (2020) proved you could reconstruct a photorealistic scene from ordinary photos, but it was slow because the scene lived inside a neural network. In 2023, "3D Gaussian Splatting for Real-Time Radiance Field Rendering" (Kerbl et al., SIGGRAPH 2023) replaced the network with millions of explicit, optimizable Gaussian blobs and a fast rasterizer, the work that popularized real-time "splatting" (the term itself dates back to volume-splatting work in the 1990s). Researchers quickly noticed the 2D case: a flat image expressed as a set of 2D Gaussians is a compact, differentiable representation, useful for compression and for stroke-based, painterly rendering.

Through 2025 and 2026 a small ecosystem of research and hobbyist projects explored the idea — DrawingWithGaussians and similar "2D Gaussian splatting as art" experiments on the optimization side, plus differentiable stroke-planning papers that borrow the same primitive. The analytic direction, which places strokes from image analysis rather than gradient descent, is newer and less common; Dmitri Sotnikov's August 2026 write-up documents one such implementation built in a Clojure-on-Scheme stack, moving from a CPU pipeline to a GPU one using OpenGL transform feedback and geometry shaders for interactive control. The through-line: the same Gaussian primitive that renders 3D scenes turns out to be a natural digital paintbrush in 2D.

Concrete examples

  • A designer runs a portrait photo through a splat painter and gets an oil-painting version built from a few thousand strokes. Because it is stored as splats rather than pixels, they re-render it larger for a print without it going soft.
  • A developer uses the optimization variant for compression: fit a fixed number of Gaussians to a target image, then store the splat parameters instead of the pixels — a compact, resolution-independent representation of the picture.
  • An artist blends the flow field more heavily with edge orientation and lowers the coherence weight, pushing the result from tight, realistic brushwork toward loose, swirling, Post-Impressionist strokes — all by turning a few dials, no retraining.
  • A creator wants one consistent hand-painted look across a product launch and generates a painterly hero image with a splat painter, then uses that single visual as the anchor for a full run of posts and graphics.

Common mistakes

  • Expecting a prompt-to-image generator. In its usual form, painting with Gaussians re-paints or fits an existing image; it does not invent a scene from a text description the way a diffusion model does. Bring a source image.
  • Confusing it with 3D or 4D Gaussian splatting. Those reconstruct 3D or moving scenes you can orbit through; this is strictly 2D, on the image plane — brush strokes on a canvas, not a scene you can fly a camera around.
  • Chasing photorealism. The whole point is a painterly, stroke-visible look. Pushing the stroke count high enough to hide the brushwork defeats the aesthetic and costs render time for a result a diffusion model would do better.
  • Placing strokes on a regular grid. Evenly spaced strokes produce visible tiling and moiré artifacts; good implementations scatter positions with noise or a hash so the coverage looks organic.
  • Ignoring edge orientation. Strokes laid down without aligning to the image structure cut across edges and muddy the result. Pointing each stroke along the local edge direction is what makes the output read as deliberate brushwork rather than smear.

The honest take

Painting with Gaussians is a rendering technique, not a content engine, and being precise about that boundary is what makes it useful rather than overhyped. What it gives you is a single, distinctive asset — a hand-painted-looking image you control down to the individual stroke, without the licensing ambiguity and prompt-sameness of the big image models. What it does not give you is the campaign around that asset. It will not write the caption, build the carousel, draft the launch blog, or put anything in front of an audience.

That gap is exactly where a generation-and-publishing engine like Kompozy is complementary rather than competitive. You bring the one striking painterly still; Kompozy turns it into a month of on-brand output built around it — [Photo Posts](/glossary/output-buckets) and Quote Graphics anchored on the image, a brand-exact [Carousel](/glossary/hyperframes) rendered through HyperFrames, a blog article and an email newsletter written net-new, all scheduled across eight social platforms plus blog and email from one place. Kompozy also generates its own images — gpt-image scene photos, Gemini face-locked persona images, server-side quote cards — so a splat-painted hero can sit inside a consistent visual set instead of standing alone. The mental model I would keep is simple: the splat painter is a brush; the content engine is the studio that ships what you paint.

Frequently asked questions

What is painting with Gaussians?

It is a technique that represents and renders an image as a collection of 2D Gaussian "splats" — soft elliptical blobs with a position, a size-and-orientation, a color, and an opacity — composited like translucent brush strokes. Instead of a grid of pixels, the picture is built from a few thousand of these strokes, giving a distinctive hand-painted look.

How is it different from a diffusion model like Midjourney?

A diffusion model generates a new image from a text prompt, starting from noise and denoising toward the description via a trained neural network. Painting with Gaussians usually re-expresses an existing image as brush strokes — a stylization, compression, and rendering technique — rather than inventing a scene from words. One needs a prompt; the other needs a source image.

Is this the same as 3D Gaussian splatting?

It uses the same primitive — a Gaussian blob — for a different job. 3D Gaussian splatting reconstructs a three-dimensional scene you can orbit around; painting with Gaussians works in 2D on the image plane, using the Gaussians as brush strokes on a flat canvas. It is the two-dimensional cousin of the 2023 method.

Do you need machine learning or a GPU to paint with Gaussians?

Not necessarily. The analytic approach is classical image processing — edge and texture analysis to place strokes — with no trained model, and it runs in tens of milliseconds on a CPU, faster and interactively on a GPU. The optimization approach uses gradient descent to fit strokes to a target image, but that is still an optimization, not a pre-trained generative model.

Can I use the output as social media content?

Yes. A splat painter exports a normal image file, so it posts anywhere a photo does. The technique makes one distinctive still; turning that still into a full set of scheduled, on-brand posts, a carousel, a blog, and a newsletter is a separate job that a content engine like Kompozy handles.

Who created "Painting with Gaussians"?

The idea of using 2D Gaussians as brush strokes grew out of 3D Gaussian splatting (Kerbl et al., SIGGRAPH 2023). Open projects such as DrawingWithGaussians explored the gradient-descent version, and Dmitri Sotnikov published a detailed analytic implementation titled "Painting with Gaussians" on August 3, 2026, which places strokes from structural image analysis instead of optimization.

Related terms

  • 4D splat formatA volumetric video format that stores a moving scene as a cloud of time-aware Gaussian "splats" — letting a viewer move the camera freely through recorded motion instead of watching a fixed 2D frame.
  • The AI Design AestheticThe recognizable visual style generative tools converge on by default — glossy, hyper-saturated, symmetrical, and uncannily smooth — now common enough that audiences and algorithms spot it on sight.
  • The AI AestheticThe design language of AI products themselves — the sparkle icon, beige-and-serif look, streaming and shimmer text — not the look of AI-generated content.
  • Avatar videoAI-generated talking-head video where a digital avatar speaks a written script using voice cloning or synthetic voice.
Related deep guides

← All terms · Get started →