View all expressions
Motion

Create Procedural Candle Flame

Generates a vector teardrop shape that deforms realistically using Perlin noise. This mimics the physics of fire flickering and bending in the wind without requiring simulation plugins or raster footage.

Contributed by:


w = 100; // Width of flame
h = 200; // Height of flame
noiseScale = 15; // How erratic the wind is
windSpeed = 8; // Generate Noise for the tip of the flame
n = noise([time * windSpeed, index]);
pBottom = [0, h/2];
pLeft = [-w/2, h/4];
pRight = [w/2, h/4];
// The Tip moves based on noise
pTip = [n * noiseScale * 2, -h/2 + Math.abs(n) * noiseScale];
points = [pBottom, pLeft, pTip, pRight];
// Tangents for smooth curves
inT = [[0,0], [0, h/3], [0, 0], [0, -h/3]];
outT = [[0,0], [0, -h/3], [0, 0], [0, h/3]];
createPath(points, inT, outT, true);

Create Procedural Candle Flame

Practical use case

Use this to create stylized, animated fire for 2D explainer videos, holiday candle illustrations, or fireplace animations where you need a lightweight, scalable vector element.

Check out similar expressions

Data-driven video workflows for After Effects are easier with Plainly.

a mesh of elegant lines transparent image