Nodes/RyanOnTheInside/Vortex βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Vortex βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Add a spinning force field to ComfyUI's particle system

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Vortex βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • previous_vortex
  • VORTEX
β—„x0.50β–Ί
β—„y0.50β–Ί
β—„strength100β–Ί
β—„radius100β–Ί
β—„inward_factor0.20β–Ί
β—„movement_speed1.0β–Ί
β—„color(0,127,255)β–Ί
β—„draw0.00β–Ί

Somewhere in the middle of this pack's much bigger ambition - reactive images, reactive masks, reactive audio, reactive depth - there's a genuine particle physics system: emitters that spawn particles, and force fields that push them around. Vortex is one of those force fields, specifically the one that pulls particles into a spinning inward swirl, the kind of effect people building this style of workflow have flagged as something that used to require Houdini or C4D and now doesn't. It's not a standalone effect node - on its own, Vortex produces a VORTEX object, not an image - it's one ingredient you feed into this pack's particle emitter/simulation nodes elsewhere in the same package.

How it works

x and y (0 to 1, normalized to your canvas) place the vortex's center. strength sets how hard it pulls, radius sets how far its influence reaches before falling off, and inward_factor is the setting that actually makes it a vortex rather than just a spinning field - it's the balance between pure rotation around the center and particles actually getting drawn inward toward it, so low values give a wide, loose spin and higher values pull particles into a tighter, more collapsing swirl. movement_speed animates the vortex's own position rather than the particles' - useful if you want the force field itself to wander across the frame over the course of a sequence instead of sitting fixed in one spot.

color and draw are worth understanding separately from the physics: they control a debug/preview visualization of the vortex's position and radius, not the actual particle motion. draw at 0 (the default) means no visualization is drawn at all - turn it up while you're setting up a scene to actually see where the vortex sits, then it's safe to leave alone once you've dialed in position and strength.

previous_vortex lets you chain multiple Vortex nodes together, stacking several swirling force fields into one combined field rather than replacing each other - the same chaining pattern this pack uses for its audio frequency bands and Whisper triggers.

Inputs and outputs

  • x / y - the vortex's center position, normalized 0 to 1.
  • strength and radius - how hard it pulls and how far that pull reaches.
  • inward_factor - rotation-only versus a tight, collapsing swirl.
  • previous_vortex (optional, VORTEX) - chain in earlier vortices to combine force fields.
  • Output - a single VORTEX, which feeds into this pack's particle emitter/simulation nodes to actually affect particle motion.

Installing it

Install through ComfyUI Manager (search RyanOnTheInside) or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside

Then pip install -r requirements.txt and restart ComfyUI. The particle system doesn't need any special model download - it's simulation math, not ML - so once the pack's Python dependencies are in, this whole family is ready to use.

Common issues

The node producing nothing visible on its own is expected, not broken - Vortex only defines a force; you need to wire its VORTEX output into an actual particle emitter node from this same pack before you'll see any motion at all. If you're not sure where to look for that emitter, search the pack's ParticleSystems category for the source/emitter nodes rather than assuming Vortex does double duty.

If the swirl looks weak, radius is usually the first thing to check before cranking strength - a vortex whose radius is much smaller than your particle spread will only affect the handful of particles that happen to pass close to its center, which reads as "barely doing anything" even at high strength. And don't confuse draw/color for particle appearance settings - they only govern the debug overlay of the force field itself, not what your particles look like.

CategoryRyanOnTheInside/ParticleSystems/Modulators

Inputs (9)

NameTypeDefaultDescription
xFLOAT0.500–1X-coordinate of the vortex center (0.0 to 1.0)
yFLOAT0.500–1Y-coordinate of the vortex center (0.0 to 1.0)
strengthFLOAT1000–1000Strength of the vortex effect (0.0 to 1000.0)
radiusFLOAT10010–500Radius of effect for the vortex (10.0 to 500.0)
inward_factorFLOAT0.200–1Factor controlling how quickly particles are pulled towards the center (0.0 to 1.0)
movement_speedFLOAT1.00–10Speed of movement of the vortex object (0.0 to 10.0)
colorSTRING(0,127,255)Color of the vortex visualization (RGB tuple)
drawFLOAT0.000–1Thickness of the vortex visualization (0.0 to 1.0)
previous_vortexoptVORTEXβ€”

Outputs (1)

NameTypeDescription
VORTEXVORTEXβ€”