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.
- Python code that defines the user interface including the nodes.
- 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 placeholders for built-in 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
- UI Decisions
- T68734: Math with Nodes
- Explore different ways to visualize sockets and links of different type
- 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
- Find system to ship node groups with Blender (asset system or if not ready, something temporary)
- 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