Added documentation and images for new viscosity options to the manual. (Link to manual)
December 14 - 18
Finished the viscosity plugin! I.e. all the code has been pushed to the Mantaflow repository on Bitbucket.
Get the viscosity plugin into Blender. Things that have to happen for that: review + merge of viscosity plugin branch into Mantaflow's main branch, write release logs, update manual, adjust Blender UI and add simulation calls for viscosities, write nice commit message when updating the Manta code in Blender.
December 07 - 11
Worked on the new viscosity solver. Made good progress and set up the foundational viscosity code in a new Mantaflow plugin.
No results to show so far though, needs still more work
Spent time reading the actual paper about viscosities ("Accurate Viscous Free Surfaces for Buckling, Coiling, and Rotating Liquids", Batty et al.)
Continue with viscosity solver, look at more bugs.
November 30 - 04
Possible fix for exploding smoke simulations with open domain boundaries (6f22a536e690)
Improved liquid particle sampling: Liquid and secondary particles will from now always be sampled with a fixed seed. This way, simulations will become more predictable as their outcome will be exactly the same when rebaking the simulation.
Update Mantaflow source files to reflect work from last week in Blender.
November 09 - 13
Spent time on OpenVDB sparse grids, i.e. I have a first MVP implementation in Mantaflow that can be used to cache sparse grids.
Work in T82488: Mantaflow - force fields have very low influence compare to 2.90.1
Push first version of OpenVDB caching improvements to Manta repository, then update Blender.
Dedicate some time to 2.91 release notes: The physics section needs more visual content.
Closed T77833: Mantaflow (GAS) The simulation does not work correctly when using an object for collisions.
Improve usability when working with large amounts of particles in the viewport: Particle velocity loading should be optional, and similarly, it should be possible to choose which grid data will be read from the cache.
Look at the features that were brought up in T81678.
October 05 - 09
Committed the patch I mentioned last week that makes simulations with multiple obstacles more stable (55fd7f55bd18)
Investigated ways to make particle loading (FLIP and secondary) faster:
1st idea was to add some parallelization to the particle loading functions. While this sounds reasonable in theory, in practice I didn't see very big speed bumps. Especially with smaller amounts of particles (< 1 million) the parallelization overhead made the approach not worth it.
2nd idea was to reduce cache-file sizes in general: Smaller files == faster loading. For this, the OpenVDB API offered some very helpful codecs that can bring file sizes down significantly at a very minor quality loss (e.g. store float as 1 byte instead of 4). The results from this approach were very promising (viewport is much more responsive) and so I am considering to get the patch into the 2.91 release.
Closed T81420: SERIOUS BUG: Blender 2.90 crashes when rendering a frame outside of mantaflow cache range.
Participate in the "2.91 Fall Bug Sprint" as much as possible
Finish "particle-loading-time-improvement" patch from last week
September 28 - 02
Nothing major to report this week: I spent most of my time on the Mantaflow side (standalone repository). Trying to get simulations with multiple obstacles a bit more stable and looked at potential new features for 2.92 (work in progress).
Continue work from last week but also engage more in the tracker.
September 21 - 25
Spent time investigating test failures on macOS (T81077)
Submitted patch to cleanup warnings on macOS ARM (D9002)
I am on holiday and so if there will be any updates at all I expect them to be minor.
July 27 - 31
For a some time now there has been this issue where smoke/fire in the viewport is displayed slightly different when loading it directly from the cache instead of loading it on-the-fly as it is being baked ("Replay Mode"). Especially when resuming a bake job this looks very odd.
After working a lot on OpenVDB, this week will be spent mostly on the bug tracker.
More in-depth documentation on new OpenVDB fluid cache
June 15 - 19
Continued working on OpenVDB fluids caching. This week I tried to wrap up the project. Making sure that older caches are still compatible took quite some time.
Mostly similar to last week, i.e. get the OpenVDB fluids patch into master + update the documentation.
June 08 - 12
I am still working on OpenVDB fluid caching:
This week I tweaked the OpenVDB particle caching a bit more and performed some tests to figure out how efficiently OpenVDB stores point data.
I also did some optimizations to read particles faster from cache files.
Before pushing the OpenVDB changes to master I need to make sure that the current caching system does not break. I'll look into this next week and then hopefully get the patch into master.
At the end of the week I received some questions on why smoke simulations look much more different in 2.83 (compared to 2.83). I found out that D6951 is the reason - next week I'll take a closer look at the patch again and probably get Brecht's opinion too.
June 01 - 05
OpenVDB fluid cache development is still taking up a lot of my time.
Most of the OpenVDB caching code is now in the upstream Mantaflow repository.
For liquids, and in addition to grid caching, I have decided to make use of OpenVDB's ability to store point data. This can be used to efficiently store particle data (FLIP and secondary particles).
Since grid caching is almost complete, there is not much more to do for smoke.
Get first OpenVDB results into master and do more tracker work.
May 25 - 29
This week I focused completely on the new fluid OpenVDB cache. The overall reading and writing of grids to one file per frame works now. I will publish the first results of this (i.e. commits to master) at the beginning of next week.
More OpenVDB development and also start doing more bug tracker work + reviews.
May 18 - 22
Worked more on the OpenVDB exporter for the fluid cache. The progress looks promising (i.e get it ready for 2.9), there are no new commits up yet though.
Improvements and cleanup in the fluid section of the manual. (rBM6667, rBM6669)
Fix T76814: [Mantaflow] Surface Tension always works
Fix T76697: [Mantaflow] mesh generation does not account for some particles
Fix T76812: [Mantaflow] Inflow particles not continuous
Work on the bug tracker and continue OpenVDB development. Ideally, I will have a first functional version by the end of next week.
May 11 - 15
There is now the initial foundation for OpenVDB caching with multiple grids per file in Blender (right now, every grid is stored in its own file). This is a work in progress and users won't notice a difference for now. (a975cb920772)
Fix T74060: Smoke flow force field not working with Mantaflow Gas
Closed T73474: Mantaflow: Liquid simulation appears to be unaffected by scale or "Real World Size" parameters.
Handle more release branch issues and do more OpenVDB development if time allows.
May 04 - 08
Fixed an issue with the total simulation time. The code was in trouble when using an animated time scale. For this to work, some changes also had to be ported into the Mantaflow repository. (ab122c73ba35, 385559843e6f, ebbaae625f7e)
Kickoff for community bonding with GSoC student Sriharsha Kotcharlakot (Project: "Liquid Simulation Display Options"): Got to know each other, adjusted project description and made sure his Wiki is set up.
Fix T75883: Smoke simulations with Adaptive Domain broken for 'Final' bakes with OpenVDB in 2.83
Fix T76430: Quick smoke not rendering Cycles and Eevee
Closed T76312: Liquid simulation Particle/Mesh vanishes - Only Domain is rendered
Fix T76426: Mantaflow Liquid - Gravity not respecting Time Scale from domain.
Similar to last week, but also check that there are no unexpected fluid issues in the 2.83 release branch.
April 27 - 01
Adjustments to the manual (changes for 2.83 release) (rBM6597)
Refactored the fluid gravity settings so that any fluid simulation matches the given world units. (21485e94aac1)
The baking speeds can be improved further by lowering certain quality parameters in the pressure solve. The resolution of the simulation would remain unchanged and therefore the quality drop should only be slightly noticeable. The baking times, however, become much shorter!
Next week, I would like to explore this idea. Maybe a new "Smoke Quality" option would make sense in the UI (to be continued).
February 24 - 28
This week I was mostly working on an optimization patch: The idea was to reduce the time it takes to scan the obstacle geometry (before exporting it to the simulation) by decreasing the bounding box size of obstacle objects. So with the patch, obstacle objects are turned into grids using a smaller bounding box instead of searching in the entire domain.
Improved the behavior at outflow boundaries. Smoke should now disappear faster. (bc2ce31d7940)
Review D6945: Objects: add Volume object type, and prototypes for Hair and PointCloud
Cleanup and commit optimization patch for obstacles.
Wrap up the documentation and get back to bug fixing.
February 03 - 07
This week there were two things I really wanted to finish and get into the release branch. It was a bit of a stretch to get everything ready but in the end I think it was worth putting in the effort.
Faster file loading for smoke simulations: They should now load way faster when replayed from the cache. The cache now loads the files directly into the pointer variables (instead of first loading them via Python and then accessing the pointers). (e7d71ce9cf1e, 1bb702df1e16, f12b4e53aaf7, ffcccf654c8e, 68221b7ebafe)
Fix fluid guiding functionality: I knew this one came a bit short in the past weeks. So I already assumed that through bigger changes I made elsewhere the guiding would be broken. When I tested it, it turned out that it was. Luckily, the fixes weren't too complicated. (86e24ea10cba)
Fix T73567: Mantaflow adaptative domain takes objects with the flow turned off…
Fill in the gaps in the manual for 2.82. Fortunately, the maintainers have already adjusted the manual to the new fluids system. Next week, I will fill in all the remaining sections marked as "ToDo" (mostly variable explanations).