Blender Particle Nodes Fundraiser

Hello and welcome back fellow Blenderheads,

The next Blender Conference is getting closer, and this year i would like to present the new particle system developments. Over the past months i have steadily been developing new node features for nodes in general  and tested various particle node approaches. Recently i made another attempt at introducing dynamic buffers in the existing particle systems and, even though maintaining the old system proved ultimately infeasible, it has produced a reusable dynamic buffer implementation that will greatly increase the power of particle systems.

So now i started implementing a new particle system alongside the old one. The main modifier and UI hooks are in place, now the actual work can start!

However, i have to pay bills like everybody else. For this reason i would like to start a little fundraiser campaign over the course of the next three months (until BConf 2011), which will enable me to work on this project full time and finally create a working particle node system. The final targeted result has been split into different stages, to allow a measure of progress:

Stage 1 (500 €):

  • Detailed design documents
  • Particle base structures
  • User interface

Stage 2 (1500 €):

  • Simulation node API (time stepping)
  • Render node API
  • Parallel processing (multithreading)
  • Point cache integration

Stage 3 (2500 €):

  • Usable set of base nodes to reproduce current features:
    • Emitters
    • Newtonian physics
    • Force fields
    • Collisions
    • Basic rendering (billboards and object duplis)
  • New nodes for:
    • Custom attributes
    • Splitting and merging particle flows
    • Particle groups
  • Presentation at the Blender Conference 2011
  • User and developer documentation

In addition to these features there will probably be a couple of spin-off node features that other node-related projects can benefit from. In particular it will be possible to define many nodes purely in Python, which makes rapid prototyping much easier. A bunch of other “under-the-hood” improvements are also ready for trunk merge in 2.6.

Donations above 100 € will get special mentioning on this site (if desired). You can find more detailed information about the individual topics on the new wiki pages. These will be extended and updated as development progresses.

If this fundraiser reaches its goal we can think about extending it to cover further integration and more node components. There are many more areas in Blender that would benefit from modular, node-based design, which also means lots of opportunities for coders.

Thank you very much for your interest and support, the community is what keeps Blender alive and the community is you!

29 Comments

  1. Lluc says:

    Nice!

    I was concerned about the continuity of the project!

    • phonybone says:

      Lately i was simply doing more nodes related features, many of which are still in the waiting loop due to ongoing svn “no new features” period …
      But for this project i will use this blog more regularly and add structured info to the wiki pages.

  2. Alain says:

    I think it would be intersting if you could do something like the Multiscatter for Max.

    I miss the function that you can distribute bushes along a spline and randomly scale, rotate, etc. them.

    That would be a timesaver for architecture visualization in Blender.

    Is that possible with your new particlesystem ?

    Kind regards
    Alain

    • phonybone says:

      I don’t know exactly what multiscatter does, but features like this should be possible. This might be more related to modifiers than particles, but the principles are largely the same and i will implement this system in a way that it can be reused for modifiers later. ;)
      However, focus will be on creating the base system with only a couple of basic nodes. Specialized features, such as curve parameterization and sampling (which i guess is what is needed for this), can be added later.

  3. Sounds great Lukas, will the new particle system be able to generate dynamic particle emission based on textures, or data from other modules (I’m thinking about integration with the OceanSim texture/modifier to generate wave spray)?

    • phonybone says:

      In the first version emitter nodes will only work with simple vertex groups. Making texture-based emission rate is a bit more tricky afaik, it requires more advanced mesh surface sampling. For using special ocean sim data there could be a specialized sampling node, it will be much easier to add new nodes and components with the general node overhaul currently in progress (pynodes!).
      My primary concern is about getting a working overall system ready until bconf, after that we can talk about specific features and improvements :)

  4. will says:

    great stuff coming up ,keep up the good work.
    u really make blender better day after day , u r the best
    best regards.

  5. Sean says:

    Can you include reactor particles? It’s one big thing that 2.5 lacks.

    • phonybone says:

      I’m not too fond of the reactor particle concept ;)
      It seems to me like a “function follows form” design: they add a specialized mode to particles, simply because the particle features themselves are too limited.
      This sort of reaction to other particles/particle systems could better be done in a more granular way by adding some sort of event system: Every time a particle dies, collides, does some fancy stuff, it generates an event. These event can then be imported in other particle systems (or the same) and used to drive other nodes.

  6. Justin says:

    Thinking about this, I was wondering what your thoughts are about incorporating Enjalots work with OpenCL. I know his idone in the game engine. In the same way that is OpenCL is a slightly later stage in the compositing fundraiser, I would imagine that it would be the same for particles, but it might be good to think about it now in the planning stages.

    • phonybone says:

      I have been in contact with enjalot and we talked about out different particle approaches. His system is much more geared towards realtime performance, but on the other hand does not focus on flexibility and modularity that much. Afaik it works much more like current particles, with a fixed set of features that can be enabled alongside each other – which is perfectly fine for realtime effects!
      OpenCL language support is not directly on my list this time. The reason is that, while it is great for stuff like compositing or shading, it makes things very complicated when you have to work with complex C data structs and it adds lots of additional work to make sure you have good fallbacks in case OpenCL is not available. Both the new compositor and the Cycles renderer are facing that problem, so hopefully we get a consistent GPU computing solution in Blender some day :)

  7. Gianmichele says:

    Where’s the donate button?

  8. Ps8 says:

    So where’s that donation button ;)

  9. phonybone says:

    Thanks everybody for the great support! First donation goal reached after just a couple of hours, i’m happy :D

    Sorry about the donate button, had some trouble with plugins, should work again now. I’m trying to set up a donation meter to give you some overview and recognition.

  10. Jan says:

    I hope that the ultimate donation goal will be reached as fast as the first one.
    All the best!

  11. Aixalanca says:

    I think it would be interesting if you could do that an animated object or group, can be linked (render object/group) to the life of the particle.

    Example: an animated scale mesh for 40 frames is linked to the life of each particle, resulting particles (render object) that have a scale at birth and when they have 40 frames of life have another scale. I think that currently can´t do this with the current particle system.

    This would allow render quickly smoke effects (cartoon style), expand drops ….

    my English is not very good =:-(

    regards

    • phonybone says:

      I’m not 100% sure what effect you are looking for here, but i’m pretty sure this will be possible ;-)
      I’m going to add a render node for object duplis, as this seems to be a very common way to get useful particle display beside halo/billboards. This node will have loc/rot/scale inputs, so a linear transformation can be applied to instances. You could then calculate the appropriate scale vector from the particle age with a curve or some basic math and use that for instance rendering.

  12. 3pointedit says:

    Hmm, tried the paypal button but it went to a German page. Not sure what the error was (tried to contribute but failed) as I read English.

    Great project, hope it’s successful.

  13. Gianmichele says:

    Great! Donated :)

  14. richard says:

    I don’t use paypal is their any other method of paying with my credit card?

    • phonybone says:

      I’m no expert on these things, but there seems to be a paypal service called “Website Payments Standard” that i’d need to allow direct credit card donations. However, i’m not entirely sure that there’s no catch involved, so just keep your money for now. Thank you for trying anyway!

  15. Guy says:

    Could you guys make it compatible with the Tomato branch camera tracking version of Blender? I’m still looking for an free piece of software that can replace Softimage ICE or Houdini.

    • phonybone says:

      All the major feature branches currently in development (including the GSOC projects) will ultimately end up as part of trunk (the actual Blender source code used for releases). There is only little overlap in terms of features with the tracking branch (tomato) in particular, so they should work together nicely. But it will take some time until both are complete enough for release in the main version. Merging them in an intermediate branch would be a possibility, but means a lot of extra work, just for a quickly outdated build combining the two, so it’s not likely to happen. The salad branch was intended for that role for all GSOC 2011 branches, but turned out to be too messy to maintain. Better to do this once when everything is in place. There may however be custom builds available on graphicall.org from time to time.

  16. [...] 详细信息:http://phonybone.planetblender.org/2011/07/22/blog-revival-and-funding-campaign/; [...]

  17. mutze says:

    It feels good to give the developers of blender something back :-) More will come next month!!

  18. _AnK_ says:

    Hi. Thank you very much for your work!!!! Can you give us an update of your developement progress? In which stage are we?^^ best regards

  19. Glenn De Backer says:

    May I ask a stupid question ? :p

    Does this mean that things like cloth simulation will also be speed up ? I have noticed that on my i7 with 8Gb RAM only one thread is being used with about 1/8 of RAM but Blender steems to stall.

Leave a Reply