emFluid is a basic fluid solver for XSI's particle system and is typically used to produce smoke and fire effects. The animation on the right shows XSI particles that are controlled in real-time by an early 2D version of emFluid within XSI 5.11.
The plug-in consists of a DLL file (compiled C code) for the XSI command as well as a Visual Basic Script and some custom parameters attached to the particle cloud: a particle event executes a script which then executes the command (the DLL) that will define the particles new position and velocity.
You can define objects in your scene as velocity force emitters to add turbulence and swirls to the fluid boxes in which the particles move around. Up to 32 fluid boxed can simultaneously influence the particles and each fluid box can have an unlimited number of velocity force emitters.
emFluid does not take full control of the particles, it actually just modifies the particles' velocity and then gives back control to XSI, which means that you still can use XSI forces and obstacles. In the examples below you will find some animations that demonstrate that.
NOTE: This version of emFluid was designed to be used with the old particle system of XSI. If you want to use emFluid within ICE, then please go to the emFluid2 page.
Brief history of fluid solvers
In the 18th and 19th century a mathematical model was developed for fluid flows, the so-called Navier Stokes Equations.
In the middle of the 20th century, when computers started to play an important role in research and development, algorithms were developed to solve these equations, therefore allowing simulations of fluid flows. The simulations were accurate, but required enormous calculations.
In the 1990s Jos Stam developed a fluid solver based on the Navier Stokes Equations. Its purpose was not to simulate real fluid flows, but to create visual effects that look like real fluid flows. And, most important, to allow computers to calculate those effects in real-time.
I believe the main ideas in his paper "Real-Time fluid Dynamics for Games" are found in any existing fluid solver on the market.
Last summer (2007) my friend Oliver W. (pixelpanic) asked me to code a simple fluid plug-in for XSI. Actually, he had been bugging me with that for over three years! Anyway, I was at his place for a few days and that's where we made the first beta version of emFluid for Softimage|XSI.
The ZIP file containing the program files (demo version), the documentation files and the XSI database with the tutorial scenes can be downloaded here: download ZIP file (emFluid 1.0 demo version).
Additional XSI scenes (only XSI v.6.xx and above): emFluid.v.1.0.AdditionalScnFiles.zip.
Note: these scenes might not work properly with the demo version!
To take a look at the documentation: emFluid.v.1.0.documentation.pdf.
To purchase the full version of emFluid 1.1 please go to the emFluid2 page.
Example 1: the classic burning torus
The XSI scene contains a fluid box, a particle cloud with the scripted particle event that executes emFluid, a polygon mesh torus that moves around and emits particles as well as velocity force from geometry, a XSI gravity force that points in positive y and an additional velocity force emitter.
In the left animation (an OGL screen capture of XSI's front view) you can see the torus, the particles (as blue points), the gravity force object (the green line in the middle) and the velocity force emitter (the thing at the bottom that moves around in a strange way).
The right animation is the final rendering and compositing. The particles' color and size is animated over their age percentage and they were rendered using the particle billboard shader and the gradient shader. Finally, some post motion blur was added with the software "RealSmart Motion Blur", a tool that truly does an excellent job and that can be used in XSI's Fx Tree.
The animation on the right is an Open GL capture (front view and camera view) from the XSI scene "inAction02_FireWithObstacles.scn" which is included in the demo version and full version.
The fluid setup contains a fluid box, a particle emitter, a velocity force emitter that makes the particles go upwards and the XSI obstacles.
The animation below has several XSI obstacles and a few velocity force emitters. You can take a look at the scene: it is included in the ZIP file with the addional XSI scenes that can be downloaded above.
This kind of effect is rather easy to achieve: you simply create a whole bunch of particles and then add a big amount of velocity force to the fluid box during a few frames only.
Considering the fact the animation on the right was rendered using the simple particle billboard shader the look is not to bad, but with a good volume shader (e.g. BA Shader from Holger Schönberger) you will surely get much better results.
"inAction14_Filaments.scn" (the XSI scene file) is included in the ZIP file that can be downloaded above.
Please note that the particle emitter emits 200.000 particles at frame 1. This means, that some disc space is required for the ptp files.
emFluid only works with 32 bit versions of XSI.
If you want to use emFluid with a 64 bit version of XSI, then please check the emFluid2 page.