Page MenuHome

Particles Nodes
Confirmed, HighPublicTO DO

Tokens
"Love" token, awarded by Reinis.Mazeiks."Y So Serious" token, awarded by lopoIsaac."Love" token, awarded by blueprintrandom."Burninate" token, awarded by Schamph."Love" token, awarded by hartworx."Love" token, awarded by Kdaf."Love" token, awarded by xlxs."Love" token, awarded by brilliant_ape."Burninate" token, awarded by Alumx."Love" token, awarded by brezdo."Love" token, awarded by shafannazim."100" token, awarded by Dir-Surya."Love" token, awarded by gadas."Love" token, awarded by Noss."Love" token, awarded by Shimoon."Love" token, awarded by aliasguru."Burninate" token, awarded by Draise."Love" token, awarded by kyjelblue."Love" token, awarded by juantxo."Love" token, awarded by mistajuliax."Love" token, awarded by BlackRainbow."Love" token, awarded by Beckersc."Party Time" token, awarded by 3di."Love" token, awarded by DaPaulus."Love" token, awarded by ofuscado."Love" token, awarded by bintang."Like" token, awarded by evilvoland."Love" token, awarded by leonumerique."Love" token, awarded by Maged_afra."Love" token, awarded by Bit."Love" token, awarded by aditiapratama."Love" token, awarded by Cedch."Pterodactyl" token, awarded by charlie."Love" token, awarded by xrg."Love" token, awarded by duarteframos."Love" token, awarded by billreynish.
Authored By
Dalai Felinto (dfelinto)
Jan 22 2020, 6:56 PM

Description

Status: Core implementation on the way, need defined mvp/milestones to define if implementation will be in stages or in a single go.


Team

Commissioner: @Brecht Van Lommel (brecht)
Project leader: @Jacques Lucke (JacquesLucke)
Project members: @Sebastián Barschkis (sebbas) @William Reynish (billreynish)

Description

Big picture: Implement a stable (reliable) flexible node based particle system.

Use cases:

  • 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.

Design:

  • Re-usable effects
  • High level nodes out of the box
  • ? (mental model for different types of nodes)

Engineer plan:

  • 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.
Work plan

Milestone 1
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, ...).

Unknown Milestone

  • Good collision handling in solver
  • Access any particle attribute in material
  • Access particle data from Python

Relevant links:

Event Timeline

Dalai Felinto (dfelinto) triaged this task as High priority.Jan 28 2020, 12:04 PM
michael campbell (3di) rescinded a token.
michael campbell (3di) rescinded a token.
michael campbell (3di) awarded a token.
Campbell Barton (campbellbarton) changed the task status from Needs Triage to Confirmed.Feb 12 2020, 8:24 AM
Gad (gadas) added a subscriber: Gad (gadas).
kd (Kdaf) added a subscriber: kd (Kdaf).