Realtime GPU smoke simulation

This one is definitely one of the best video you shawn !!

I agree with @Strike_Digital : maybe the smokes disappear very quickly compared to the whole simulation.
Keep on the good work :wink:

2 Likes

That’s right. It should be an easy fix though as probably I’ve just messed again the simulation settings (the dissipation rate was around 1.5 when 0 is none so it should be at the maximum of 0.2/0.3) :upside_down_face: . I could however make it more smooth even on higher leves by making the dissipation rate not linear but with a more logarithmic shape.

Also I should teach myself how to do nice looking sims as for now the whole workflow is quite simple and there is no artistic soul to it.

3 Likes

Thanks for the awesome work. I tried to build your blender repo with the integration of jflow to test it but I couldn’t find the jflow plugin inside blender. If you can help a little bit that would be great.

1 Like

Hi, thanks :slight_smile: . The blender integration repo is for now more as a placeholder, as the plugin is not yet implemented. I mean I have made a testing addon, where I’m trying to understand what can and cannot be done using the blender python environment, however it does absolutely nothing for now except showing settings :frowning: . When I however finish the initial implementation I could sit down to the blender part again.

4 Likes

I know this is probably not the time to implement right now but it has always bugged me that things like this are not controllable by the user.
I think it would be really cool if this kind of stuff could be controlled with a curve, or (even further down the line) with a whole node setup.

3 Likes

Hmm, initially I wanted to give the user a choice between linear or logarithmic and some parameters of logarithmic one for more control, but the curve idea is quite interesting so I may try to implement it.

When it comes to the node setup however !!!Spoiler alert!!! this version of JFlow will have that. I mean I’m working on the node editor for about a month in a separate project and the initial draft is working. It has just 8 nodes at this moment and it’s not connected to the solver, however the node-tree evaluation works, and it has many value types (like string, float, range, vector) to make it more usefull. Also the GUI experience will be a huge step up from the previous JFlow.

9 Likes

Still not ideal, but some changes were made

24 Likes

Great to see you making so much progress on this, keep it up!

1 Like

Oh wow dude. Waaaay better. Damn that looks good!

1 Like

Wooooooow. Gah it just keeps getting better dude. Keep it up!!!

1 Like

How high can you set the temperature? Is there a way to add velocity along normals of the emitter?

When I was playing with some mantaflow code I found out that if you put the temperatures higher above limits you can get nicer movements (but it broke something with the viewport shading so it was abandoned) ⚙ D14096 Mantaflow increased temperature limits

It is also important that you use real life sizes for simulations

There is currently no limit to the temperature in the engine so you can set it to whatever you want.
The velocity is also added in the emitter and the user have the full control over it. Also no limit
And in terms of domain size this time the domain resolution and domain size are two separate things so you can set it to the real world scale

4 Likes

Hi! Has there been any news regarding the development? This is insanely cool, thank you for your hard work. To think this is made by only one person blows my mind.

1 Like

Hi, currently I’m busy with my main work, however when I have any time I’m doing collisions with static objects so the simulator is more useful

7 Likes

See this @michal1000w : Senior Blender Developer — blender.org

2 Likes

I’ve updated the shader so it’s much easier to work with:

26 Likes

And for the development update:

  • The first object collision implemenetation is there (simple test in the video)
  • A lot of bug fixes
  • Some little performance improvements
  • Better smoke dissipation control
  • Host memory usage when VRAM is full (bigger simulations possible on worse GPU’s)
  • Velocity grid export for volume motion blur rendering (blender 3.2+)
  • Probably a lot more but I don’t remember exactly
25 Likes

And a test of a big explosion with resolution of 850. The simulation time was around 0.243sec/frame. Rendering done in blender

28 Likes

WHen you thinks you can proposate an Alpha test directly in blender ? :slight_smile:

1 Like

Blender integration may be unfortunately quite far away, as there are a lot of problems to solve to make it real-time there, like connecting new render engine to the viewport, etc.
I may however make it at first more like Mantaflow, where you could create a scene, setup the simulation parameters and launch the baking all inside blender, while still keeping the core as a standalone.

The second option is to make it first just as a standalone but with GUI (I have an experimental side-project with nodes) and when it’s ready try to make it inside blender.

Either way we are speaking about months of work (especially with blender integration), as currently I have very limited time and resources and the core still needs a lot of work to be faster and more reliable

13 Likes