Realtime GPU smoke simulation

If Blender is that slow at the moment, does this mean you will have to add a sort of object or scene parser (GLTF or USD for instance) in your project to make fluid and gas simulation interact with objects made by users? Or directly using functions in OpenVDB to load and voxellize meshes given by users?

Object loading and collisions are still at drawing table and I’m experimenting with the best ways to do the interaction, however it would definitelly be combined with some kind of scene exporting.

Saving options were added :smiley:
However exporting with maximum resolution still is definitelly too slow so I have to do something with it.
Below there is video with blender integration.


Blender’s Volume Object is still bleeding edge. I’d say that this is the perfect test-case to motivate developers to optimize it! At any rate, the current performance is nothing to worry about too much. There’s still a lot more to do in that area!

1 Like

Thanks for mentioning it. Manipulating large objects in a faster way is much needed to get to the next stage in production. I’ve read that large mesh editing is on the road map. Hopefully, volume objects will be improved too.


Some updates now with explanation :smiley:


Your progress is amazing, congrats :slight_smile:


I’ve made a little brake from coding to experiment with some simulations.
Below is a short video with some renders made with Cycles


Because of some personal reasons and a lot of scientific work I had a few months break from coding this simulator, however it’s not dead and recently I’ve made some huge improvements. One of them is the initial implementation of wavelet noise upsampling making the results much more detailed (for now it’s a bit slow but I’m working on it)

Below there is a render of some test I’ve made :smiley:


Super excited to hear that! :slight_smile:

1 Like

Some new examples and small settings tweaking leads to following test:

Rendered in Cycles :slight_smile:


Today there are some new changes (made during the night).
0 -> flame attribute was added for more realistic rendering
1st -> there are further noise improvements (can be seen in the first example from the video)
2nd -> there are some explosion sample scenes added to the repo


Wow! That looks awesome. You’ve made some real headway these last couple of updates. I love how the plume develops over time, there’s some excellent detail in there.

1 Like

Recently I’ve managed to finalize some medium-term improvements so today’s news are great:

  • 1st -> Wavelet noise is now computed fully on the GPU making it about 10x faster than before (or even faster for larger scenes)
  • 2nd -> Cache is now saved in sparse format making the files much smaller and the playback in blender tons faster
  • 3rd -> smoke is saved files is now rotated 90 degrees and centered to make it look nice after importing to blender
  • 4th -> flame attribute was added for more realistic rendering

Aaaand it’s all for today (No renders for now because my computer is dying after a long night and day of work)

Have a nice day


Or actually something is coming :wink:


And the rendering is done :smiley:


Hey, it s nice to see your progression, i want to say something about your demos, we cant really see the advantage of realtime simulation as you’re showing us rendered sims, the way to do it would be to make different itteration of a sim and show us how much time it takes to calculate.


Yes, I was showing render sims as they look much better than the preview from the simulator but that’s a valid point. I will definitelly make a video showing the realtime-ness of the app.

For now I can say that the last sim at resolution 490^3 was simulating at about 5fps and with saving to the vdb files it was about 0.9fps cuz even with multithreaded saving it takes some time.

But yeah, today I will try do to some better reel :smiley:

Have a nice day


This project is absolutely incredible!
Keep up the awesome work my man. :+1:


This is sooo cool ! Please keep developing ! Do the developers know about this ? This must go into blender. Maybe they can point to someone who can support you.