Skip to content

Solver In ​

The start of a Solver: whatever reaches its Solver Out on one frame comes back out of Solver In on the next, so particle rules, growth and image feedback can build up over time.

Category: Loop Menu path: Loop > Solver

A Solver is a pair of nodes, Solver In and Solver Out, drawn inside a shared frame, like a Loop. A Loop repeats within one frame; a Solver repeats across frames. The nodes wired between the two run once per frame, and anything they change stays changed on the next frame.

Ports ​

PortTypeDirectionDescription
Start (Start B, Start C…)anyinputWhat the simulation starts from, read once, on its first frame — a Grid to blow apart, or the first picture of an image feedback. Leave it unwired to start empty (particles) or transparent (an image). New particles every frame go into the Point Solver's Emit, not here.
↺ In (B, C…)anyoutputLast frame's result — or Start on the first frame.
framescalaroutputFrames since the simulation started (0 on the first frame).
secondsscalaroutputThe same, in seconds.

Parameters ​

ParamTypeDefaultDescription
preRollscalar0Frames the simulation runs before the layer starts, so it is already going on the layer's first frame.

Values ​

A Solver starts with one value, In. Its two outside ports are named for what they do: Start on Solver In (read once, on the first frame) and Out on Solver Out (the result for the rest of the graph). It takes whatever you wire into it — points, an image, a shape, a number, a vector or a colour — and becomes that type; unwire it completely and it is open again. + add value on Solver In adds another (B, C…) when one Solver needs to carry two things at once, such as a second population of particles.

How It Works ​

The simulation starts at the layer's first frame minus Pre-Roll. On each frame the engine runs the body with last frame's values injected at Solver In, and stores what reaches Solver Out. Stored frames are kept within a memory budget (the same one the particle nodes use) and replayed forward from the nearest stored frame when you jump around the timeline, so scrubbing always shows exactly what playing through would. Nodes that feed the body from outside, like an emitter or a noise field, are evaluated at each simulated frame.

On a motion-blurred render, particles between frames are moved along their velocity from the whole-frame state.

A Solver has to sit at the top level of a graph, not inside a Loop or another Solver.

Usage Examples ​

Basic: a particle system ​

Point Emitter → [Solver In → Point Solver (points from Solver In, emit from the emitter) → Solver Out] → Draw Points. Adding a Point Emitter with auto-wire on builds this, and picking Point Solver from the menu builds the Solver around it. The Point Solver inside is one frame of physics; the Solver keeps the particles from frame to frame.

Rules: if this, then that ​

Put ordinary nodes after the Point Solver, inside the frame. A Select (velocity below 20) → Point Delete kills slow particles for good. A Select that tags particles as frozen, fed to the Point Solver's Apply To, stops them permanently. A Point Attributes that colours particles on impact keeps the colour. A downstream filter outside the Solver would only hide them.

Creative: image feedback ​

Solver In (an image) → Transform 2D (scale 102%, rotate 1°) → Levels (fade slightly) → Merge (draw something new on top) → Solver Out → Output. Every frame starts from the last one: tunnels, smears and paint that builds up.

Tips ​

  • A Solver keeps history, so changing anything inside or upstream of it rebuilds the simulation from its start frame.
  • Image feedback stores a full picture per remembered frame; long jumps through a high-resolution feedback comp replay from the nearest stored frame.
  • Downstream nodes see the Solver's current frame only. For trails that outlive their particles, use the Point Solver's Keep Dead For.