Blender future? My thoughts - my concerns.
Two way coupling simulations aren't possible with mantaflow right now and also multiple different liquids with interaction with different viscosity etc. looks to be pretty difficult to create. Or dynamic fracture with deformed rigged/object?
I wonder will these be solved when they will make physics / everything nodes.
Should there be other solution to replace mantaflow? youtu.be/1u5N0eedzic
this one has multiple liquids (with different viscoity) and other floating (soft / rigid) body objects. And it looks to be github.com/InteractiveComputerGraphics/SPlisHSPlasH "SPlisHSPlasH is an open-source library for the physically-based simulation of fluids." But it has MIT license (will that be problem?)
I just thought to collect list of alterantives to current mantaflow. And discuss about everything nodes / physics nodes - what it should be able to do?
Especially from interaction between different solvers what should be possible? Everything? How? Like this: awesomeopensource.com/project/nepluno/libwetcloth
Is nvidia tech possible to bring into blender physics nodes? developer.nvidia.com/gvdb developer.nvidia.com/gvdb-samples (at least here they mention "NVIDIA® GVDB Voxels is released as an open source library with multiple samples to demonstrate a range of capabilities.") developer.nvidia.com/gameworks-source-github and they have many other tech sdk tools (physx 4 is also open sourced?)
Or have blender team considered integrate taichi elements - github.com/taichi-dev/taichi_elements
Or jetfluid github.com/doyubkim/fluid-engine-dev
But is solvers gonna be re-designed?
What kind of sovlers there will be? And what algorithms? Pic, Flip, Apic, Nflip, Sflip, Asflip: (new technical paper available which looks promising for liquid and sand simulations)
And how about SPH, PBD, MPM or "hybrid" Lagrangian MPM?
Is open source "project chrono" simulation framework familiar / considered option? I guess developers are familiar with all new siggraph technical papers?
How about "taichi elements" - also open source frame work for simulations with gpu acceleration.
And Nvidia physics? they have on github NVIDIAGameWorks where they have flex, physX, GVDB Voxels? Have these been considered?
At least nvidia's web page say "GVDB Voxels is released as an open source library with multiple samples to demonstrate a range of capabilities."
Or other open simulation frameworks like: Fluid Engine Dev - Jet - its in github.
And have you tought get more developers for simulations - like in github there is: michal1000w who has realtime GPUSmoke which looks very promising and the developer is talking from this gpu simulator in blender's developers forum - it can be find from devtalk blender: Realtime GPU smoke simulation
And how about interaction between different solvers? "one-way" and "two-way coupling methods"? Will it be designed to have interaction between all possible physics solvers:
And blender has this volume object - could that be simulated, animated, edited in voxel editor like particles/hairs? (i like to use volume empty - with mesh to volume and especially for procedural modeling with displace modifier when model must have complex volume shapes or 3d tunnels etc. So maybe some simulation modifier would be also lovely feature.)
But what kind of type simulations blender team is considering? crowds simulations, flocking, car traffic? granular/sand/snow/fire/smoke/fluid/liquid(multiple liquids and gasses with interaction with different colors and textures and with possibility to mix colors / shaders / texture - uv / texture and vertex map advections? ), procedural recursive shattering/fracturing with debris and dust? Floating objects (in gas, liquid, crowd, or like leafs that drop from tree and they go with wind and drop into the water and flow unless they are too heavy: so will there be density that defines will object sink or float - and same in liquids: if oil floating over water because of density difference? - and possibility to "burn" that oil liquid simulation while its floating over water.) cascade simulations, retime simulations? (retime node?), resizer/resample/refine (resample node?), color absorption, waves/ocean, wetmaps/burnmaps/heatmaps (some dynamic paint node?), deformation motion blur support for 3rd part render engines? interaction between: Hair/fur/feather simulations, cloth, rigid/softbodies, (how about muscles/skin/fat, skeletons? and possible to use these in crowd/populated scenes? How about variations / random texturing and procedural crowd generation - possibility to generate multiple different looking characters based on nodes with muscles, clothes and then simulate crowd with actions - attack, run, stop, escape, repel/beat off, jump, walk, look at, climb, fly, sink, dive, die/kill/dead operations, alive, dodge) and how about multithreaded? (i guess that will be important - multithreading) Thenhow about gpu acceleration?
Sorry, big list - just thinking that has these differetn kind of scenarious tought? Or: rain (water, snow, ash?), forrest with leafs that drops and fly in the air while trees are on fire. Fireplace/campfire - fire and smoke and sparks? Or multiple fluids like two different toothpaste with different color or acrylic paint with interaction or two different gases with different color. Burning paper. Tearing cloth? Tearing hairs/ropes? Ropes that are carrying something and when they tear - it will drop that carrying "rigidbody? for example".
How about Stress/Tension/Velocity/Speed (+ wet/impact/heat etc.) maps? Stress and Tension maps are very useful for wringles and vecolity (vertex based velocity) could be driven to emit particles when things are accelerating (even animated things) or collision maps and wet maps which can also be made to emit particles or even tension and stress maps. So i hope there will be these in nodes too. Also ambient occlusion (or some kind of distance map). Or maybe these could be just Stress/Tension/Velocity/Speed/acceleration/wet/dry/impact nodes and these could be connected into maps generation (with optional: image sequence or vertex/weight map). Maybe some kind of accumulation for remesher (like in bonestudio's blender build's remesher modifier has) would be lovely - but with fadeoff / maximum time (how long accumulation last).
How about other stuff? Like some love for dyntopo - like ADF (adaptively sampled distance fields) and when using dyntopo: option to melt / merge / conenct vertices - (turn on and off) - for example: i love to use snake hook tool but it doesn't merge / conenct vertices unless i turn it off and use remesh but remesher might connect things that i don't want to be merged/"melted". But also just merge / melt / connect / join (vertices/tris merge/collapse) sculpting brush would be lovely to merge tris that are close enough.
Then there is missing wiggle / jiggle / spring bones (well there are many good addons but they all start to be old - so native integration would be nice when everything nodes will happen).
THen what cycles is missing? Caustics (well these are going to be improved now on cycles-x?) how about support for cctv kind of shader - it was in lw and it was sahder that rendered image (seen by camera) so it could made these "Video Feedback" kind of effects or using second (other) camera view to generate image/texture to shader while rendering just once in specifi angle with selected camera.
Also thinking about these play card - like poker - blender should have some kind of random / index iteration for shaders to make easier multiple play cards with different image maps - at the moment it takes much time to add different texture to multiple play cards when other softwares its possible to select one folder and use all pictures of that folder for different objects (index / hierarchy or randomized). So something similar needed for cycles. There was OSL shader trick for this but it didn't work in newest blender so i guess osl isn't working perfectly after all?
And how about some kind of "memory" and/or "dynamic paint" node for geometry nodes? I started to think that these kind of tricks in geometry nodes like here: cgcookie.com/articles/all-the-new-features-and-changes-in-blender-2-93 this one: s3.amazonaws.com/cgcookie-rails/uploads%2F1621899296321-geo-nodes-snow.gif with "dynamic paint" / memory node (with dissolve/dry time, smudge, spread, drip, shrink features) would be pretty nice to generate new tools. And this reminds me that there could be accumulate/accumulation node which should work like dynamic paint but in 3d space (like memory falloff in animation nodes extension made by BlueFox Creation). Triggers to active physics and stop them - to generate for example character that will fracture while its walking (turning into pieces while still walking. I mean kind of deformed geometry with - dynamic fracturing).
Or nodes - like shader nodes which has multiple inputs - could inputs have some popup menu? Could inputs be collapsed in groups of (value, color, vector etc) - like shader nodes - they are color coded (yellow, grey, blue-purple?, green) if these could be collapsed / uncollapse group (i mean= fold / unfold these color coded inputs/outputs if user want it - right click and fold/unfold - if right mouse button click has been on yellow input and user clicks fold - then all yellow inputs would be folded into one yellow input dot)
Sorry my long and boring text i hope it make any sense and give some real ideas when people are suggesting new features here. I have seen that blender developers make great work and they have lots of innovations / ideas which are much better than my thoughts. Keep making blender more great - you make great things <3 Blender is awesome just like all blender developers <3 Maybe i made useless post - sorry about that - my bad.
4 Comments
If there is going to be a "Blender Animation 2022" there should also be a "Blender physics 2024"
other concerns I hope we will see fixed / solved is path guiding (to solve mirror/reflective caustics and out of shadow area caustics with transparent objects / refractive) - and if it will have support for volumetric caustics with dispersion that would be just awesome - especially with motion blur support (maybe even in eevee in the future?)
Also wondering will cycles-x support for openvdb deformation motion blur (for dynamic meshes) - when using mantaflow with openvdb - deformation motion blur isn't working - also importing dynamic liquid or smoke / fire simulations from third party software with openvdb doesn't seem to support deformation motion blur :/ Flip Fluids had some problems to support motion blur because of Blender's API i guess(?)
I am just little bit concerned/worried from these small "problems" because there is so much good 3rd party addons appearing (under development) like github.com/zenustech/zenoblend and github.com/taichi-dev/taichi_elements or even flipfluids but which can't support motion blur because of these limitations (?) - even openvdb import isn't solution (especially when using volumetrics - but also dynamic meshes doesn't have motion blur even when openvdb could offer needed data)
These - zeno and taichi elements looks promising - here is few videos i have found (early stage but it looks promising - i hope blender's api won't be problematic for addon development or that render engines limitations will be solved like dynamic mesh / deformation motion blur support): bilibili.com/video/BV1V64y1672F
bilibili.com/video/BV1Ep4y1r78S
bilibili.com/video/BV1Mb4y127Eq
bilibili.com/video/BV1oy4y1G7NA
bilibili.com/video/BV18Q4y1174C
Deformation motion blur support with custom vertex maps would be great also with geometry nodes - generating speed / velocity vectors with geometry nodes could open new rendering possibilities.
btw. new nice open source simulator: awesomeopensource.com/project/zenustech/zeno github.com/zenustech/zeno github.com/zenustech/zpc
It has also blender addon: github.com/zenustech/zenoblend but it looks like its generating new objects in fracture statement (dynamic meshing) which is problematic for motion blur - blender's cycles should take care from dynamic mesh motion blur (generating/creating/adding way to control motion blur and deformation motion blur support for 3rd part addons) - this is also problematic with mantflow when using openvdb (openvdb format doesn't seem to support defromation motion blur in cycles - even when openvdb can include speed vector data - when using mantaflow fire and liquid motion blur isn't supported when using openvdb - or if i import openvdb data from 3rd part software :/ )
I'm also thinking examples what kind of vfx work people would need - most complex scenarios - so blender dev. team could make research - how everything/animation/physics/particles/functions nodes could make it possible. For example: underwater bubbles that rise and explode when they reach surface (some delay time, life time) and when bubble explode it will release smoke for example and that smoke will set on fire when it reach wanted temperature (maybe there is fire match that burns and it will burn / set on fire that gas?). Or gas that will turn into water and cause rain and then rain drops will freeze (frozen into ice) and after that melt (condensation effect) and after melting liquid will start boiling and turn into gas repeat that effect. Somehting like this? Or water rain that freeze into ice and then fracture when ice drops fall into ground (playing with temperature. viscosity, heat, burning, gas, liquid and fracture nodes? and problems how to activate different simulation states?)... (or burning oil drops (chain reaction) fire rising in oil "rain wall".)
Maybe some vfx technical directors needed - people with long vfx td experience who will say what is needed for blender to make it next houdini kind of tool for all kind of vfx work. Like this: youtu.be/eQRZ7FUkwKo well.. i am pretty sure that blender developers are watching these technical papers, there are always awesome.