<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/fast-blur-with-animated-radius-aras-website-bfmjroyb7" -->

---
title: Fast blur with animated radius · Aras' website | daily.dev
description: A deep technical exploration of fast Gaussian blur algorithms with smoothly animated radius, motivated by Blender's compositor 'Fast Gaussian' mode feeling...
canonical: https://daily.dev/posts/fast-blur-with-animated-radius-aras-website-bfmjroyb7
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Fast blur with animated radius · Aras' website | daily.dev
og:description: A deep technical exploration of fast Gaussian blur algorithms with smoothly animated radius, motivated by Blender's compositor 'Fast Gaussian' mode feeling...
og:url: https://daily.dev/posts/fast-blur-with-animated-radius-aras-website-bfmjroyb7
og:image: https://api.daily.dev/og/posts/bfMJROYb7.png
og:image:alt: Fast blur with animated radius · Aras' website
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Fast blur with animated radius · Aras' website

**[Aras Pranckevičius](https://daily.dev/sources/arasp)** · 12 min read · 1 upvotes · 0 comments

## Summary

A deep technical exploration of fast Gaussian blur algorithms with smoothly animated radius, motivated by Blender's compositor 'Fast Gaussian' mode feeling slow in some cases. The author presents a new technique called 'Smol Gaussian' (downsample, small Gaussian blur, reconstruct with cubic B-spline upsampling) and compares it against Dual Kawase, Skia's GPU Gaussian blur, Blender's recursive 'Fast Gaussian', repeated box convolution ('Ryg Blur'), and plain separable Gaussian blur. Performance benchmarks across GPUs show Smol Gaussian matches or beats Skia's approach and significantly outperforms Dual Kawase for animated, anisotropic blur. An interactive WebGPU blur playground with source code is provided, along with a work-in-progress pull request to bring the technique into Blender's compositor.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://aras-p.info/blog/2026/10/01/Fast-blur-with-animated-radius>

## Questions this post answers

### What is Dual Kawase blur and why doesn't it work well for animated blur radius?

Dual Kawase is a fast GPU blur technique from Marius Bjørge's 2015 SIGGRAPH talk that downsamples and upsamples through blur pyramid levels, but it only natively supports discrete pyramid levels rather than a continuous radius, and originally assumes equal horizontal and vertical blur. Extending it to support smooth radius changes and independent X/Y blur requires blending between levels, which does not feel smooth on HDR highlights and runs 2x-3x slower than a downsample-blur-upsample Gaussian approach.

_Developers tuning GPU blur effects can find implementation comparisons like this on daily.dev._

### Why does Blender's Fast Gaussian blur mode produce ringing artifacts on bright highlights?

Blender's Fast Gaussian mode uses recursive Gaussian filtering (a fourth-order Deriche formulation for radius under 96, Van Vliet formulation above that), algorithms from 25+ years ago originally built for CPU execution and not well suited to GPU parallelism. These recursive filters introduce ringing that is barely visible on regular colors but produces halos or negative colors on very bright HDR highlights.

_Graphics engineers debugging blur artifacts on HDR content can track algorithm trade-offs via daily.dev._

### How can you make Gaussian blur fast for large, animated blur radii on a GPU?

Downsample the image to a working resolution per axis, apply a small separable Gaussian there, then reconstruct to full resolution using a cubic B-spline filter instead of bilinear to avoid slope discontinuities on bright highlights. This 'Smol Gaussian' approach switches resolution levels at sigma=6, accounts for blur introduced by downsampling/reconstruction by subtracting their variance from the kernel, and performs about as fast as Skia's GPU Gaussian blur while getting cheaper as radius increases.

_Teams optimizing GPU image filters for performance can follow technique breakdowns like this on daily.dev._

## Similar posts on daily.dev

- [Fast Gaussian Blur Implementation in Java](https://daily.dev/posts/fast-gaussian-blur-implementation-in-java-lm2l6pci5) · Baeldung · 0 upvotes · 0 comments
- [5× faster fast\_blur in image-rs – Arthur Pastel](https://daily.dev/posts/5-faster-fast-blur-in-image-rs-arthur-pastel-aq3ee49n8) · Lobsters · 2 upvotes · 0 comments
- [Behind the KAI Design Dept. Experience: WebGL Line Blur, Video Scrubbing, and 3D Animation](https://daily.dev/posts/behind-the-kai-design-dept-experience-webgl-line-blur-video-scrubbing-and-3d-animation-stqjfzaua) · Codrops · 0 upvotes · 0 comments

---

Tags: [#gpu](https://daily.dev/tags/gpu), [#blender](https://daily.dev/tags/blender), [#image-processing](https://daily.dev/tags/image-processing), [#webgpu](https://daily.dev/tags/webgpu)

[View this post on daily.dev](https://daily.dev/posts/fast-blur-with-animated-radius-aras-website-bfmjroyb7)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Fast blur with animated radius · Aras' website","url":"https://daily.dev/posts/fast-blur-with-animated-radius-aras-website-bfmjroyb7","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/fast-blur-with-animated-radius-aras-website-bfmjroyb7"},"datePublished":"2026-10-01T11:32:33.400Z","dateModified":"2026-10-01T11:32:55.854Z","description":"A deep technical exploration of fast Gaussian blur algorithms with smoothly animated radius, motivated by Blender's compositor 'Fast Gaussian' mode feeling...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/a9ecbbb75b8f550c9f4bba06fb03cd56?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/a9ecbbb75b8f550c9f4bba06fb03cd56?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Aras Pranckevičius","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Aras Pranckevičius","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/dd31db1897d646edb394d7e6cc520c7f","url":"https://daily.dev/sources/arasp"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/fast-blur-with-animated-radius-aras-website-bfmjroyb7","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"gpu,blender,image-processing,webgpu","timeRequired":"PT12M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Aras Pranckevičius","item":"https://daily.dev/sources/arasp"},{"@type":"ListItem","position":3,"name":"Fast blur with animated radius · Aras' website"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/fast-blur-with-animated-radius-aras-website-bfmjroyb7#faq","mainEntity":[{"@type":"Question","name":"What is Dual Kawase blur and why doesn't it work well for animated blur radius?","acceptedAnswer":{"@type":"Answer","text":"Dual Kawase is a fast GPU blur technique from Marius Bjørge's 2015 SIGGRAPH talk that downsamples and upsamples through blur pyramid levels, but it only natively supports discrete pyramid levels rather than a continuous radius, and originally assumes equal horizontal and vertical blur. Extending it to support smooth radius changes and independent X/Y blur requires blending between levels, which does not feel smooth on HDR highlights and runs 2x-3x slower than a downsample-blur-upsample Gaussian approach. Developers tuning GPU blur effects can find implementation comparisons like this on daily.dev."}},{"@type":"Question","name":"Why does Blender's Fast Gaussian blur mode produce ringing artifacts on bright highlights?","acceptedAnswer":{"@type":"Answer","text":"Blender's Fast Gaussian mode uses recursive Gaussian filtering (a fourth-order Deriche formulation for radius under 96, Van Vliet formulation above that), algorithms from 25+ years ago originally built for CPU execution and not well suited to GPU parallelism. These recursive filters introduce ringing that is barely visible on regular colors but produces halos or negative colors on very bright HDR highlights. Graphics engineers debugging blur artifacts on HDR content can track algorithm trade-offs via daily.dev."}},{"@type":"Question","name":"How can you make Gaussian blur fast for large, animated blur radii on a GPU?","acceptedAnswer":{"@type":"Answer","text":"Downsample the image to a working resolution per axis, apply a small separable Gaussian there, then reconstruct to full resolution using a cubic B-spline filter instead of bilinear to avoid slope discontinuities on bright highlights. This 'Smol Gaussian' approach switches resolution levels at sigma=6, accounts for blur introduced by downsampling/reconstruction by subtracting their variance from the kernel, and performs about as fast as Skia's GPU Gaussian blur while getting cheaper as radius increases. Teams optimizing GPU image filters for performance can follow technique breakdowns like this on daily.dev."}}]}
```

