NeutrinoParticles Editor 2.0.22: Attractors, Generator Settings in the Emitter Guide and Emitter Velocity
NeutrinoParticles Editor 2.0.22 is out, for Windows, Linux and macOS.
Attractors: zones that pull, push and swirl particles
Video tutorial: Attractors (narrated in Ukrainian, with an English voice-over track and English subtitles).
The scheme has a new Attractors block (Functions → Move). Place spheres, cylinders and paths in the preview and give each one a pull toward or away from its core, a swirl around its axis and a flow along it, with a dead core in the middle and a falloff to the edge. Feed the block into a ForceMove as a force or as a wind, and you have a tornado, a vortex drain or a magnet.
The field is edited right in the preview: one button per attractor type, the gizmo to move, rotate and scale, handles for the radii and the length, and the property panel for exact values. While you edit, every attractor shows its field — white streamlines with arrows for the swirl and the flow, green or red arrows for the pull toward or away from the core.
A Path attractor is a tube through keys you place in the preview, with its own radius at every key, so it can widen and narrow along the way: pull draws particles to its centerline, swirl spins them around it, and the flow carries them along it from the first key to the last, turning smoothly round its bends. Hold Shift over the path to see where a new key would go, then click to insert it.
You do not need the scheme for it: in the Emitter Guide, with Movement set to Forces, Add Force... and Add Wind... now offer Attractors. A new entry starts with one sphere at the center of the world, already pulling particles in, with a Strength that scales the whole field and Edit attractors... to open it in the preview. Attractors export to JavaScript v1.1, C# v1.2 and the GPU renderer.
Every generator setting in the Emitter Guide
Video tutorial: Generators (Periodic) (narrated in Ukrainian, with an English voice-over track and English subtitles).
The Generation section now shows every number of the chosen generator — start delay, start phase, burst, the time and shots limits, the period settings of Manual Keys — as regular Emitter Guide values: a fixed number, an emitter property, or a graph over the emitter's or the effect's time. The “Other generator's properties…” button is gone. Switching an emitter between Periodic, Approx Rate and EvenRing now keeps your rate, start delay, limits, start phase and burst — graphs included — instead of resetting them.
A link button on the Termination title bar ties the generator rate to the particle's Max Lifetime, so the emitter stays full as you change the life. New emitters start linked; if the setup stops allowing the link, it turns itself off and the editor tells you why.
Approx Rate and Approx Distance look the same on the CPU as on the GPU
Both generators used to produce an even stream on the CPU — a particle exactly every 1 / rate seconds, or every so many units of travel — while the GPU renderer produced them at random moments around the same average. Now the CPU preview and the JavaScript v1.1 and C# v1.2 exports produce them the GPU way: the average amount is the same, the moments (or the points along the way for Approx Distance) are random, so the stream looks organic. For an even stream use Periodic, EvenRing or By distance.
Periodic no longer skips shots when the emitter is full. At the rate the link to the lifetime sets, the particles in flight fill the emitter exactly, so each shot needs the slot of a particle dying at the same moment; the shot used to come first and was dropped. Now the dying particle frees its slot first. A Periodic or Approx Rate effect with a fixed seed may look slightly different after re-export.
A new terminator: Condition
The Termination section can now hold a Condition terminator next to Max Lifetime and Path. It compares two values, A and B, every frame and kills the particle as soon as A reaches B. Both are full Emitter Guide values, so A can be, for example, the X of the particle's position and B a fixed number — an axis-aligned border that costs much less than a terminator path.
See other graphs while you edit one
When a particle's size, transparency and movement all change at the same moments, their keys used to be lined up by switching between graphs again and again. Now any graph can be pinned as a visualizer — with the pin button in the Graph Editor's title bar — and its outline stays visible, faded and read-only, while you edit any other graph of the effect. Hover an outline to see its name and emitter, click it to jump to editing that graph. Graphs made by the Emitter Guide now carry names after what they belong to, such as Size / Start or Transparency.
The Graph Editor's buttons moved into its title bar, so the graph gets the whole height of the window, and a graph's Shift now comes back exactly as you left it when you turn it off and on again.
Child emitters that continue their parent
Video tutorial: Smooth Fade-Out with Attached Emitters (narrated in Ukrainian, with an English voice-over track and English subtitles).
Values in the Emitter Guide can now read what another section computes for the particle: EG: Size, EG: Color, EG: Transparency, EG: Rotation and EG: Texture frame. Set the size or color of an emitter attached with On terminate to EG: Size or EG: Color, and an explosion, a splash or a trail starts at the size and color the particle had when it died, with no visible jump.
An attached emitter can also take over its parent particle's orientation: Emitter property is now offered on rotation values too, so the parent can hand its exact rotation to the child through EG: Rotation. Both work in the JavaScript, C# and GPU33 exports.
And it can carry the parent's motion on: the new Emitter Velocity value, next to Emitter position, reads the velocity of the emitter itself — the direction and speed it moves with, zero while it stands still. Use it in combined values: particles that inherit only part of the emitter's motion, a trail stretched along the way the emitter flies, a force or wind that grows with the emitter's speed. An emitter attached On terminate now starts with its parent particle's velocity in the CPU preview and in the JavaScript and C# exports, as it already did on the GPU.
EvenRing, fixed across the board
- The shot ticks on the timeline no longer drift away from the real shots.
- The shots limit works on the GPU renderer with a start phase below 1 or a start delay.
- Short-lived EvenRing streams no longer have gaps from late slot reuse — in the preview and in the JavaScript v1.1, C# v1.2 and GPU exports.
- An EvenRing emitter attached On terminate fires again on the GPU renderer, at the parent's last position.
- A looped Manual Keys generator shoots in every period again.
- The editor warns when a generator's Burst is larger than the emitter's maximum number of particles, which used to make an EvenRing emitter show nothing on the GPU.
Re-export GPU effects that use EvenRing to pick up the fixes.
Smoother editing, safer exports
Editing an effect with a large painted Area no longer freezes the editor for seconds with the GPU renderer: the area is now passed to the GPU as data instead of being rebuilt into its shaders on every change. While you edit an Area, its checkerboard fades back as soon as the mouse leaves the Preview window, so you can see the particles it produces. A zoomed-out timeline no longer slows the whole editor down, and Loop on the timeline restarts the GPU preview reliably, also with a later Preview Start.
Exporting no longer silently drops emitters the export target cannot take — for example a Points or Grid block exported to JavaScript v1.0. The export window lists each left-out emitter with the reason, and an export with nothing left keeps the previously exported file instead of overwriting it with an empty effect. Export warnings and errors are now shown in the interface language.
The release also carries a long list of fixes for mirrored emitters and for crashes after undo, reload and discard — including a crash after deleting Manual Keys shots on the timeline and one when opening a mirrored effect whose source cannot be loaded.
Runtimes
The PIXI 7 runtime makes far fewer WebGL calls on WebGL2: about 12 per effect per frame instead of about 59. If your code changes WebGL state directly through gl.* calls, call renderer.reset() afterwards, as PIXI requires for its own content.
The Cocos Creator 3.x extension 1.1.9 no longer compiles the runtime into the game twice and renders correctly after game.restart(). Both it and the Cocos Creator 2.4.x extension 1.1.2 get a new NeutrinoEffectPreloader that loads an effect's textures up front, so it draws from its very first frame, and texture-grid frames now play in the same order as in the editor.
Getting it
2.0.22 is on the downloads page, and the editor will offer it to you automatically. Effects saved with 2.0.22 do not open in older editor versions. The full release notes list everything.
If something looks wrong, tell us — crash reports include the effect you were working on, which makes them far more useful.
More articles
NeutrinoParticles Editor 2.0.19: Texture Atlases, Winds and Curl Turbulence
NeutrinoParticles Editor 2.0.19 is out, for Windows, Linux and macOS. Texture atlases, rotated sprites included Video tutorial: Texture Frames (na...
Read more 30 Sep 2026NeutrinoParticles Editor 2.0.18: Export Effects as Image Sequences
NeutrinoParticles Editor 2.0.18 is out, for Windows, Linux and macOS. Export effects as image sequences Besides exporting an effect as code, the...
Read more 16 Sep 2026NeutrinoParticles Editor 2.0.17 Released
NeutrinoParticles Editor 2.0.17 is out, for Windows, Linux and macOS. Stability This release is a stability update. Most of it comes from report...
Read more 10 Sep 2026NeutrinoParticles Editor 2.0.16: AI Agents Can Now Drive the Editor
NeutrinoParticles Editor 2.0.16 is out, for Windows, Linux and macOS. AI agents can now drive the editor The editor ships with an embedded MCP s...
Read more Participant