← Game Development

✨ Particle System — Game VFX Emitter

Click the canvas to move the emitter. Configure parameters and switch presets to design real-time VFX.

✨ Particle System


Start color
End color

Emitter shape

Presets

Active particles: 0
FPS:
Click to move emitter

About Particle Systems

Particle systems are a fundamental technique in game VFX, used to simulate fire, smoke, explosions, rain, magic spells, and countless other effects. Each particle has its own position, velocity, size, colour, and lifetime. The emitter spawns particles continuously or in bursts, and physics rules update every particle each frame.

🔮 Physics Model

Each frame: velocity is modified by gravity and reduced by drag (v += gravity*dt − drag*v*dt), then position advances (pos += v*dt). Opacity fades as age/lifetime approaches 1. Colour is linearly interpolated between start and end colours over the particle's life.

🎮 How to Use

Click anywhere on the canvas to reposition the emitter. Adjust sliders for emission rate, lifetime, speed, and spread. Pick a preset to load characteristic values instantly, then fine-tune individual parameters for your desired look.

💡 Game Dev Tip

Particle systems drive most visual spectacle in modern games. Low drag with high gravity creates ballistic arcs (debris). High drag with zero gravity makes slow-drifting smoke. Burst emission at rate 500 for 0.2 s then zero is the classic explosion pattern.

About this simulation

Written by MySimulator Team · Reviewed by MySimulator Editorial Review

Last updated: 5 July 2026

This simulation runs a real-time CPU particle emitter written in canvas 2D, the same technique game engines use to fake fire, smoke, explosions and magic effects. Up to 5,000 particles are drawn from a reusable object pool; each frame their velocity is updated by gravity and drag (v += gravity·dt, then v −= drag·v·dt), and their position, size and colour are interpolated across their lifetime. Six presets configure the emitter's rate, spread, gravity and colour gradient to reproduce recognisable VFX archetypes, and every parameter remains adjustable so you can build your own effect from scratch.

🔬 What it shows

A pooled particle emitter with three emission shapes — point, circle and line — spawning particles at a configurable rate. Each particle ages toward its lifetime, its velocity is pulled by Gravity Y and slowed by Drag every frame, its size eases from a start value to an end value, and its colour is linearly interpolated between a start and end RGB colour as it fades out.

🎮 How to use

Click anywhere on the canvas to move the emitter there. Adjust Emission rate, Lifetime, Speed, Spread angle, Gravity Y, Drag, and Start/End size with the sliders, or jump straight to a look with the Explosion, Fire, Smoke, Magic, Rain or Confetti presets — then fine-tune from that starting point. Active particle count and FPS are shown live at the bottom of the panel.

💡 Did you know?

The Explosion preset is really a burst: it sets emission rate to 0 and fires a temporary rate of 500 particles/second for just 0.2 seconds, which is the classic trick game engines use for a single sharp puff instead of a continuous stream. Confetti goes further and cycles each new particle through five hard-coded colours instead of a single gradient.

Frequently asked questions

What is a particle system and how does this one work?

A particle system is a technique for simulating fuzzy, non-rigid effects like fire, smoke, sparks or rain by drawing large numbers of simple, independently animated sprites. This simulation keeps a fixed pool of 5,000 particle slots; whenever a slot is free, a new particle is spawned at the emitter with a random speed and direction inside the configured spread angle, and it is drawn and updated every frame until its age exceeds its lifetime, at which point the slot becomes free again.

How does the physics actually update each particle?

Every animation frame, each live particle's vertical velocity is increased by Gravity Y multiplied by the frame's delta time, then both velocity components are reduced by Drag multiplied by velocity and delta time (a simple linear drag model), and finally the particle's position is advanced by velocity multiplied by delta time. Size eases linearly from the Start size to the End size and colour is linearly interpolated between the Start and End colour as the particle's age approaches its lifetime, while opacity fades from 1 to 0 over the same span.

What do the six presets actually change?

Each preset is a bundle of values applied to every parameter at once: Explosion uses a short burst with high gravity and drag for ballistic debris; Fire uses negative gravity (particles rise) with an orange-to-red gradient; Smoke uses very high drag, long lifetime and growing size for slow-drifting grey puffs; Magic uses full 360° spread with a purple-to-cyan gradient; Rain uses a line emitter, high gravity and low drag for falling streaks; and Confetti cycles through five bright colours per particle with moderate gravity and drag.

What's the difference between the point, circle and line emitter shapes?

Point emission spawns every particle from the exact same coordinate, producing a tight, focused stream — used by the Explosion and Confetti presets. Circle emission spawns particles at a random position within a 20-pixel radius disc, giving a softer, wider base — used by Fire, Smoke and Magic. Line emission spawns particles along a 120-pixel-wide horizontal line centred on the emitter, which is what makes the Rain preset fall as a sheet rather than a single column.

Why do particles fade and shrink instead of just disappearing?

Each particle tracks its age as a fraction of its total lifetime (0 at birth, 1 at death). That fraction drives three simultaneous interpolations: opacity fades linearly from fully visible to fully transparent, size eases from the Start size slider value to the End size slider value, and colour blends from the Start colour to the End colour channel by channel. Interpolating all three together, rather than an abrupt cutoff, is what makes smoke look like it's dissipating and fire like it's cooling as it rises.