Blender's Particle System Is Terrible

Let’s say someone builds a car with one of the most advanced engines in the world. It has very high horsepower, it’s polished exquisitely, full of gears and parts that allow it to outperform most other cars in brilliant advanced ways.
However, the gas pedal is a binary switch that’s activated by setting an alarm clock at the times you want it to start and stop, the steering wheel is controlled by flexing your tongue on a lever, there’s only one untouchable gear, and the brake is nonexistent. I’d say that’s a fair analogy to how Blender’s particle system works.

All that incredible power built on a horribly flawed, absurdly counter intuitive workflow. And all this time I’m waiting for someone to point out the obvious, for the most important mechanics that allow us to access this power to be fixed, and what happens in each build? Petty tweaks to the engine. More amazing features built on the same root problems. I do not understand it.

So I’m going to break down some of these issues in this post because apparently everyone, especially the Blender Foundation, is totally oblivious to this.

I had a hard time deciding where to begin, so I’ll start with the first, most important part of the interface, the hairpin bottleneck that’s strangling the life out of this whole engine.

This is, without a doubt, one of the most idiotic, illogical, common sense defying things I have ever seen in computer software. For this to be in Blender is absolutely inexcusable.
You define a specific frame to start emitting particles, a specific frame to stop emitting particles, and how many particles are emitted within that time. This means the entire particle system you are setting up is only useful for one span of time, and after that it is dead, which means that for each time you want to use it, you have to make a complete hard copy of the entire system and modify those moronic start and end times. It also means if you need to change the duration of emission, the particle count will never be consistent, because it’s fitting a specific amount within that duration. So even if you do use it multiple times by making hard copies, if you want to change how long the subsequent uses last, you have to solve the number value in order for the particle count to stay consistent.

Now for comparison, I’ll show a particle system that was actually made with competence, Particular.

See that? Those three idiotic options have been reduced to one intelligent property. With this, you key the amount of particles emitted per interval. Keying it to 0 stops particles, and anything above emits however many particles you want. The same setup is infinitely reusable and the particle counts are as consistent as the value you set it to. This also provides the ability to change the amount of particles emitted over a span of time, since the particle count is animated. This is not possible to do in Blender because of its unfathomably stupid method.

So already Blender’s rich particle system has been brutally crippled by this single unresolved cog in the workflow that’s pleading to be fixed. But it doesn’t stop there, because there’s another feature of paramount importance that was forgotten, resulting in this elegant train falling off the rails into a spectacular wreck.

Can anyone tell me what’s missing in this marvelous array of settings? Probably not, since it has never been brought up for reasons I will never understand and I don’t expect anyone to start now.

For your convenience I once again bring your attention to a properly made particle system, Particular. Do you see what I see?

Ah pfft whoops, particle animation, kinda sorta forgot that didn’t we. In developing physics sims and boids and hair rendering and spending years fidgeting around with scores of trivial nonsense, I guess the devs casually glossed over this part, you know, the one thing that makes all of those other features in a particle system even worth anything.

As such, all of the particles in Blender are static. Oh yes they can move around, but it’s just moving particles around that each do nothing. The interface for getting particles to move around is already highly unintuitive as it is, but fine, it can still accomplish that. But as for per particle animation, the system can’t animate scale, opacity, materials or textures, nothing.
I investigated and found this specific texture ramp feature that maps a fixed length of animation for a couple properties that is seldom covered in tutorials, however the feature is unintuitive, redundant to the existing animation system, and is essentially useless since the only meaningful property you can animate is scale.
Not only does Particular give you deep animation control for a multitude of properties, but you can just use an AE composition instead for particles, which means you can use AE’s animation system and create a particle of arbitrary complexity featuring multiple elements with any form of animation possible and use those as particles.

With the common sense design of Particular, I can create particle animations such as this:

and this:

and this:

and this:

and this:

and this:

These examples I have just demonstrated are among the most basic, elementary things a particle system should be able to accomplish, and Blender is not capable of creating ONE of these examples, despite how incredibly powerful the software is. Why? WHY? This does not make ANY SENSE. Am I the only sane man using Blender? Are there any sane people on the development team?? This is one of the main reasons people have to incorporate software like After Effects in their projects, because Blender lacks bare minimum features like this.

What’s most upsetting about it is how simple the solutions would be. You don’t even need a panel for all those animation settings in the particle system interface. You know what would solve this gracefully and provide total flexibility over particle animation? How about this.

Take an action:

and apply it to particles as animation:

That’s it. Just adding that simple feature will make Blender’s particle system infinitely better. Currently, if you have an action applied to an object that’s used as a particle, it affects all of them globally, so as it is now, it’s useless. The idea is allowing the action to run for each particle individually when the particle is born. If we were able to use Blender’s existing animation system, the particle animation can be as rich and complex as needed.

So to recap:

Condense the “start, end, number” properties into a single, keyable “particles per step” property.
Allow actions to be applied to particles to give each particle individual animation.

Is this getting through to anyone? I’m so frustrated with the way Blender’s particle system currently works, because in order to accomplish even the most basic particle effects, I have to drastically divide my work into separate programs and needlessly muck around with compositing passes. On top of that, only 2D particles are possible in software like AE and Particular. This should be a first priority feature for Blender devs; it should HAVE been. Instead they continue to waste powerful new features on this same tragically flawed foundation.

Well… framing your entire post as a condescending ass aside… Most people are well aware of how broken the particle system is in Blender. It is an orphaned area of the code. Lukas T is working to update it for Gooseberry, but it takes a very specific knowledge of very specific things to create a particle system. You can’t just plop a coder in front of a computer and say “fix particles”. To fix most of the problems with the particle engine, it will need to be retooled from the ground up. This takes time, and as a consequence, money. If you’d like to pony up the cash to find an experienced particle developer, then by all means. But simply whining about problems that people are well aware of and talking down to an entire community as if you’re somehow solely able to see these issues isn’t going to fix anything.

‘But as for per particle animation, the system can’t animate scale, opacity, materials or textures, nothing.’
No. You can change material & opacity on a per particle level in cycles thanks to the input ‘Particle info’.
I think all the examples you showed can be made with the existing particle or smoke system in blender.

Years of frustration and confusion and ignored responses, what do you expect.

Yet I haven’t seen it brought up anywhere.

I don’t use Cycles. I can’t use Cycles. And above all why is that feature ONLY for Cycles, as if this situation couldn’t be more sad and confusing. Also, that feature solves next to nothing I’ve described here.

Blender is a free and open source program, meaning that if you’re unhappy of the way particles are done you can still code it.

A classic case of someone who wants Blender to work like other software. Did you have a question in all that text? From the images you posted, I would say they all can be made using Blender’s particle system as it stands. Trapcode Particular is only a 2D system, it can not even use 3D models or lighting.

Are you having trouble making a dust puff move across the screen or a flashing circle?

Why can’t you?

No, this is a case of someone who wants Blender to do something vitally important and fundamental that happens to be in other software.

I’m very experienced with Blender, I have little trouble with most features in the software. If there is a way to accomplish those particle effects, please demonstrate. In the countless experiments I’ve done with Blender’s particle system, those incredibly basic effects cannot be produced. Particles are always static.

Because it’s a radically different workflow that requires a lot more time and picking apart of elements to get it to function how I want (and I can never get it to for one reason or another), as well as taking far, FAR longer to render anything I want it to without those godforsaken grains. Do I really need to explain why Blender Internal is still a much more stable, reasonable system to work with?

Rate over time still involves a a fixed end frame. In After Effects If I set Particular to emit 1 particle per second for 300 frames, at 30fps, I will have 30 particle on the screen. Blender can do the same thing. Set the start frame to 1 and the end frame to 301 then set the particle count to 30. You are getting hung up on the math.

As far as size over time, if you did a little searching on the forum before you just start off complaining, you will find answers for that. You are just not putting in the effort to achieve the results. Here let me Google that for you “blender size over time”.

Hung up on the math? The biggest issue is that each particle system is only useable once, I can’t animate the amount of particles being emitted, and setting a “start and end” time is a ridiculous way to manage a particle system.

So it’s possible to animate size over time? Wow how grand, I can animate one property, which is pretty much useless without being able to animate others.

You can keyframe just about anything, I fail to see how these effects are not possible. Animall addon allows more control in UV and Vertex color recording, and not to mention what you can do with the materials themselves.

Gooseberry is supposed to see a general cleanup and improvement of particles and hair, so maybe cool down a bit and wait for the work to be done.

Yes you can keyframe almost anything, but you can’t apply any of that animation to particles individually. This makes it impossible to achieve the examples shown in the first post. No amount of animall is able to solve this problem.

Quit whining and do something about it. Either learn to program or donate some money. Otherwise, your diatribe contributes absolutely nothing.

, I can’t animate the amount of particles being emitted,

Yes you can.

but you can’t apply any of that animation to particles individually.

Yes you can.

If you would simply search the forum you would discover the answers.

I may have missed it but what exactly were you trying to do in the particle system?

Do I really need to explain why Blender Internal is still a much more stable, reasonable system to work with?

Talk about a “flawed, counterintuitive workflow”. I’ve been using Blender for years and got close to throwing it out the window over frustration with BI materials/textures. For me Cycles saved the day.

Have your tried this:

I think everybody should calm down a bit. Mr Lange, I understand your frustration and the tone of your post suggests that you’ve struggled with this many times and at one point (the day of the post, to be exact) you had one of those “goddamnit, enough is enough!” moments and decided to spill your guts.
And all those defending Blender in this regard and offering half-viable workarounds need to take a step back and admit that this is indeed a problem. Don’t get me wrong, I’m usually the first one to defend Blender when it’s being compared to other 3d solutions, and it’s superior in some areas to most commercial products out there, but it does have its shortcomings, as you’ve all stated at one point. And the fact that you don’t see this kind of complaint post here often is testament to all the good aspects of Blender.

The thing to take away from all this is that, as people stated, efforts are being put into the development of a better particle system for Blender. Sure, we’d all want to see something we need “right now” have priority over other “useless” features, but that’s not the way it works - everybody has different needs at different times. I don’t agree that features added and developed in past Blender releases are useless when compared to others - Blender’s evolution is one of the most admirable in the field. I made the decision to make Blender my default 3d package a while back, not because it was free, but because it was the best solution for my needs at that time, and still is.

The particle system refactoring will be complete at one point, probably not that far down the road and when it will get here, I’m sure it will be great. To my knowledge it will be based on the node editor and I’m guessing it will support both Cycles and BI. Seeing how you stated that you prefer BI over Cycles, I presume you like the way Blender’s internal material editor exposes its parameter in the material and texture panels as opposed to Cycle’s node approach - I, for one, love the node editor and I think that one someone gets used to it they never look back. There’s even talk about implementing a node-based solution to the modifiers - similar to the way Houdini works - and I can’t wait for that to happen.

I know that for simple tasks a simple panel with 2-3 options seems enough, but you can also make a very simple node tree, if that’s all you need - the advantage is that you can also make a node tree as complex as you want and need, too. There’s a reason most programs adopt this approach (maya, max, modo, softimage, houdini, smoke… blender).

So, yeah, Blender’s particle system is very problematic and, in the state it’s in right now, it’s inferior to almost every other 3d package out there. There’s no reason to be defensive about this aspect, but it’s important to remember that Blender is also one of the few softwares of its kind that has a very obvious evolution over time, outpacing many commercial products. In fact, the only paid package that has shown visible significant changes in the last few years is modo.

Okay, this has become a much longer post than I intended and I feel I’ve gone more than a bit off topic, for which I apologize.
Just remember the many reasons why we love Blender and think of all the things to come that will make us love it even more. And in 5-10 years time, when everybody will be using Blender, remember we were blnderheads before they were :slight_smile:

Looks like you need to look here for the updated version.

I happen to think that with effort, you can create a lot with Blender as it already is, and development will continue forward :smiley:

Oh, and funny Atom how you mentioned the exact phrase to find your add on video, that was superb!

Hi there,
CGI is a demanding field, try to be patient with yourself.
Here is a 4 old tutorial made by Dillon, the tutorial may help do want you are trying to achieve.

Sorry for having your questions ignored but you should dig or find different ways of asking something.

Hope this help :slight_smile: