Navier-Stokes fluid simulation explained with Godot game engine

7 pointsposted 11 hours ago
by myzek

4 Comments

myzek

11 hours ago

So once upon a time I stumbled upon simulating fluids in gamedev and I really wanted to learn how it works. Fast forward 2 months and I decided to write down everything I learned to hopefully make it easier for others in the future!

magicalhippo

8 hours ago

Fluid sims are just so darn fun! Nice writeup, very accessible.

Couple of notes, I think you forgot to apply timestep when adding rocket exhaust velocity, pretty sure it should be

  u[idx] += backward.x * flame_velocity_amount * falloff * delta
  v[idx] += backward.y * flame_velocity_amount * falloff * delta
You need to compensate by scaling up flame_velocity_amount, I used 85, seemed about the same.

myzek

27 minutes ago

Yeah it seems I missed that, adding the rocket at the end was a cherry on the top and I was so exhausted already I'm surprised it even works lol

frankdlc222

11 hours ago

This is really cool. I love how much detail you went into explaining the setup and walking through each piece of the simulation. Definitely bookmarking this to play around with later!