The PopcornFX v2.21 build is now available!
Make sure you upgrade your runtime / plugins before switching to this version.
You can also check out the changelog on the wiki, where you’ll find all download links and updated patch nodes.
Note: UE4 & UE5 plugin archives are provided as 7z archives for better compression. They can be extracted using 7zip.
Highlights
Check out the PopcornFX 2.21 release highlights livestream, where a few members of the team dive into some of the new features:
https://www.youtube.com/watch?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&rel=0&fs=1&playsinline=0&autohide=2&theme=dark&color=red&controls=1&disablekb=0&" class="__youtube_prefs__ epyt-facade no-lazyload" data-epautoplay="1" >
https://www.youtube.com/watch/maxresdefault.jpg" />
Changelog 2.21.5
Builds (Jul 17th 2025)
- Editor
- Plugins
- UnrealEngine Win/Linux/Mac: UnrealEngine_PopcornFXPlugin_2.21.5_Win64_Linux64_Mac64.7z
- UnrealEngine iOS/Android: UnrealEngine_PopcornFXPlugin_2.21.5_iOS_Android.7z
- Unity Win/Linux/Mac/iOS/Android: Unity_PopcornFXPlugin_v2.21.5_Win_Linux_MacOS_Android_iOS.zip
- Unity Win/Linux/Mac: Unity_PopcornFXPlugin_v2.21.5_Win_Linux_MacOS.zip
- Unity URP: UnityURP_PopcornFXPlugin_v2.21.5.zip
- Unity HDRP: UnityHDRP_PopcornFXPlugin_v2.21.5.zip
- AfterEffects Win: AfterEffects_PopcornFXPlugin_v2.21.5_Win64.exe
- AfterEffects Mac: AfterEffects_PopcornFXPlugin_v2.21.5_Mac64.pkg
- O3DE Gem Win/Linux/Mac: O3DE_PopcornFXGem_v2.21.5_Win64_Linux64_LinuxARM64_Mac64.zip
- Fixed #14544: Rendering crash when a GPU layer is failing to run and it contains triangle-renderer
- Fixed #14672: orientation.axisSide/Up/Forward return a vector of length 0.5 instead of 1.0 for some of the particles, since v2.21.0
- Fixed #14539: Nodegraph & Simulation: Improve performance of integer bitshifts on AVX2-capable CPUs
- Fixed #14358: Nodegraph: Using a pow node with a negative integer exponent causes the optimizer to produce incorrect instructions, resulting in incorrect values.
- Fixed #14536: Nodal editor: Significant UI lags when layers get recompiled, even though it’s supposed to be fully async. Most visible when tweaking curves, in layers that have large textures referenced in renderer nodes.
- Fixed #14542: Editor: Searching for ‘Bill’ in node will put ‘BillboardScreenControls’ before ‘Billboard Renderer’
- Fixed #14538: Unity: Custom Materials get reset on reimport with Unity 2022.1+
- All v2.20.10 LTS fixes
- Fixed #14653: Texture sampler: SampleDensity is broken for images that have a wavelet density profile setup in their bake settings
- Fixed #14435: Propertygrid: Unsigned integer properties will not properly take min/max into account when typing a negative value directly or using Ctrl+click+drag in the inputbox to go below zero, wrapping the unsigned value to 4.2G
- Fixed #14627: Release assert (sometimes seen by users as a crash) when loading corrupt TIFF files
- Fixed #14671: Project Launcher: Freeze for a couple seconds when project launcher appears AND a lot of projects are in the project list AND the threadpool settings have been changed from the defaults in the editor user settings
- Fixed #14555: Project launcher: Vault: Typing something in the search bar before scanning has finished displays “Vault is Empty” message instead of saying it is still scanning.
- Fixed #14552: Editor: Crash when changing threadpool settings and some background tasks are running
- Fixed #14546: Crash when stopping the instrumentation driver on Windows
- Fixed #14598: Unity: PS5NGGC renderer crash
- Fixed #13897: UnrealEngine: Default Materials: Implement Basic TransformUVs
Changelog 2.21.4
Builds (Jun 5th 2025)
- Editor
- Plugins
- UnrealEngine Win/Linux/Mac: UnrealEngine_PopcornFXPlugin_2.21.4_Win64_Linux64_Mac64.7z
- UnrealEngine iOS/Android: UnrealEngine_PopcornFXPlugin_2.21.4_iOS_Android.7z
- Unity Win/Linux/Mac/iOS/Android: Unity_PopcornFXPlugin_v2.21.4_Win_Linux_MacOS_Android_iOS.zip
- Unity Win/Linux/Mac: Unity_PopcornFXPlugin_v2.21.4_Win_Linux_MacOS.zip
- Unity URP: UnityURP_PopcornFXPlugin_v2.21.4.zip
- Unity HDRP: UnityHDRP_PopcornFXPlugin_v2.21.4.zip
- AfterEffects Win: AfterEffects_PopcornFXPlugin_v2.21.4_Win64.exe
- AfterEffects Mac: AfterEffects_PopcornFXPlugin_v2.21.4_Mac64.pkg
- O3DE Gem Win/Linux/Mac: O3DE_PopcornFXGem_v2.21.4_Win64_Linux64_LinuxARM64_Mac64.zip
- All v2.20.9 LTS fixes
- Fixed #14506: The effects baked on some AMD vs some Intel machines sometime produces different binary outputs
- Fixed #14494: AssetBaker: add –max_threads=%d commandline option, to specify how many threads should be spawned in the default threadpool.
- Fixed #14488: Instant crash when launching editor on a machine with 128 or more processors.
- Fixed #14504: Editor: Add effect right-click menu entry in developer mode to rewrite binary-baked effect as text
- Fixed #14505: Add effect right-click menu entry in developer mode to dump the bytecode disassembly of a baked effect
- Fixed #14472: Unreal Plugin: Havok: Particle collisions are now 2x faster when using Havok instead of Chaos, by using havok raycasts on projects that use Havok physics.
Changelog 2.21.3
Builds (May 6th 2025)
- Editor
- Plugins
- UnrealEngine Win/Linux/Mac: UnrealEngine_PopcornFXPlugin_2.21.3_Win64_Linux64_Mac64.7z
- UnrealEngine iOS/Android: UnrealEngine_PopcornFXPlugin_2.21.3_iOS_Android.7z
- Unity Win/Linux/Mac/iOS/Android: Unity_PopcornFXPlugin_v2.21.3_Win_Linux_MacOS_Android_iOS.zip
- Unity Win/Linux/Mac: Unity_PopcornFXPlugin_v2.21.3_Win_Linux_MacOS.zip
- Unity URP: UnityURP_PopcornFXPlugin_v2.21.3.zip
- Unity HDRP: UnityHDRP_PopcornFXPlugin_v2.21.3.zip
- AfterEffects Win: AfterEffects_PopcornFXPlugin_v2.21.3_Win64.exe
- AfterEffects Mac: AfterEffects_PopcornFXPlugin_v2.21.3_Mac64.pkg
- O3DE Gem Win/Linux/Mac: O3DE_PopcornFXGem_v2.21.3_Win64_Linux64_LinuxARM64_Mac64.zip
- Fixed #14468: Freeze when simulating a lot of mediums and some of them use sim-stage fences
- Fixed #14469: grid.dimensions: Value range of the output dimension is incorrect, has a min of 0 instead of 1
- Fixed #14426: Unity: Crash on importing an effect using distortion in HDRP
- Fixed #14425: Unity: legacy distortion shader is not found in HDRP
Changelog 2.21.2
Builds (Mar 27th 2025)
- Editor
- Plugins
- UnrealEngine Win/Linux/Mac: UnrealEngine_PopcornFXPlugin_2.21.2_Win64_Linux64_Mac64.7z
- UnrealEngine iOS/Android: UnrealEngine_PopcornFXPlugin_2.21.2_iOS_Android.7z
- Unity Win/Linux/Mac/iOS/Android: Unity_PopcornFXPlugin_v2.21.2_Win_Linux_MacOS_Android_iOS.zip
- Unity Win/Linux/Mac: Unity_PopcornFXPlugin_v2.21.2_Win_Linux_MacOS.zip
- Unity URP: UnityURP_PopcornFXPlugin_v2.21.2.zip
- Unity HDRP: UnityHDRP_PopcornFXPlugin_v2.21.2.zip
- AfterEffects Win: AfterEffects_PopcornFXPlugin_v2.21.2_Win64.exe
- AfterEffects Mac: AfterEffects_PopcornFXPlugin_v2.21.2_Mac64.pkg
- O3DE Gem Win/Linux/Mac: O3DE_PopcornFXGem_v2.21.2_Win64_Linux64_LinuxARM64_Mac64.zip
- Fixed #14398: Texture loader: BC4-ATI1 images fail to load properly
- Fixed #14397: Textures: BC5 decompression generates an incorrect blue channel, producing unnormalized RGB vectors
- Fixed #14414: Editor: Occasional “random” crash when Ctrl+S asset
- Fixed #14348: Script editor: ‘Exec rate’ coloring does not work if scripts are contained inside templates, only works for scripts that are directly inside a layer.
- Fixed #14332: GPU debugger: Most of the time when selecting particles the debugger shows all values as zeroes, or no values at all
- Fixed #14265: Node search popup: When invoking the popup on a wire with Ctrl+space, searching for “- 2”, “+ 2”, or “^ 2” to insert a sub, add, or pow node display constants first and the node last in the list, making it extremely impractical.
- Fixed #14396: Asset Baker: Baking textures with ‘ExportPixelFormat’ set to ‘BC5_UNorm’ or ‘BC5_SNorm’ in the bake config bakes garbage texels in the final texture
- #3187: Editor Installer: Create linux package
- All v2.20.8 LTS fixes
- Fixed #14385: Grids: Lowering the dimension of a grid still outputs the old dimension in the higher-order components when using a grid.dimensions node
- Fixed #14387: Mesh importer: Viewport is black when opening a mesh with no valid geometry, or where all the vertices are located in a single point, producing a zero-size bbox
- Fixed #14357: Index asset content of files created or modified by external applications sometimes fails
- Fixed #14356: Opening a pkma while not in developer mode throw an internal error message
- Fixed #14355: Opening a pkri while not in developer mode does not open the experimental error message box
- Fixed #14353: Drag/dropping external files inside the content-browser is not working with buttons other than left click
- Fixed #14352: Refusing to save the changes when closing the mesh importer does not discard them
- Fixed #14386: Content browser right-click menu: Expand all folders & Collapse all folders menu items have no icon
- Fixed #14375: Linux: Incorrect glslangValidator path on linux
- Fixed #14354: Linux: Drag/dropping external files inside the content-browser is not working on linux
- Fixed #14337: Linux: Vulkan fatal error when closing an effect editor on linux
- Fixed #14410: O3DE: Missing shaders in gem seed list
- Fixed #14409: O3DE: Product asset dependencies are not correctly set
Changelog 2.21.1
Builds (Feb 13th 2025)
- Editor
- Plugins
- UnrealEngine Win/Linux/Mac: UnrealEngine_PopcornFXPlugin_2.21.1_Win64_Linux64_Mac64.7z
- UnrealEngine iOS/Android: UnrealEngine_PopcornFXPlugin_2.21.1_iOS_Android.7z
- Unity Win/Linux/Mac/iOS/Android: Unity_PopcornFXPlugin_v2.21.1_Win_Linux_MacOS_Android_iOS.zip
- Unity Win/Linux/Mac: Unity_PopcornFXPlugin_v2.21.1_Win_Linux_MacOS.zip
- Unity URP: UnityURP_PopcornFXPlugin_v2.21.1.zip
- Unity HDRP: UnityHDRP_PopcornFXPlugin_v2.21.1.zip
- AfterEffects Win: AfterEffects_PopcornFXPlugin_v2.21.1_Win64.exe
- AfterEffects Mac: AfterEffects_PopcornFXPlugin_v2.21.1_Mac64.pkg
- O3DE Gem Win/Linux/Mac: O3DE_PopcornFXGem_v2.21.1_Win64_Linux64_LinuxARM64_Mac64.zip
- Fixed #14330: Bad simulation GPU dispatch on effects with multiple exec-rates and fences
- Fixed #14322: Optimizer: Fails to simplify trivial ‘bool(x) != false’ & ‘bool(x) == true’
- Fixed #14277: Output pins of templates do not display the correct type & value range if they are not plugged into anything
- Fixed #14329: Double-clicking on a .pkpr file in windows explorer tries to open it in the popcorn editor but crashes.
- Fixed #14317: Editor: grouping only one wire portal result in broken link
- Fixed #14281: Nodal editor: IR panel: GPU-sim shader disassembly is empty
- Fixed #14321: Wire portal: Wrong display of the node if it doesn’t have an outgoing link
- #14318: Editor: Add GUI scaling option in user settings to allow scaling the entire editor UI, for example when things appear too small on high-DPI displays, 4k laptops, etc..
- Fixed #14320: half a wire portal can be copied and pasted
- Fixed #14294: Editor: Wire portals display wrong shortcuts and have no actual shortcuts
- All v2.20.7 LTS fixes
- Fixed #14305: Crash or release-asserts in events because of bad IR generation when appending payloads from different rates / sim stages into the same event wire
- Fixed #14293: Nodal editor: Can swap node inputs in readonly graphs using the ‘X’ shortcut
- Fixed #14334: Linux Editor: Content browser freeze on linux
- Fixed #14338: Linux Editor: Particle texture are messed-up when using OpenGL on linux
- Fixed #14335: Linux Editor: Crash when opening effect editor using vulkan on linux
- Fixed #14301: Editor: File already exists message while creating or renaming a file on linux and macosx even if it doesn’t
Changelog 2.21.0
Builds (Jan 30th 2025)
- Editor
- Plugins
- UnrealEngine Win/Linux/Mac: UnrealEngine_PopcornFXPlugin_2.21.0_Win64_Linux64_Mac64.7z
- UnrealEngine iOS/Android: UnrealEngine_PopcornFXPlugin_2.21.0_iOS_Android.7z
- Unity Win/Linux/Mac/iOS/Android: Unity_PopcornFXPlugin_v2.21.0_Win_Linux_MacOS_Android_iOS.zip
- Unity Win/Linux/Mac: Unity_PopcornFXPlugin_v2.21.0_Win_Linux_MacOS.zip
- Unity URP: UnityURP_PopcornFXPlugin_v2.21.0.zip
- Unity HDRP: UnityHDRP_PopcornFXPlugin_v2.21.0.zip
- AfterEffects Win: AfterEffects_PopcornFXPlugin_v2.21.0_Win64.exe
- AfterEffects Mac: AfterEffects_PopcornFXPlugin_v2.21.0_Mac64.pkg
- O3DE Gem Win/Linux/Mac: O3DE_PopcornFXGem_v2.21.0_Win64_Linux64_LinuxARM64_Mac64.zip
Templates & Corelib
- #13917: ‘shape.sampleDistanceField’: Add an ‘IsInside’ output helper
- #13984: Add an ‘orientation.fromForwardSide’ node and a ‘scene.orientation_fs()’ script helper
- #14271: Corelib: ‘Trigger’, ‘TriggerOnce’, and ‘OnDeath’ currently only accept ‘float’ values for their ‘Size’ input. Allow passing ‘float2’, ‘float3’, and ‘float4’ values as well
- #14232: Corelib: Add ‘InterpolateTriangle’ helper template, that takes 3 vertex values, a 2D barycentric coordinate, and returns the interpolated result
- #14188: Event-graph: Add event switch node, that takes an index specifying which output event to trigger
- #14194: EventRandSwitch node: Allow specifying a custom [0,1] selector, not necessarily the builtin ‘rand(0,1)’
- #14193: Placement templates: Add local vector to event payload in event-graph versions of the templates, otherwise impossible to extract reliably
- #14186: Atlas sample node: output aspect ratio from atlas sample node
- #12499: Physics node: Implement resting state for the physics node
- #14185: Collision node: Add option to reduce collision misses by stopping particle at contact point in the current frame instead of doing a single bounce across a solid wall
- #14032: Animtrack sampler: Add ‘animtrack.transform’ helper node in the corelib
- #13916: shape.project: Allow grabbing the distance & direction vector
- Fixed #14210: EaseToTarget node: Cannot specify ‘Target’ value inline. Annoying, no good reason for it anymore.
- Fixed #14200: Corelib: ‘drawVector’ template does not allow switching between additive and alphablend, unlike ‘drawLine’ template
- Fixed #14084: ProjectVector node does not have proper 3DCoordinate semantics on its inputs, making it not coordinate-system independent
Simulation
- #14208: Curve: Add geodesic cursor (walk a curve at constant speed)
- #14192: Mesh sampler: Add script function & corelib node to allow getting the vertex IDs from a triangle ID
- #14031: Animtrack sampler: Add new script function & corelib node to get the length of each track
- Fixed #14238: Mesh KdTree acceleration structure build (Raycast & Projection): Bad quality, low-performance lookup is generated from triangle-strip meshes
- Fixed #14237: CPU Mesh sampling: Incorrect clamping of out-of-bounds parametric coordinates when smapling meshes that use triangle strips
- Fixed #14236: Mesh UV2PCoord acceleration structure build: Bad quality, low-performance lookup is generated from triangle-strip meshes
- Fixed #14067: Compiler: cannot construct vector of bools (bool is always converted into int)
- Fixed #4618: EXR loader: Memory leaks when loading some EXR images
Rendering
- #13665: Editor: Add support for the triangle renderer in the GPU sim
- #14190: Editor materials: Add the atlas feature to Ribbon_AnimatedMasked.pkma
- #13987: Editor materials: Add the CustomTextureU feature to Ribbon_AnimatedMasked.pkma
- #13591: Editor Materials: Implement CorrectDeformation for atlased ribbons
- Fixed #4780: Editor: shader are not recompiled after project upgrade
- Fixed #14247: Mesh renderer: ‘Use Vertex Colors’ render feature doesn’t work in new materials, only in legacy materials
- Fixed #14234: Mesh importer viewport: Triangle strip meshes are not rendered properly.
- Fixed #13600: Editor materials: Legacy and current ribbons with correct deformation don’t support atlas blending
Nodal Editor
- #5293: Allow solo-ing layers & renderers using ‘Ctrl+Shift+T’
- #5454: Add wire “portals” to avoid having long wires go through the graph
- #12525: Allow switching an export node back to a local value/property again
- #14206:Input/Output nodes: Add a 3rd possible pin visibility rule in addition to the existing 2 rules
- Fixed #4844: Attributes: Copy-pasting attribute nodes cause false positive mismatch warning messagebox
- Fixed #14280: Editing GPU-sim layers causes significant UI lag every time a change is made, for some effects can cause the UI to freeze for multiple seconds every time a change is made
- Fixed #14270: Tweaking some values of sampler nodes requires manually recompiling the graph before seeing changes
- Fixed #14207: Pin visibility rules are ignored and pin forced to visible whenever a dependent property is not found. Makes visibility rules useless when auto-exporting a partial number of pins.
- Fixed #3339: Highlight of particle from the nodegraph does not work as excepted on the layer-graph
Effect Editor
- #13218: Editor: Skinned meshes have horrible performance when multiple backdrop instances are present
- #14246: Editor: Implement Sim Interface Scene Sample Wind Field on GPU
- #14242: Propertygrid: Asset Picker: Display folder path & some details about the asset next to each search result
- #14239: Propertygrid AssetPicker search: Allow also searching for a folder name to show the assets it contains
- #9077: Add progress pop-up when the debugger takes long to launch (editor is freezing)
- Fixed #5796: Renderers batching panel: Mouse hover highlight is half broken when a renderer is already selected
- Fixed #10053: display a popup when a device removed or other fatal graphics API occurs
Editor
- #14187: Mesh Importer: Add FlipNormals option to turn the surface of a mesh inside-out
- #14196: Remove PKMA & PKRI editors from experimental status
- #14070: Allow cancelling asset analysis when opening a project
- #14044: Build tags: Add a build-tag inside each specific game-engine plugin to allow graphs to switch logic based on the target engine if necessary
- #14043: Build tags: Add a popcorn editor-specific build tag that can be tested inside a graph
- #2948: Project-wide asset contents search
- Fixed #14235: Mesh importer: UV Panel displays buggy triangles when importing a mesh using triangle strips
- Fixed #14030: FBX importer: Fails to import all the animation tracks of some FBX files.
- Fixed #14245: Material editor: Saving the material with a bad shader path will create the shader file and save the error message inside: “Shader content is generated or not available.”
- Fixed #4127: Material editor: shader path widget doesn’t refresh when path is undo/redo-ed
All v2.20.7 LTS fixes
- Fixed #14268: Crash when using shape.intersect when ‘Enabled’ pin varies per-particle
- Fixed #14275: Crash when rendering opaque multi-plane ribbons
- Fixed #14278: Crash when importing vector-field with non-equal dimensions and that needs to be transposed in a different axis system
- Fixed #14279: GPU Sim: Bad payload-extract (and possibly crash) when some payloads are not used
- Fixed #14262: CPU sim: hadd nodegraph & script function is bugged for float2 & float4 values when running on AVX-capable CPUs
- Fixed #14267: Unity: HDRP Material factory reference deleted members
- Fixed #14255: UnrealEngine: animtrack assets don’t get imported in unreal when used only inline in the nodegraph.
- Fixed #12621: UnrealEngine: texture sampling does not work in packaged games




