Status: Core implementation on the way, need defined mvp/milestones to define if implementation will be in stages or in a single go.
Big picture: Implement a stable (reliable) flexible node based particle system.
- Motion-graph work that relies on time-based animations.
- Set dressing of environment elements.
- Generative weathering of surfaces.
- Fireworks (particles that spawn new particles).
- Dew drops on a leaf.
- Re-usable effects
- High level nodes out of the box
- ? (mental model for different types of nodes)
- C++ libraries in blenlib.
- New builtin simulation node system.
- The functions framework with a runtime type system for efficient evaluation of node trees.
- The particles system that parses a particle node tree and performs the simulation.
Time estimate: 2-4 months
- Particle nodes
- Add Simulation node tree type
- Add placeholders for built-in simulation nodes
- Add placeholders for built-in function nodes
- Define list of built-in nodes
- Define list of group nodes to ship with Blender
- Define categories and menu organization
- Finalize naming of nodes and sockets
- Support for storing ID pointers in sockets for object/image sockets
- Explore different ways to visualize sockets and links of different type (https://code.blender.org/2020/03/feb-2020-ui-workshop/)
- New Simulation data-block containing node tree and cache parameters
- Basic implementation of ID type
- Dependency graph and copy-on-write integration
- Point cloud (basic) object type (@Brecht Van Lommel (brecht))
- Modifier for point cloud copies simulated particles from simulation
- Simulation caching
- Functions nodes system
- Particle solver capable of solving multiple particle simulations with emitters, events and forces (T77266)
- Find system to ship node groups with Blender (asset system or if not ready, something temporary) (in branch currently)
- Implement all built-in nodes
Milestone 2 - Feature completion
- Use cases are supported (particle scattering, weathering, ...).
- Good collision handling in solver
- Access any particle attribute in material
- Access particle data from Python