Memory & budgets
What eats GPU and system memory in DNA, what the pressure badges mean, and how the app keeps itself alive when memory runs low.
DNA runs in real time, which means it keeps a lot of data ready on your graphics card and in system RAM. Most of the time you never think about it — but when a graph gets heavy, knowing what's expensive (and what the badges are telling you) helps you keep things smooth.
What uses memory
A few things dominate your memory footprint, and they're worth recognising on sight:
Textures and raster images — every loaded image, every rasterized layer, impostor, and render output lives on the GPU. Big resolutions multiply fast.
Volumes and Distance Fields — a Volume is a 3D grid, so doubling its resolution roughly eighths your memory. These are some of the heaviest things you can make.
Large collections — millions of points, dense geometry, or Gaussian splats all take real space.
Simulations — a running simulation holds its working state on the GPU for the whole time it's playing.
Decoded video and audio — imported media is decoded into memory as it plays.
DNA tracks all of this for you. Every large piece of data is grouped by what it is (textures, volumes, meshes, simulation state, splats, and so on) and counted against a budget, so the app always knows its own footprint.
The biggest single lever is usually resolution. Before you optimise anything clever, try dropping a Volume's grid resolution or a render's output size — the savings are dramatic and often invisible in the final look.
Budgets and the pressure badges
DNA sizes its GPU budget automatically from the memory your graphics card reports, and its system memory budget from a fraction of your RAM. You don't set these by hand.
The Performance panel shows live usage broken down by category, with a pressure badge that reflects how full things are overall:
Normal — plenty of headroom, nothing to do.
Warning (around 80% full) — DNA starts quietly clearing things it can rebuild, like cached results, to make room.
Critical (around 95% full) — DNA evicts aggressively to stay alive.
A badge ticking into Warning during normal work is fine — it just means the app is managing memory, which is its job. A badge sitting at Critical is your cue to lighten the graph.
What happens under pressure
When memory fills up, DNA never just crashes out. It frees space gracefully, in order:
Clears the oldest reusable data first. Within whatever's under pressure — say textures — it drops the least-recently-used items, since those are the cheapest to regenerate later.
Borrows from elsewhere. If clearing one category isn't enough, it frees from others too.
Reports cleanly if it still can't fit. On big known allocations like an export frame, DNA gives you a clear out-of-memory message instead of dying mid-render.
Your operating system also gets a say. DNA listens for the OS's own "memory is low" signals and proactively sheds caches when the whole machine is under strain — so DNA stays a good citizen alongside your other apps.
Anything DNA evicts is something it can rebuild — cached cooks, recycled render targets, parsed files. Your actual project data is never thrown away. The worst you'll notice is a brief re-cook when you next touch an evicted result.
The Web Player runs in a browser tab and can't see the operating system's low-memory signals, so it won't proactively shed caches the way the desktop app does. Keep web exports lean — modest resolutions and collection sizes — to stay within the browser's tighter limits.
When you're tight on memory
If a badge is pinned at Critical or you're hitting out-of-memory errors:
Lower Volume and Distance Field resolutions first.
Reduce render output size, or the resolution of rasterized / impostor layers.
Thin out heavy collections — fewer points, decimated geometry.
Bypass branches you aren't actively looking at, so their results can be freed.
Watch the Performance panel's per-category breakdown to see exactly what's eating the budget.