
Building Your Own 3D Particle Generator
Dan Ebberts July 18, 2023
0 Comments
In this tutorial, Dan Ebberts explores how you can use expressions in After Effects 5.5 to build a fairly sophisticated 3D particle generator. Our particles will respond to initial velocity, gravity, wind, drag, and much more. Using this particle generator, we'll look at how you might create explosions, smoke, a fire blast, falling snow, and even a liquid-like flow. We'll explore how to make each particle re-usable, which will allow us to simulate fountain-like particle streams. This one is quite advanced.
Explosion MP4
3D Particle Generator .zip
the basics The basic idea is that we will import a graphic representation of a single particle. We'll drag it into our comp and make it 3D. We'll apply our physical simulation expressions to our particle and then duplicate that layer enough times to get a convincing result. We'll set the expressions up so that each particle (layer) will behave differently. We'll be applying expressions to many of the particle's properties, including position, scale, opacity, and rotation.
We'll start off with a simple explosion and develop more complex expressions from there. It will eventually involve some pretty hairy math and some physics (sorry!) but the good news is that you don't necessarily have to understand exactly how the expressions work - you just need to know how to modify them to get them to do what you want. In the first part of the tutorial, what I'll try to do, as much as possible, is to cover the basics of how the expressions work and how you would modify them. Then, towards the end, the stouthearted can follow me through the hairy math and physics.
the strategy We want each of our particles to have a defined life span that will be random within a certain range. Since we'll be applying expressions to multiple properties of the particle, we need some way to communicate information about the particle's life span to all the expressions that need it. We'll do this by performing the life span calculations in an expression control (if you want to learn more about expression controls, see my tutorial Building the World's Greatest Cameraman (COW Admin: coming soon)). We'll then use the expression control as a read-only global variable that can be accessed by all the other expressions applied to our particle.
let's begin! Go ahead and open the project file and then open the explosion basic comp. You'll notice a graphic layer called star flare and a null layer, which both have 3D turned on. We'll be using the position of the null to set the center of the explosion. We'll refer to the null as the particle emitter and later we'll move the null around to impart emitter velocity to the particles. Select the star flare layer and type u to display all the properties that have expressions applied to them. Also type Ctrl Shift t (PC) or Cmd Shift t (Mac) to display the effects applied the layer. You'll see that a point control has been applied and renamed life . You may be wondering why we'd use a point control instead of a slider control to hold the life value. The reason is that later on (when we get to re-usable particles) we're going to need to pass both life and birth times so we need a control that can pass two values. Couldn't we just use two slider controls? No, because the calculations for birth and life have to be done within the same expression to make it work. In the timeline, click the twirly next to Point to reveal the expression applied to the life point control:
lmin = 1.5; //minimum particle life
lmax = 2.5; //maximum particle life
seed_random(1,true);
life=random(lmin,lmax);
birth=0;
[birth,life]
This expression will generate a random life value for our particle that is between 1.5 and 2.5 seconds. This value will be plugged into the second element of our point control variable. The first element ( birth ) is just set to zero since for this first explosion comp all our particles will be born at time zero. The seed_random call just tells After Effects that we want to get the same random value for life every time we run the expression (otherwise the life value would hop around on every frame - which doesn't help us here). If you want to learn more about seed_random , see my tutorial Generating Random Motion (COW Admin: coming soon). If you wanted to change the life span of the particles, you would just change the lmin and lmax values.
Click the twirly next to Position to reveal this expression:
vmin=500; //minimum initial velocity
vmax=700; //maximum initial velocity
birth=effect( life ).param( Point )[0];
life=effect( life ).param( Point )[1];
origin=this_comp.layer( Null 1 ).position.value_at_time(birth);
age=time-birth;
seed_random(1,true);
s=random(vmin,vmax);//initial speed
a=degrees_to_radians(random(180)); //angle from vertical
r=degrees_to_radians(random(360)) //rotation around y axis
x=s*Math.sin(a)*Math.cos(r);
y=-s*Math.cos(a);
z=s*Math.sin(a)*Math.sin(r);
v=[x,y,z];
origin v*time
This is the basic position expression for a zero g explosion. Our particle will launch at a random direction in 3D space from the origin (which is just the position of the null layer) with an initial speed between 500 and 700 units (which roughly equates to pixels per second). The particle will continue at that speed and direction until it dies out. We haven't yet factored in wind, gravity, and drag. I'm sure you noticed the three lines that use the JavaScript trig functions to calculate the x, y, and z components of the particle's velocity vector. This vector is generated from the random values of speed ( s ), launch angle from vertical ( a ) and the rotation relative to the comp's y
Most recent headlines
05/01/2027
Worlds first 802.15.4ab-UWB chip verified by Calterah and Rohde & Schwarz to be ...
01/06/2026
January 6 2026, 05:30 (PST) Dolby Sets the New Standard for Premium Entertainment at CES 2026
Throughout the week, Dolby brings to life the latest innovatio...
02/05/2026
Dalet, a leading technology and service provider for media-rich organizations, t...
01/05/2026
January 5 2026, 18:30 (PST) NBCUniversal's Peacock to Be First Streamer to ...
01/04/2026
January 4 2026, 18:00 (PST) DOLBY AND DOUYIN EMPOWER THE NEXT GENERATON OF CREATORS WITH DOLBY VISION
Douyin Users Can Now Create And Share Videos With Stun...
21/02/2026
With Software Defined Broadcasting more established in Milan Cortina look for Los Angeles 2028 to have less hardware and more cloud-based software systems...
21/02/2026
The SVP of Olympic Operations on turning CAD drawings into reality, building tru...
21/02/2026
Share
Copy link
Facebook
X
Linkedin
Bluesky
Email...
21/02/2026
Share
Copy link
Facebook
X
Linkedin
Bluesky
Email...
21/02/2026
Back to All News
Netflix Unveils the Trailer of Accused', A Psychological ...
20/02/2026
Gravity Media and Los Angeles-based Green Couch Entertainment announce a strateg...
20/02/2026
IMAX announces it is working with Apple TV to bring the 2026 FIA Formula One Wor...
20/02/2026
Daktronics has partnered with the Philadelphia Phillies to design, manufacture, ...
20/02/2026
ESPN announces the upcoming launch of Women's Sports Sundays - a first-of-it...
20/02/2026
As the Seattle Seahawks and New England Patriots faced off in the NFL's biggest sporting event of the season on Sun., Feb. 8, Sennheiser wireless solutions ...
20/02/2026
ESPN announces its 2026 Major League Baseball spring training schedule, which includes four national games on ESPN, six games on ESPN Unlimited, and more than 2...
20/02/2026
Open Broadcast Systems, which specializes in software-based professional video transport, has added support for 200 Gigabit Ethernet to its range of encoders an...
20/02/2026
Chyron announces the release of PAINT 10.3, which is designed to help analysts and operators turn live action into clearer, faster on-air storytelling.
PAINT 1...
20/02/2026
With full squad workouts underway, MLB Network's live Spring Training game s...
20/02/2026
Tech enhancements, marquee productions are expected to take advantage of a summe...
20/02/2026
In-venue and creative video staffers at the professional and collegiate level ha...
20/02/2026
Ratings Roundup is a rundown of recent rating news and is derived from press rel...
20/02/2026
Speaking with SVG Europe after one of Team GB's greatest days at a Winter Olympics, BBC Sport's head of major events, Ron Chakraborty, explains the broa...
20/02/2026
Making Winter Games Olympic magic is the goal for every broadcaster in Italy cov...
20/02/2026
Curling, one of the least-dangerous Winter Olympic sports, is dominating the Mil...
20/02/2026
BBC Sport's presence at the 2026 Winter Games is centred around a significan...
20/02/2026
BBC Sport is bringing together its linear TV and streaming digital arms in a str...
20/02/2026
To broaden the appeal of winter sports at Milano Cortina, the BBC has integrated...
20/02/2026
Just in time for the start of Apple TV's inaugural season as the exclusive U...
20/02/2026
One big challenge was to depict the character of each of very different and wide...
20/02/2026
(L-R) Writer-director Amanda Kramer photographs the photographers at the premiere of her film By Design at the Library Center Theatre in Park City. (Photo by ...
20/02/2026
In our latest blog, Tim Pearson explores the impact that increased memory prices are having on the consumer electronics market, and particularly the set-top box...
20/02/2026
Calrec Type R: Shaping the Future of Radio from the Heart of Flirt FM
Love may have filled the airwaves last week for Valentine's Day, and we've just c...
20/02/2026
NEW YORK - February 10, 2026 - An estimated 125.6* million viewers watched Super Bowl LX on Sunday, February 8, according to Nielsen's Big Data Panel meas...
20/02/2026
NEW YORK - February 19, 2026 - Nielsen today shared updated and final Super Bowl...
20/02/2026
Share
Copy link
Facebook
X
Linkedin
Bluesky
Email...
20/02/2026
A leading global investment bank, with offices at Two International Finance Centre in Hong Kong, partnered with systems integrators Global Vision Engineering (G...
20/02/2026
Rise AV and Rise Broadcast, the global not-for-profit organisations dedicated to improving gender diversity across technical industries, have today announced a ...
20/02/2026
Open Broadcast Systems, the leader in software-based professional video transport, has added support for 200 Gigabit Ethernet to its range of encoders and decod...
20/02/2026
Signiant today announced the formation of its Customer Advisory Board (CAB), bringing together a select group of customers to collaborate on product strategy, r...
20/02/2026
PTZOptics today announced the launch of its Visual Reasoning initiative that makes video more actionable by combining robotic PTZ camera systems, AI, and open i...
20/02/2026
Amino, a global media technology provider delivering devices, software and cloud services that simplify and elevate video delivery, today announced the successf...
20/02/2026
SMPTE , the home of media professionals, technologists, and engineers, today announced its call for technical papers for the SMPTE 2026 Media Technology Summit....
20/02/2026
Wowza Media Systems today announced that Granicus, a leading provider of digital engagement solutions for governments, continues to rely on Wowza to power its h...
20/02/2026
Share
Copy link
Facebook
X
Linkedin
Bluesky
Email...
20/02/2026
Share
Copy link
Facebook
X
Linkedin
Bluesky
Email...
20/02/2026
Share
Copy link
Facebook
X
Linkedin
Bluesky
Email...
20/02/2026
Share
Copy link
Facebook
X
Linkedin
Bluesky
Email...
20/02/2026
Share
Copy link
Facebook
X
Linkedin
Bluesky
Email...
20/02/2026
Share
Copy link
Facebook
X
Linkedin
Bluesky
Email...