FluXY is a GPU, grid-based, 2.5D fluid simulator. It's lightweight, fast, robust, and easy to use. You can use it for simulating fluid effects in realtime, as well as generating flipbook textures.
Here you can find the manual and API docs.
❗ Includes shaders for:
You can use the included shaders on your project right out of the box, or as inspiration for your own simulation-driven shaders.
💡Expand 2D fluids into the 3D realm.
FluXY fluids live in containers. A container can either be a custom mesh or a flat rectangular area. Containers can face the camera, and objects in the scene can splat density and velocity data onto containers. All 3D data coming from the outside world such as forces, velocities, is projected to 2D. This gives the impression of a full 3D simulation, but orders of magnitude cheaper.
💡(NEW in 1.4) Record simulations to flipbook textures
Select any container and record a flipbook animation from it! These are cheap to play anywhere in your scene, and will look smooth even if they have few frames thanks to motion-vector based interpolation.
💡Turbulence, pressure, buoyancy, surface tension, external forces...
Take full control of the simulation: make swirly fluid by increasing turbulence, make it expand by reducing pressure, rise to the sky by increasing buoyancy, use adhesion and surface tension to make dripping paint, let it be affected by wind...
💡Inertial effects
Fluids can inherit the movement of their container. Put a torch in a character's hand, and the flames will be affected by running, jumping, waving and any other movement. You have full control over how much acceleration/velocity is transferred to the fluid.
💡Simulate fire, smoke, ink, water, paint, and other VFX.
Make your players traverse oily water, unleash magic spells, add smoke to destructible/crumbling objects, and more.
💡Dynamic Level of Detail (LOD)
Integrated with Unity's LOD components, distant simulations are performed at lower-resolution. Transition between levels of detail is smooth as butter.
💡Fast separable pressure solver
Calculating pressure usually is the most expensive part of fluid simulation, as the same basic math operation has to be repeated many times per frame. FluXY offers you a fast, separable pressure solver that achieves results comparable to traditional methods in a fraction of time. And, you can still choose to use the traditional way if you wish.
💡Waves
When using the traditonal pressure solver, pressure values can double up as a cheap wave simulation.
💡100% GPU
The entirety of the fluid simulation happens in your GPU, using fragment and vertex shaders.
💡Parallel simulation of multiple fluid containers.
Simulating one fluid container is fast, but simulating up to 16 at the same time is even faster. FluXY uses automatic dynamic atlasing to put multiple simulations into the same texture, for maximum performance.
💡Full source code included. Fast support and regular updates.
If you want to modify FluXY, add custom features to it, or just take a look under the hood, you'll be happy to know that every script and shader is included and easily editable. If you need assistance or have a question, drop us a line and we'll do our best to help.
❓What do I need to know to be able to use FluXY?
For basic use cases, very little experience is needed. Some basic Unity skills and understanding 3D concepts such as world/local space, raycasts, velocities/accelerations... will get you far. No C# scripting needed.
As you get into more elaborate effects, some shader knowledge is useful. FluXY outputs fluid density and velocity values as textures, you can use these as input in your own shaders to create some seriously cool stuff.
❌Things FluXY isn't / doesn't do:
❌Limitations for custom meshes