40
←→

How I built this ethereal flow field

An ethereal flow field breakdown. One million particles in a compute shader, then feedback, bloom, vignette, and chromatic aberration stacked into smoke.

Loading...
←Upgrading pixel sorts and flow fields
←

Ready to start learning?

What's included in the course ↓

Access to the course: master shader techniques, use workflow-enhancing utilities, learn from shader breakdowns with full code, and get downloadable R3F and vanilla projects.

One single payment. No subscription required. 30-day money-back guarantee. No questions asked.

Not sure which to pick? Most people choose Pro for the full collection and all future updates. Fundamentals is a focused, lower-cost starting point you can upgrade from any time.

“Knowing shaders is your unreasonable advantage in UI. Ben has worked super hard on this course, recommended!”
Joshua Crowley - Designer and Educator
Loading...

Fragments

Learn creative coding with shaders. For design engineers, creative coders and shader artists: techniques, tools, deep dives. Powered by ThreeJS and TSL.

New techniques, breakdowns and shader experiments — straight to your inbox.

2026 Phobon

phobon.ioShadercraft

Pages

HomeTechniquesUtilitiesBreakdownsWorksWriting

Contact

X @thenoumenonhey@fragments.supplyOKAY DEV @phobon
All rights reserved.
Curriculum
Works171
Writing40

A million particles and a lot of smoke

Here's the breakdown of an ethereal flow field I built with a new creative coding tool I've been working on.

It starts with a compute shader. One million particles packed into a dense ball, pushed around by curl noise, drawn as tiny additive sprites, then fed through several layers of post-processing effects.

If you want the same starting point, Fragments has the flow field technique. This piece stays on sprites rather than the mesh mode I shipped recently. The glow comes from additive sprites, not lit meshes.

Even with this many particles, and this much post-processing, we're still pushing 120fps on my laptop. I'm so impressed with what Three.js and TSL can do on WebGPU.

The finished flow field

Feedback that builds on itself

Each layer builds on the last, and the first layer builds on itself. A feedback pass samples the previous frame so the shapes have a history and leave a trail. Without this pass you get a particle ball. With it, the field smears into smoke. It's a simple trick, but it creates a lot of depth and character. I'll be exploring this one a lot more.

Output of the feedback layer

Oversaturate, then bloom

Then I oversaturate the result so the brightest parts of the image blow out and bloom. The middle of the field turns into a really intense core. The rest of the wisp stays thinner because it never got that bright. It's the yang to the feedback's yin. Feedback made the smoke. Bloom gives the core its punch.

Output of the bloom

Vignette, always a good idea

People who've followed me for a while know I put a vignette on almost everything. I love how dramatic the scene gets once the edges go dark. The smoke has a place to sit instead of floating in a flat rectangle. Dark edges, bright core. Bloom and vignette are doing the same job from opposite ends, and the piece suddenly has a focal point.

Output of the vignette

Chromatic aberration into the spirit realm

The last step is a very heavy chromatic aberration. RGB splits hard. The whole thing goes dreamy and a bit wrong, which is the point. I played a lot with this one to get the look I wanted.

Output of the chromatic aberration

Tying it all together

Most of the code lives in a single compute shader. Everything after that is a chain of post-processing effects, processed into oblivion. The creative coding tool I'm building makes it extremely easy to stack and tweak this kind of chain. I've been using it every day to build things like this. Total game changer.

The whole interface

From left to right:

  • A curled noise sim in a compute shader
  • Additive sprite rendering. Three.js doing its thing
  • Feedback layer
  • Bloom layer
  • Vignette layer
  • Chromatic aberration

All of it in Three.js, TSL, and React Three Fiber, plus a ton of utilities from Fragments that you can use today. The tool itself is still in heavy development, but I'm getting really close to a proper announcement and a beta launch. More on that soon.

Fragments is turning 1!

Fragments is going on sale to celebrate the 1-year anniversary of launch (wow!) and Three.js Conf at the start of September. On September 3, it's 33% off until September 17. I'll send out an email with a code for anyone who wants to jump in.

Get the course ↵
FundamentalsAccess to foundational shader techniques and utilities
  • ✓ 5 foundational long-form technique lessons
  • ✓ 7 fundamentals lessons
  • ✓ 24 foundational workflow enhancing utilities
  • ✓ 71 full shader breakdowns
  • ✓ Downloadable R3F and Vanilla projects
  • ✓ Access to community Discord
Get Fundamentals →$99USD
ProMost popularFull access to the entire Fragments collection. Includes all techniques, utilities, breakdowns and all future updates
  • ✓ 12 long-form technique lessons
  • ✓ 7 fundamentals lessons
  • ✓ 60 workflow enhancing utilities
  • ✓ 171+ full shader breakdowns
  • ✓ Downloadable R3F and Vanilla projects
  • ✓ Access to community Discord
Get Pro →$199USD
You'll be redirected to our secured payment platform and get instant access.