Maxime Dumas discussed the evolution of Persistant Studios, guided us through PopcornFX, particle effects engine, and talked about the future of dynamic simulations.
Introduction
My name is Maxime Dumas, co-founder, CEO, and technical director at Persistant Studios. Nineteen years ago, I started in the industry as a tools programmer within the company we just created with 3 other classmates, while I was still completing my degree in software engineering. My experience spans a broad range of projects in game production and interactive applications, with a focus on enhancing visual quality and improving development tools.
At the time, we lacked both the experience and the network, but we seized early opportunities through work-for-hire contracts with companies like AMD on internal research projects. Over the years, we had the chance to collaborate with several companies across the gaming and software industries. Kylotonn was one of the first studios to adopt our technology and continue to use it in their latest projects.
In 2014, we contributed to Adobe Substance 3D Painter’s particle brushes, by embedding the PopcornFX v1 runtime for particle painting.
Then, we expanded our scope, reaching significant milestones by supporting new architectures and platforms early on. This journey includes our collaboration on the launch title VR Worlds with Sony London Studio in 2016 and a partnership with Magic Leap in 2018, where they integrated the PopcornFX v1 runtime into Lumin OS.
The following year, we introduced PopcornFX v2. A fully reimagined, node-based toolset, designed for high accessibility and to enhance core design choices, based on extensive feedback from the previous version.
What began as projects with mid-sized studios has grown into collaborations on AAA titles like Forza Horizon 5 and WWE 2K24.
Interestingly, we’ve also been involved in remasters of iconic franchises using legacy engines we once played as kids, including Diablo II: Resurrected, Age of Empires II: Definitive Edition, and most recently, Age of Mythology: Retold.
Story Behind Persistant Studios & First Projects
Persistant Studios was born from a team of passionate developers who saw a gap in accessible game engines for independent studios. At the time, engines like Unity were just emerging around 2005, and Unreal Engine was still out of reach for most indie developers. RenderWare, once a popular choice, had been acquired by Electronic Arts and was no longer maintained, leaving few options.
In the early years, we were developing a complete game engine. By 2008, however, one aspect of the engine, focused on visual effects, stood out as both more advanced and addressing a unique need in the market. This led us to pioneer programmable VFX for games. We recognized the need for a more flexible and powerful dedicated tool to create dynamic effects, as previous options were largely restricted to basic shaders and static designs due to workflow and performance limitations.We believed FX and technical artists deserve better tools to fully realize their creative visions.
The first version of this VFX system, PopcornFX V1, was launched in 2010 as a dedicated standalone software and SDK. It was used in game production for the subsequent seven years.
However, this version wasn’t without its flaws, as its most powerful and innovative feature, an internal scripting language with shader-like syntax, proved daunting for artists more accustomed to stack-based systems. Even so, it laid solid groundwork for our ongoing advancements.
Programmable VFX began trending in 2017 and has become more and more fundamental when creating immersive experiences.
PopcornFX 2.20 (2023)
PopcornFX
PopcornFX is a powerful particle effects engine designed for real-time applications, particularly in gaming. It enables developers to create stunning visual effects with both flexibility and efficiency. The main strengths of PopcornFX include its streamlined workflow, which leverages a fully nodal interface that promotes encapsulation and reusability, reducing maintenance needs, costs, and risks while fostering rapid prototyping.
Data-driven design presents challenges in identifying issues and understanding data flow, particularly with intricate behaviors. To address this, considerable effort has been dedicated to performance visualization and visual debugging features, therefore enhancing the developer experience.
Additionally, the runtime enables two-way communication with the game engine, allowing effect systems not only to respond to game data but also to drive the gameplay. This makes VFX interactive elements which deepen immersion and create a more cohesive experience, going beyond mere representation. It supports various platforms and integrates seamlessly with popular game engines, making it a go-to solution for studios aiming to elevate their visual storytelling.
Here are some examples features that you can find on our tool :
in-viewport edition of 3D curves
encapsulate complex graphs and behaviors
builtin efficient debug.drawValue
Legend for nodegraph colors
Quality of life features for the nodal editor
Group and ungroup nods
Select & inspect particle values when pausing simulation
Memory usage viewer
Current Build of PopcornFX & Latest Updates
Released in September 2024, the latest build of PopcornFX 2.20, a LTS (Long Term Support) version, brings several features aimed at enhancing user experience, stability, and performance.
Among the new additions:
- New Material: Scrolling Noises – eliminating the need for custom materials in classic patterns like dissolving and stylized animation effects.
- Simulation Micro-updates – allowing to subdivide a frame into multiple simulation steps.
- Quality of Life UX Improvements – including support for multiple input nodes across the graph representing the same pin or property, along with the ability to reorder attributes in the Effect Interface panel.
- New Presets – for faster setup, plus improved integration for Unreal Engine and Unity.
In one of the previous recent builds, we have developed a new technique called BAT (Bone Animation Texture) that encodes the keyframes for position and rotation of a skinned mesh's skeleton. The shader interpolates the bones' positions and rotations, facilitating traditional mesh skinning. Typically, a skinned mesh for a crowd agent has fewer than a hundred bones, while high-detail models may contain tens of thousands of vertices. This efficient storage allows multiple animations to be stored within the BAT, enabling smooth interpolation between them. Unlike traditional skinned meshes, the animation state is managed entirely within the particle system, utilizing only the current animation index and cursor, along with the next animation for state transitions, which ensures optimal performance.
But the most significant development, unveiled at GDC 2024 with PopcornFX 2.19, represents the start of a new R&D cycle that broadens PopcornFX beyond its roots as a pure particle system. While it previously focused solely on particle simulation, PopcornFX is now set to tackle a wider range of complex simulations and dynamic effects. This version serves as the first step toward addressing the growing demand for compute-intensive simulations and paving the way for future enhancements.
Our goal is to deliver stable solvers for various interactive simulations (fluids, cloth, crowds, liquids, etc.) as we progress. Most importantly, we aim to empower researchers, graphics engineers, and technical artists by providing a new way to develop specific systems without worrying about implementation details or requiring deep expertise in graphics programming, all while ensuring compatibility with mainstream or custom engines.
Dripping simulation
Shallow water simulation
Rope simulation
2D fluid simulation
Crowd simulation
SPH simulation
Highlighted New Features:
- New Low-Overhead Data Structures – Featuring 1D to 4D grids with minimal overhead, these direct-access arrays are ideal for use as textures in rendering stages, such as raymarching a 2D smoke simulation within a shader.
- Simulation Fences – An advanced synchronization mechanism that allows multiple computation stages within a single frame, creating synchronization barriers between nodes to efficiently manage complex simulation processes.
- Built-in Nodes in Core Library – Expanded core nodes provide streamlined access to new solvers, simplifying workflows and enhancing productivity.
Working with the Community
Our community plays a crucial role in our development process. We actively engage with our users through public Discord channels, private ticket systems and feedback sessions. Their insights and suggestions help us identify areas for improvement and prioritize features for future updates. You can join our community on discord here.
Additionally, we run preview version testing programs, allowing our community to experience new builds early and provide valuable feedback, ensuring that we effectively meet their needs. We release three minor updates each year, including one LTS (Long Term Support) version, as stability is of the utmost importance to us. Furthermore, patches are usually released twice a month to stay responsive to feedback and tickets, with timing adjusted according to the volume of input.
We are increasingly engaged as an external partner. We now provide both art and engineering services to address real-world production challenges. Driven by our commitment to use our own tools, we rigorously test them to guarantee they’re battle-tested and ready for real-world scenarios.
Marketplace
We are developing a marketplace focused on sharing assets and tools for VFX creation. This marketplace will allow artists and developers to buy, sell, and share particle effects, materials, and presets, fostering collaboration and creativity within the community. We plan to reveal more details in the months to come. For now, we are launching VFX packages on our FAB page that you can find here.
Take on AI Workflows
Control is key, and ensuring simulation performance, stability and predictability, along with respecting artists' rights, is above all else for us. Some Gen.AI-based services are indeed interesting to accelerate the creative process, and we aim to make it easy to connect these services within the workflow without making them mandatory. In the long term, we see great potential in using AI to accelerate simulations by filling in gaps and refining coarse simulations. However, these research initiatives will come later, once the simulation framework is advanced enough to build stable and high-performance, custom dynamics solvers.
The Next Big Milestone for Persistant Studios
Our roadmap is made of several milestones that will focus on 3 key areas:
Enhance simulation capabilities:
One of our upcoming significant milestones is the implementation of GPU events using DirectX 12 Ultimate Workgraphs, which will enhance performance for GPU effects that require event triggering. Currently, the entire layer falls back to the CPU when particle trigger events occur, making certain effects, that sample the G-Buffer for instance, impossible to achieve. After this, we plan to provide a more limited and simplified version for other graphics APIs.
We are also working on a Vulkan GPU backend, which is crucial for XR devices and will enhance support for mobile and handheld platforms.
In terms of future developments for our simulation framework, we plan to introduce features like inter-layer fences, true branching, and loops to enhance simulation complexity.
While we currently have IF nodes that act as selectors, they don’t yet enable distinct branching paths. Introducing true branching would be transformative for dynamic crowd simulations, supporting far more complex, adaptive logic that evolves with different states.
Loops, on the other hand, will provide an elegant solution for adaptive iterations. For example, in a rope simulation, the number of iterations could dynamically adjust based on LOD metrics, such as distance. Currently, achieving this requires manually duplicating nodes and connecting them for each iteration, which isn’t optimal for readability or maintenance.
Although we have not precisely scheduled the versions yet that will showcase the new solvers, we prioritize our roadmap based on the production use cases of our partners and clients, as well as what is perceived to be the most impactful for the community. There is a strong likelihood that we will address solvers for 2D, 2.5D, and 3D fluids, cloth, and dynamic crowds in an iterative and continuous manner.
Improving interoperability:
We are focusing on adopting standards such as Universal Scene Description (USD) and exploring MaterialX to enhance collaboration with other tools and engines.
At the same time, we are continuously improving integration with major engines like Unreal Engine 5 and Unity, while supporting alternative open-source engines like O3DE.
Our goal is to reduce feature fragmentation and minimize frictions, such as rendering disparities, by testing visual effects directly within the editor, in environments similar to those in-game.
User experience:
As previously mentioned, we are working on a marketplace dedicated to the exchange of assets and building blocks for VFX creation. This platform will enable artists and developers to buy, sell, and share particle effects, materials, presets, templates and solvers. Additionally, we plan to release new content packages to diversify our offer, which will also be accessible on Fab at some point.
Finally, we aim to enable export simulation as data that allow users to export simulation results to external files, making them reusable both in PopcornFX and other tools.
For instance, flipbook export, available experimentally since v2.16, enables pre-rendered simulations within PopcornFX, fostering a more integrated workflow. This system was used to generate crowd imposters, eliminating back-and-forth with other DCC tools.
The flipbook and image exporter feature will be enhanced to streamline the workflow with new solvers such as fluids and to facilitate the creation of procedural textures for materials, like gradient masks.
This will open up exciting possibilities for auto-generating LODs in the future.
A lot is coming to PopcornFX this year so I invite you to check out our personal learning edition on our website so you can start experimenting with the new features. You can also join our community discord and follow us on social media to keep up with the upcoming updates.