Jet Fluids

JetFluids is a Cinema 4D Plugin based on the Jet Framework

An affordable Fluid Simulation solution for C4D users on tight budget.

Great place to start experimenting with some fluid simulation without breaking the bank.

100% CPU based, so will run on any hardware. No fancy GPU required.

Available for Cinema 4D R20, R21, S22, R23, S24, R25, S26 and 2023 on both OSX and Windows.

And also available for Cinema 4D 2024, on Windows only.

Note that this plugin is still a Work In Progress and is not yet complete.

If you want better collision detection, or faster simulation times, then we suggest taking a look at X-Particles or RealFlow.

JetFluids is Pay What You Want, i.e. free. We appreciate a donation if you find it useful. Lets us know it is worth updating for future versions of C4D.


Renders by Zack Williams @ZWMultimedia


Featured Artists


Zack Williams @ZWMultimedia


Features

  • Various Fluid Solvers
    • LevelSet Liquid
      • Grid based solver that defines surface of the liquid using signed-distance field
      • Apply force to the fluids using Fields
      • Apply force using objects in your scene via an emitter. Just enable the 'Force Only' checkbox on the emitter.
      • Simulate viscous fluids.
      • Outputs a mesh by default.
    • Smoke
      • Grid based solver.
      • Outputs OpenVDB files by default.
      • When cached externally the vdb files will contain 'density' and 'temperature' grids. If cached internally it will only have a 'density' grid.
      • Apply force to the fluids using Fields
    • FLIP - Fluid Implicit Particle
      • Grid based simulation that outputs particle points by default.
      • Generate Thinking Particles.
      • Mesh using the Mesher Object.
    • PIC - Particle In Cell
      • Grid based simulation that outputs particle points by default.
      • Generate Thinking Particles.
      • Mesh using the Mesher Object.
    • APIC - Affine Particle In Cell
      • Grid based simulation that outputs particle points by default.
      • Generate Thinking Particles.
      • Mesh using the Mesher Object.
    • SPH - Smoothed Particle Hydrodynamics
      • Particle simulation that outputs particle points by default.
      • Can be placed anywhere in your scene and is not restricted to a bounding box.
      • Generate Thinking Particles.
    • PCI SPH - Predictive Corrective Incompressible Smoothed Particle Hydrodynamics
      • Particle simulation that outputs particle points by default.
      • Can be placed anywhere in your scene and is not restricted to a bounding box.
      • Generate Thinking Particles.
  • Emitter Tag
    • Animate emitter direction and velocity in Single Shot, Pulse or Continous mode.
    • Emitters can inherit velocity from moving objects, such as rigid bodies or animation nulls and objects.
    • Set an initial velocity for the emitted fluid.
  • Collider Tag
    • Objects can be static or Dynamic.
    • Apply friction to the fluid.
    • Invert the normals so that fluid stays within the object itself. Such as inside of a sphere, cube etc...
    • Collider Shape Types
      • Cube
      • Sphere
      • Cylinder
      • Auto - Will create a cube, sphere or cylinder if the object is one of those types, otherwise will generate a mesh. Note that Mesh based objects are not currently supported for dynamic colliders.
    • Add a C4D RigidBody tag to an object, along with a Jet Fluids Collider Tag, and drop objects into your fluids. Just make sure you set the Jet Fluids Collider to be Dynamic.
  • Scene Object
    • Buttons to easily add solvers to your scene.
    • Helper buttons to the scene object to add sample fluid emitters to the scene.
      • Quarter Fluid
      • One Dam Break
      • Two Dam Breaks
      • One Pouring Liquid
      • Two Pouring Liquids
      • Jet Framework Test Scene
      • Sphere
    • Buttons to hide/show emitters and colliders used in your scene.
  • Mesher Object
    • Place a FLIP, APIC or PIC solver underneath the mesher to generate a mesh. These solvers must be in Particle mode, set from the Display Tab.
    • Various meshing algorithms to help your sim look more fluid like.
      • Spherical
      • SPH
      • Zhu Bridson
      • Anisotropic
    • By default it will use the Solvers cell size. You can override this to set a custom cell size to get finer detail.
    • You can also use the Mesher object with regular C4D polygon objects to get an interesting meshed edges look.
    • The mesher objects settings are also available from with the particle based solvers for caching out Mesh objects.
  • Cache simulations internally in the C4D file or externally to disk.
    • Cach each frame externally as a C4D file for meshes and particle simulations.
    • Cach each frame externally as an OpenVDB file for volumes and density grids.
  • Create Thinking Particles
    • Particle Position
    • Particle Velocity
    • Particle Color
      • Thinking Particles colors can be previewed in the viewport using either position based or velocity based coloring, driven by a gradient.
    • Easy access to change the Thinking Particles group viewport preview type
      • None
      • Flakes
      • Dots
      • Ticks
      • Drops
      • Box
      • Global
  • Each solver can set 'Subframe Steps' from the Advanced tab
    • Fixed: Set the fixed number of time steps to take between each frame.
    • Adaptive mode will let the solver use its own algorithm to determine how many sub steps to take if it has one, otherwise it will default to the fixed time steps set. For grid based solvers this is based on the maximum velocity of the fluid in the volume, for SPH it uses the maximum velocity of the particles. Using Adaptive could lead to much longer simulation times, but would be more accurate since it calculates more steps to ensure collision of fast moving fluids is correctly calculated.
  • Helper buttons to setup different rendering options
    • Setup a MultiInstance object that is driven directly by the data from the solver.
    • Setup a MoGraph Cloner object that is driven by the thinking particles group generated by the solver.
    • Setup a Hair Rendering setup that uses a Thinking Particles Geometry object driven by the thinking particles group generated by the solver.
  • View fake particle color previews live in the viewport with position based and velocity based coloring, driven by a gradient.
  • Play back cached simulations interactively by scrubbing the timeline in the viewport.
  • Multithreaded using Intel TBB for improved performance on Intel CPUs.

Getting Started Workflow

  1. From the main menu choose Plugins4D->JetFluids->New Test Scene.
  2. Expand the Scene Object in the Object Manager.
  3. Select the "LevelSet Solver".
  4. Switch to the Object Tab.
  5. Change the "Cell Size" to 8. A lower number, IE the default of 4, produces a finer detailed output, but is slower when just starting out.
  6. Switch to the Cache Tab.
  7. Press Start Caching.
  8. The simulation will now start caching and you will see the live feedback in the viewport.
  9. When the caching has finished you can play your scene to see the end result.
  10. Saving this scene will include all the cache data in the C4D file because by default the Cache Mode is set to Internal.

Caching Externaly

  1. Select the "LevelSet Solver".
  2. Switch to the Cache Tab.
  3. Set the Cache Mode to "External".
  4. In Cache Filename give your output files a name such as "output". When the files are saved they will be saved as output_00001.c4d, output_00002.c4d etc...
  5. If you want to export VDB files instead then you can switch to the "Display" tab and change from Mesh type to Volume. Now the out files will be output_00001.vdb, output_00002.vdb etc...
  6. Save your C4D scene in a new folder on your computer. If your scene is not saved then it will not be able to write the files out to disk since it won't know where to put them.
  7. On the Cache tab press the "Start Caching" button.
  8. The simulation will begin caching and the files will be output to disk. You will see the live preview of the simulation in the viewport as it is caching. If for some reason you have stability issues you can uncheck the "Live Viewport Previews" checkbox.
  9. When the scene has finished caching you can press play in the timeline to see the end result. This will load in all the cached c4d, or vdb, frames of your simulation in real time as you scrub backwards and forwards in the timeline.

Videos

Please be aware that the interface changed during the plugins development, this is why the list is in reverse order since it starts with the latest releases first.


Version History

Version 0.25

  • An Advanced tab has been added to every solver to let you set the number of Subframe timesteps. Increasing this will slow down the simulation time but will improve accuracy for collision detection, particularly with polygonal models. There are two modes, Fixed and Adaptive. The Fixed mode will always do the number of Subframe Steps set. Adaptive mode will let the solver use it's own algorithm to determine how many sub steps to take if it has one, otherwise it will default to the fixed time steps set. For grid based solvers this is based on the maximum velocity of the fluid in the volume, for SPH it uses the maximum velocity of the particles. Using Adaptive could lead to much longer simulation times, but would be more accurate since it calculates more steps to ensure collision of fast moving fluids is correctly calculated.
  • Support for Field based forces has also been added to the Smoke solver. This can be found on the Forces tab

Version 0.24

  • Fix for the Smoke Solvers temperature diffusion coefficient. Try using a low value like 0.1 and then render the resulting openvdb temperature grid in the emission channel of a Redshift BlackBody volume material to see the effect of the temperature grid diffusing out.
  • Added an Advection Mode to change between Cubic and Linear

Version 0.23

  • JetFluid now evaluates Expressions. This allows you to control Emitters and Colliders using other plugins, python or Xpresso.

Version 0.22

  • Fix to respect the Enabled checkbox on a Collider Tag.

Version 0.21

  • Updates for S26 support

Version 0.20

  • Removed the installation of the general help files from the JetFluids installers.
  • Some work-in-progress documentation can now be found online here.
  • Please refer to the online videos for full information on all the features and how to use the plugin.

Version 0.19

  • Stability fix related to using the 'Display->Color Mode->Velocity' option.

Version 0.18

  • Fix for crashes that occured when using a Polygon Object as a Collider.

Version 0.17

  • Fix for RigidBody interaction with fluids.

Version 0.16

  • Fix for viewing the mesh in the viewport while caching.
  • Fix for allowing you to scrub the timeline without having the moving colliders directly affect the simulation while caching.
  • Added a Force Factor slider to the colliders to allow you to reduce, or increase, the amount of force the moving or rotating collider has on the fluid.

Version 0.15

  • The Mesher Object can now be used to mesh wire frames of child polygonal objects. This is being done just as an experiment to see how the mesher technology can be used in other creative ways.
    • It currently only uses the first child object, so if you wish to use multiple objects then you should place them under a Connect object. If you are using other generators from C4D, such as cloner, then this should also be placed under a Connect object before putting in under the Mesher Object.
    • The Mesher Object will interpolate voxel data across the edges, which the mesher then uses to create the final mesh.
    • Note that the larger your object is the longer it will take to mesh, since it will have more voxel cells. So if you are going to increase the size of your object then consider increasing the cell size in the mesher first!
  • Fix for collider velocity calculations. Colliders will now correctly push particles as they move and rotate.
  • Fix for Thinking Particle velocities. They are also now correctly being calculated.
  • Mesher Object can now be used on SPH and PCI SPH solvers when they are in Particle mode.
  • SPH and PCI SPH have also had a fix for when set to Mesh Display type, however this will only mesh within the bounding box currently. Use the Mesher Object to mesh outside the bounding box simulations.
  • When using the Mesh Display Type your files sizes will now be smaller.

Version 0.14

  • New Mesher Object. Place a FLIP, APIC or PIC solver, that has its Display Type set to Particles, underneath the mesher to produce a polygonal mesh.
  • When FLIP, APIC or PIC and solvers have their Display Type set to Mesh they will now produce a mesh. There is a Meshing group on the Display Tab where you can choose your meshing settings.
  • Both the Mesher Object and the Meshing group have the same settings available. Choose from a Spherical, SPH, Zhu Bridson and Anisotropic methods for the mesh creation type and have various settings.
  • The new Mesher Object is initially set to a low Kernel Radius by default, increase this to get the look you are after.
  • If your solver is under a mesher when you start caching, it will disable the mesher to help speed up the simulation time.
  • The Meshers also have a "Override Cell Size" option. When this is disabled it will use the cell size of the solver when creating its voxel grid internally. If you want to have more detail in your mesh you can enable this option and specify a custom cell size instead, the default being 4.

This video shows creating a simple fluid simulation and then using the new Mesher Object to create a mesh from the particles.

Version 0.13

  • Added velocity to the thinking particles.
  • Added a color mode to let you color the particles based on the velocity or the position.
  • Particle colors are now set on the thinking particles, which can then be rendered using a MoGraph Cloner approach.
  • Added thinking particle view type drop down to the Display Tab. The default is now Flakes.
  • Thinking particles support has been added for the externally cached particle simulations.
  • New button on the Display Tab to create a Hair setup to render particles using a Thinking Particles group.
  • New button on the Display Tab to create a Mograph Cloner setup to render particles using a Thinking Particles group.
  • When you now enable Thinking Particles it will reset the scene to frame 0. This is to ensure everything updates correctly.

Version 0.12

  • More stability fixes related to viewport display updates while simulating is in progress. Due to these stability changes the viewport may not update in real time if the simulation is taking up all the CPU resources. But you can still drag the timeline slider and scrub it back and forth to see the resulting simulation.
  • Additional parameters for SPH and PCISPH, including AirDrag. Further options can be found under an Advanced tab, but they should not be used. They are there for testing purposes and can cause stability issues if set incorrectly.
  • Added Boundary options to the solvers. For the LevelSetLiquid solver you can disable sides of the bounding box and the fluid will flow out of this gap, meaning that it will no longer be calculated or visible. This allows you to create a flowing river simulation without the fluid hitting a wall and flowing back. For the particle solvers such as Flip, APic and Pic, the particles will now flow outside these bounds and can still collide with some objects. But the behaviour is currently unpredictable outside these bounds and in a future build an option, to remove these outside particles, will be added.
  • If you disable the solver by unticking the green tick, the resulting fluid will now be hidden.
  • When adding new solvers under a scene it will now check for any existing solvers under child objects, such as a Volume Builder, and copy its settings for the new solver added. Previous build did not check the children.
  • The last frame is now also simulated. So a sim from 0-90 will be 91 frames on disk.
  • The temperature grid was missing from Smoke vdb files. This has now been fixed. Note that the temperature grid is not available if you cache the simulation internally. Only external vdb files will contain the grid.
  • SPH and PCISPH solvers can now be moved away from the origin. Previously they only worked when at (0,0,0).

Version 0.11

  • Stability fixes related to viewport display updates while simulating is in progress.
  • If your solver is under a Volume Builder or Volume Mesher then these will both be disabled when simulating. You should only re-enable them after the simulation has finished caching. This gives all the CPU usage to the simulation code instead of requiring your machine to also process volumes. It also helps with stability during simulation.
  • Fake particles will now be hidden if your solver is underneath an active Volume Builder or Volume Mesher.
  • PCI SPH fake particle previews will now use a gradient that spans the full height of the simulation, adaptively adjusting the gradient as the sim gets larger or smaller.
  • Bounding box for SPH and PCI SPH is now hidden in the viewport if you turn it off.
  • Solvers have been removed from the JetFluids menu. To add them you should use the Scene Object.

Version 0.10

  • Fix for missing mesh shown in the viewport while simulating which resulted in a popping for meshes in the viewport.
  • Fix for crashing on shutdown while still caching the simulation.
  • Added helper buttons to the scene object to add sample fluid emitters to the scene.
    • Quarter Fluid
    • One Dam Break
    • Two Dam Breaks
    • One Pouring Liquid
    • Two Pouring Liquids
    • Jet Framework Test Scene
    • Sphere
  • Added buttons to the scene object to hide/show emitters and colliders.
  • Adding a new solver via the scene object will make it the same dimensions as the existing solver in the scene.
  • Fix for external rendering of particles in a Multi Instance using a Thinking Particle group.
  • New button called "Create Multi Instance For Rendering" can be found under the Display Tab. This will create a Multi Instance setup, ready for rendering particle based simulations.
  • You can now change the size of the particles on screen using the Viewport Particle Size slider on the Display Tab.
  • APIC Solver has been fixed. It was previously the same as the PIC Solver.
  • Added support for SPH and PCISPH solvers. Any scenes created with them may not simulate the same in future builds due to ongoing changes. These solvers are able to flow outside of the bounding box. If you turn off the bounding box, then add collider objects underneath your emitters, the fluid will flow over it. Adjust the "Target Spacing" to add more particles by decreasing by small (ie 0.1) increments.

Version 0.09

  • Added Fields support for the LevelSet Solver. This will apply force directly to the volume to move the liquid.
  • Added "Force Only" checkbox to emitter tags. This option can be used with the LevelSet Solver to apply a force inside a liquid, but not emit any new fluid to the volume.
  • Added Match TimeLine button to the Object Tab. When pressed it will set the Length to be the same as the current length of the timeline for your scene.
  • Added animatable Gravity checkbox to let you enable/disable the effect of gravity during siumulation.
  • Gravity direction can now also be animated.
  • Renamed "Allow timeline scrubbing" to "Live Viewport Previews".
  • Fixed the "Live Viewport Previews" so that they now correctly load and display the cached external frames, in the viewport, while simulating.
  • The "Live Viewport Previews" is now enabled by default. You can disable it if you find your system is having stability issues during simulation.
  • The external "Cache Filename" can now be a local name. When caching it will write out the files to the same location as your c4d.
  • Added multiple warning dialogs to help ensure the "Cache Filename" is correct before simulating. Checking that the folder exists, that is local or relative and that their is also an actual filename to the path and not just a folder name.

Version 0.08

  • This version contains a fix to Jet Fluids for S22 and R23 users. There was a bug introduced to S22 that stopped the OpenVDB volumes from updating in the Viewport. A work around for this has been added to Jet Fluids 0.08 so that if you cache a simulation as OpenVDB you will now be able to see it in your viewport again when you scrub your timeline.

Version 0.07

  • Stability fix: On some systems C4D was crashing during simulation caching. This has been fixed and simulations should now cache without any issues.
  • There were also some reports of issues that occurred when scrubbing the timeline while caching. Due to this the live timeline scrubbing update is now disabled by default. There is a checkbox on the Cache Tab to re-enable it if you still wish to scrub the timeline. The issue was only present on some machines.

Version 0.06 HOT FIX/UPDATE

  • Added Intel TBB support for OSX. It will now use all your cores for the simulation. Leading to faster simulation times.
  • There was no change to the Windows version so the version number has remained the same for both osx and windows.
  • Windows has included Intel TBB support since version 0.04.

Version 0.06

  • Emitters are now tags
  • Each of the Fluid Solvers is now a separate object
  • Saving of Internal OpenVDB cached sims now work correctly
  • You can now set the initial velocity of fluids in Emitters. Including taking into account a moving emitters current velocity.
  • Emitters and Colliders can now be used inside of Cloners, Array Objects and as Particles.
  • Improved support for animated moving or rotating Emitters and Colliders.
  • Emitters can now be Constant, One Shot or Pulse every X number of frames.
  • Emitters can now be turned on/off by Enabling or Disabling them. If One Shot is used then it will do a new shot every time you enable it.
  • Emitters and Colliders will now look to its parent object to find the scene it should be working in. Otherwise you can specifically set the Scene that you wish it to work with by linking it.
  • Colliders now have an option to flip the normals allow you to keep liquid inside of objects.

Version 0.05

  • Updated to the latest Jet Framework (16/9/2019)
  • Added ability to enable/disable emitters during playback and while animating.
  • You can now have multiple emitters in your scene and have them turning on and off individually.
  • Negated the OpenVDB volumes for GridLevelSet Liquids. Now you only need to place them under a VolumeMesher without having to adjust the slider.

Version 0.04

  • Windows Speed Up (10x faster using Intel TBB)
  • Added Grid - Smoke simulation option
  • Caching frames externally to disk
  • Now also creates OpenVDB volumes (and .vdb files when cached to disk).

Version 0.03

  • Fix for rendering when using a MoGraph Cloner in multi-instance mode.
  • Now supports correct rotation and scale of emitters and colliders.
  • You can now animate procedural shaped Emitters and Colliders.
  • Be aware that if you have animated emitters or colliders in your scene that you should not move them during caching otherwise it will pick up the change and alter the simulation.

Version 0.02

  • Fixed the issues where Hybrid methods required a Collider object. You no longer need to add a collider object to these simulations for it to work.
  • Fluid Display Tab now has an addition option Create Thinking Particles: When enabled it will create the thinking particles that can be used for rendering. When unchecked it deletes the thinking particles group.
  • You can now render Fluid particles by using a MoGraph cloner and multi-instances.
  • Fixed up issues related to rendering using Team Render.

Version 0.01

  • Initial Release

Solvers



Tags


Scene and Menu