ANR Tools

Sparks from Alpha 3D

3D sparks, embers or dust thrown from the alpha of a matte or from a point, simulated and rendered on the GPU, ready to plus over the plate.

Overview

Sparks from Alpha 3D emits particles in 3D and renders them as glowing streaks or soft points. Connect a Roto, a key or any image with an alpha to Source and the sparks are born where the alpha is: more where it is solid, fewer at soft edges. With nothing connected, they come from a small 3D point or sphere at the origin.

The particles fly in real 3D: a launch speed and a cone of directions, gravity, air drag, wind, smooth turbulence and an optional floor they bounce on. Every force can be animated. Three starting looks are built in: Sparks (the default), Embers that drift up slowly, and Dust, soft grey points.

The alpha is laid out as a flat plane in the 3D scene, 10 world units wide. The built-in camera on the Camera tab starts framed on that plane, so the sparks start on your alpha as you see it; moving the camera shows the plane and the sparks in 3D. Camera and Look changes reuse the particle motion and only render again.

There is no disk cache to build: every frame is worked out from the particles alive at that time, so you can scrub in any order and the same Seed always gives the same sparks. Bullet Time freezes the sparks at a frame while the camera and the look keep following the timeline.

Inputs

SourceSparks from Alpha 3DOutput
  1. Sourceoptional

    Optional. A matte, Roto or image whose alpha is the emitter: sparks are born where the alpha is, more where it is solid. With Emit from on Automatic the node uses it as soon as it is connected; with nothing connected it emits from a 3D point.

Output. Linear HDR RGBA, premultiplied: glowing particles over black. Composite it with a Plus merge; the alpha covers the particle cores, and the glow adds light outside them.

Quick start

  1. Add Sparks from Alpha 3D. Connect a Roto or a keyed element to Source to emit from its alpha, or leave it empty to emit from a point at the origin.
  2. Click Start / stop engine on the Setup tab: a new node starts stopped and renders nothing until you do.
  3. Set Start frame and play forward. Initial burst gives particles on the Start frame; Birth rate keeps them coming (set it to 0 for a single burst).
  4. For another look, choose Embers or Dust in Starting preset and click Apply preset.
  5. On the Emitter tab, aim the spray with Direction X/Y/Z, Cone angle and Launch speed. On Motion, shape the flight with gravity, Air drag, wind and Turbulence, and tick Floor collision to make the particles bounce.
  6. On the Look tab, set Particle size, Birth color, End color, Brightness and Streak length.
  7. Merge the result over the plate with a Plus merge, and add a glow after it for a wider bloom.

The panel

The node's panel as Nuke shows it, with the values of a new node. Click any control to see what it does; tabs and sections work as in Nuke.

Sparks_from_Alpha_3D1

Bullet Time, the engine, the starting preset, quality, start frame and burst, seed and particle budget.

Bullet Time
Freeze at1
Start / stop engine
StatusStopped. Start the CUDA engine; connect alpha or use the point emitter.
Starting presetSparks
Apply preset
QualityRender
Start frame1
Initial burst80
Seed1
Motion substeps2
Particle limit100000
Source sampling256
Clear memory cache

All controls

Setup14 controls

Bullet Time, the engine, the starting preset, quality, start frame and burst, seed and particle budget.

Bullet TimeCheckboxbulletTime

Freezes the sparks at the Freeze at frame. The camera and the look keep following the timeline. Holding a frame costs no simulation time. Ticking it freezes at the current frame. Animate it off to let the sparks go on.

Default: off

Freeze atSliderbulletFrame

The frame Bullet Time holds. Before it the sparks play normally; from it on they stay still. Animatable.

Default: 1

Start / stop engineButtonparticleEngine

Start native CUDA particles. Stop releases GPU memory. Node creation does not initialize CUDA.

StatusStatusstatus

What the engine is doing: stopped, or the number of live particles, the GPU in use, and whether the last frame reused the motion or how long it took to simulate.

Starting presetMenupreset

Choose a starting look, then click Apply preset. Sparks is already the default. Applying resets motion/look controls, not source placement or camera.

Default: SparksOptions: Sparks Embers Dust

Apply presetButtonapplyPreset

Applies the look chosen in Starting preset. It resets the Motion and Look controls, the birth rate, lifetime, launch speed and cone, and turns Floor collision off. Source placement, direction, Start frame, burst, seed and camera stay as they are.

QualityMenuquality

Preview renders up to 640 pixels without local glow. Particle count and motion remain identical.

Default: RenderOptions: Preview Render

Start frameSliderstart

First emission frame.

Default: 1

Initial burstSliderburst

Additional particles born exactly on Start frame. Set Birth rate to zero for a single burst.

Default: 80

SeedSliderseed

Deterministic particle seed. Scrubbing order does not change particle identities.

Default: 1

Motion substepsSlidersubsteps

Physics steps per frame. Preview never lowers this. Increase for fast collisions or strong turbulence.

Default: 2

Particle limitSliderlimit

Hard live-particle budget. Exceeding it shows an error instead of silently dropping particles.

Default: 100000

Source samplingSlidermaskResolution

Alpha sampling along the longest frame dimension. Input pixels are averaged; tiny features can lose peak opacity at low sampling.

Default: 256

Clear memory cacheButtonclearCache

Frees the node's memory: the stored alpha frames and the GPU engine. If the engine is still on, the next render starts it again.

Emitter15 controls

Where particles are born (alpha or point), how many, how long they live, and their launch speed and direction.

Emit fromMenuemitter

Automatic uses alpha when connected, otherwise a 3D point. Alpha is a world XY plane 10 units wide, not a camera-attached card.

Default: AutomaticOptions: Automatic Point / sphere Source alpha

Birth rateSliderrate

Particles per second. With source alpha, rate is multiplied by peak alpha; positions are weighted by local alpha.

Default: 2400

Lifetime (seconds)Sliderlife

Maximum lifetime. Expired particles are excluded from both simulation and rendering. Maximum 10 seconds.

Default: 1.4

Lifetime variationSliderlifeVariation

Random shortening of lifetime, from zero to this fraction.

Default: 0.55

Emitter XSliderpositionX

World units. Alpha source spans 10 units across the frame at Z=0; these controls offset that plane.

Default: 0

Emitter YSliderpositionY

Position of the point emitter; alpha mode uses this as an offset from its image plane.

Default: 0

Emitter ZSliderpositionZ

World depth. Camera starts at Z=10 looking toward negative Z.

Default: 0

Point radiusSliderradius

Radius of the spherical point emitter in world units.

Default: 0.025

Alpha depthSliderdepth

Thickness of the source alpha extrusion in world units.

Default: 0.02

Launch speedSliderspeed

World units per second.

Default: 4.5

Speed variationSliderspeedVariation

Random reduction in launch speed.

Default: 0.65

Direction XSliderdirectionX

Launch cone axis. The vector is normalized.

Default: 0.2

Direction YSliderdirectionY

Launch cone axis.

Default: 1

Direction ZSliderdirectionZ

Launch cone axis.

Default: 0

Cone angleSliderspread

Half angle of the launch cone in degrees. 180 emits in all directions.

Default: 55

Motion13 controls

Gravity, air drag, wind, turbulence and the optional floor.

Floor collisionCheckboxfloor

Makes the particles bounce on a flat, infinite floor at Floor height, with Bounce and Floor friction.

Default: off

Gravity XSlidergravityX

Acceleration in world units per second squared.

Default: 0

Gravity YSlidergravityY

Acceleration in world units per second squared.

Default: -9.81

Gravity ZSlidergravityZ

Acceleration in world units per second squared.

Default: 0

Air dragSliderdrag

Drag per second. Wind attracts particles toward its velocity through this drag.

Default: 0.35

Wind XSliderwindX

Air velocity in world units per second. Requires nonzero Air drag.

Default: 0

Wind YSliderwindY

Air velocity in world units per second.

Default: 0

Wind ZSliderwindZ

Air velocity in world units per second.

Default: 0

TurbulenceSliderturbulence

Smooth 3D acceleration. Does not alter particle count.

Default: 0.6

Eddy sizeSlidernoiseSize

World-space wavelength of turbulence.

Default: 1.5

Floor heightSliderfloorY

Infinite horizontal collision plane. Enable Floor collision to use it.

Default: -2.5

BounceSliderbounce

Fraction of normal velocity retained at floor collisions.

Default: 0.45

Floor frictionSliderfriction

Fraction of tangential velocity removed at a bounce.

Default: 0.3

Look10 controls

Shape, colours, size, brightness, streak length and glow.

Particle shapeMenustyle

Streaks follow projected 3D velocity. Points use circular soft sprites. Emissive rendering; no scene shadowing.

Default: Motion streaksOptions: Motion streaks Points

Birth colorColourhot

Colour of a particle when it is born. It moves towards End color as the particle ages.

Default: 1 0.8000000119 0.3000000119

End colorColourcool

Colour a particle cools to by the end of its life. Fade over life sets how fast it gets there.

Default: 1 0.0549999997 0.003000000026

Particle sizeSlidersize

Diameter in pixels at 1920 width and the default camera distance. Size scales with depth and output resolution.

Default: 1.1

Size variationSlidersizeVariation

Random reduction in diameter.

Default: 0.65

BrightnessSliderbrightness

Linear HDR emission. Composite sparks with a Plus merge; glow has additive RGB outside core alpha.

Default: 7

Streak lengthSlidershutter

Shutter interval in frames. 0 gives points; streak direction comes from 3D velocity. Rendering only.

Default: 0.65

GlowSliderglow

Local glow around each particle. Disabled in Preview; use downstream Glow for larger bloom.

Default: 0.18

Glow radiusSliderglowRadius

Multiplier of the particle radius. Rendering only.

Default: 4

Fade over lifeSliderfade

Higher values cool and dim particles more quickly.

Default: 0.65

Camera10 controls

The built-in 3D camera the particles are rendered through.

ProjectionMenuprojection

Built-in 3D camera. Camera edits re-render the same particle motion.

Default: PerspectiveOptions: Perspective Orthographic

Camera XSlidercameraX

Camera position in world units.

Default: 0

Camera YSlidercameraY

Camera position in world units.

Default: 0

Camera ZSlidercameraZ

Camera position in world units. Looks along local negative Z.

Default: 10

Rotate XSlidercameraRX

Camera Euler rotation, degrees, XYZ order.

Default: 0

Rotate YSlidercameraRY

Camera Euler rotation, degrees, XYZ order.

Default: 0

Rotate ZSlidercameraRZ

Camera Euler rotation, degrees, XYZ order.

Default: 0

Focal lengthSliderfocal

Perspective focal length in mm. No tracked Camera input in this first version.

Default: 50

Horizontal apertureSlideraperture

Camera film width in mm.

Default: 50

Orthographic widthSliderorthoWidth

World units across the image in orthographic projection.

Default: 10

Tips

  • Set Quality to Preview while you tune: it renders up to 640 pixels without the local glow, with exactly the same particles and motion.
  • The Status line shows the live particle count and whether the motion was reused: Camera and Look changes never re-simulate.
  • Raise Motion substeps for fast floor bounces or strong turbulence.
  • Fade over life cools and dims particles faster, and Lifetime variation lets some die early, which breaks up an even shower.
  • A different Seed gives a different shower with the same settings.
  • Emitter X/Y/Z move the alpha plane (or the point) in the scene; Alpha depth gives the alpha emitter some thickness.
  • Tick Bullet Time on the frame you want to hold: Freeze at takes that frame, the sparks stop with their streaks, and you can animate the camera around them.
  • Thin lines and small dots in the alpha can lose strength at a low Source sampling: raise it for fine shapes.

Good to know

  • Needs an NVIDIA GPU, Turing generation (RTX 20 series) or newer.
  • The camera is built in: there is no Camera input, so the node cannot follow a tracked shot camera.
  • The alpha plane sits in the scene, not on the camera: when you move the camera, the emitter stays where it is.
  • Particle limit is a hard budget: more live particles than that shows an error instead of dropping some. Raise it, or lower Birth rate or Lifetime (seconds).
  • The particles only emit light: they cast no shadows and nothing in the plate hides them.
  • When Bullet Time turns off, the sparks show the current frame again: the frozen frames are skipped, not added.
  • Stopping the engine frees its GPU memory. An engine nobody is viewing also frees it by itself after about 10 minutes, or after a minute when the GPU is nearly full; it starts again when you view the node.

Something unclear or missing? Write to [email protected].