GSoC 2021: The Machine Learning based Fluid simulation Plugin POC

Hi! I am Rohan Asokan. This is sorts of an introduction and request for guidance as I did not see a topic for this idea.
I am a sophomore at IIIT Hyderabad doing my CS degree. I am interested in machine learning and its applications though I am a full stacker by trade (Pardon the expression ;)). I have to accept I am quite new to fluid simulations, but I am a quick learner. I have some experience with machine learning - not so much. But, I would like to try my hand with this plugin - cuz its a really cool thing to be doing.

Sebastián Barschkis (you were marked as the mentor for this project) could you please hint on my next steps? Thanks.

Hoping to have a great time with blender, Insert cool term for people using blender.

Github: https://github.com/ArenaGrenade
Website: https://arenagrenade.github.io/portfolio/ (A word of warning - don’t try opening it on really low-end devices - its still under construction and not very optimized.)

7 Likes

Glad to see you’re interested. The project on ML and fluid simulations is more of an exploratory project and chance for students to set goals.
It would be a great way for someone with experience in ML or simulations or 3d engineering applications to get into computer graphics software and share new perspectives.

In contrast to projects with a well-defined structure (e.g. a project that asks you to implement feature X) this project will be more open-ended. The description in the Wiki is just the general direction. You can define the milestones within the project and what you ultimately want to build.

For the first steps, think about how ML would fit into the current simulation workflow. What would have to change? How would users interact with the new system?

1 Like

Alright! I will take a look into a few papers and also as to where we can add stuff - I can get back to you on blender.chat?

Yes, blender.chat is a good place for that.

1 Like

Hi! I have messaged you there on blender.chat. Just wanted to ping you so that I know that I have not been messaging the wrong person :slight_smile:

@sebbas I have created a rough first draft - https://www.notion.so/Machine-Learning-Add-on-for-Fluid-Simulations-12883a69902045f79129220bab46031f. It is a live document.

Please take a look at it and help me out. Thanks!

The official GSoC draft submission site will open on March 29. For the proposal it is best to make use of that platform. For us mentors this makes it much easier to keep track of all the proposals and comments.

In the meantime, try to think of workflows too. Right now, users create simulations by setting parameters and then “baking” the simulation to a cache. How could a ML fluid system look like?

1 Like

There is a ML part of Mantaflow for upres of baked fluid sims.

Integration of that with blender would benefit lots of other areas
where ML could be used in future and it needs adapting to work with vdb
files instead of mantaflow’s .uni format.

Would probably take up most of the limited time for GSoC this year just
retraining the model!

2 Likes

Very cool to see the possibility of Mantaflow getting some new fun stuff. Good luck with the project!

1 Like

Well! I have been taking a look at that code and also the example for deep learning in mantaflow. But, as you said it might take time to train the model and test it and do all the other cosmetic work in itself.

If this is the most useful one out of all the others, we can do just that - I was thinking of doing some sort of user survey or something of that kind to make a decision as to which one to settle down on - do take a look into the GNS paper too !

If we are to talk about workflow - it would be different for the different models specified. For example, the upres model won’t need much changes - bake and then upscale - simple as that. In this model we cant assure real time as it directly depends on the low res sim and we can’t be sure of how long it will run - so this two step workflow seems the most optimal.

But the others will need a few changes as they can run realtime or atleast close realtime - we can run it whenever the timeline is scrubbed and keep only the simulation data cached for times before the current cursor as these methods are stand alone.