James Mahoney


3D Voxel Smoke


  • Bifrost Aero

  • 3D Voxel simulations

  • Emitters

  • Solvers

  • Motion Fields


Part A - Smoking Disk

  1. Create a new empty scene and give it a good name, set your shelf to “FX”

  2. Add a physical sky and bump up the intensity to 3 or 4

  3. Add a ground plane and give it an aiStandardSurface shader, name it “groundMat”

  4. Make sure the playhead is at frame 1 and that right click on the timeline and make sure that the Playback Speed is set to one of the “Play Every Frame” options.

  5. Create a polygonal (flattened sphere)

  6. Select the sphere and  click on Bifrost Fluids>Aero

  7. This sets up a gaseous simulation and sets the selected object as the emitter (not too different than nParticles or bifrost liquids but there’s now a bifrostAero simulator instead of a nucleus or bifrostLiquid

  8. bifrostAero has a child node called aero1 select that and in the outliner find “aeroShape1” select that and in the attributes you can increase the Particle Display>Point Size to about 2 or something so you can see it better

  9. With the timeline at frame zero, select the disk and find it’s transform node in the attribute editor. Right click on the word “transform” and select “Set Key” to make a keyframe on frame 1 at this position.

  10. Click on the timeline at around 13 and move the disk somewhere and set another keyframe using the same method.

  11. Move and set a couple more keyframes at 18 and 24 or thereabouts.

  12. Run the simulation and stop it when you have something nice

  13. Select “aero1” in the Outliner and find its shape node in the attribute editor

  14. You can switch at anytime between Particles and Voxels or both (Voxels looks closer to how it renders

  15. and make a render

Screen Shot 2019-02-05 at 9.01.29 AM.png

Part B - Adding Vector Field

  1. Select the disk and right click on your keyframes and choose “Delete” to clear them

  2. Scale the disk down a bit

  3. Select the disk object and then select the bifrostAero node in the outliner

  4. Add a vector field by using Bifrost Fluids>Add>Motion Field

  5. With the motion field selected increase the Magnitude between about 20 and 40

  6. Uncheck “Direction” and “Noise”

  7. Turn on “Turbulence”

  8. In the Turbulence and Noise” rollout set Turbulence magnitude to about 10 or so.

  9. In the bifrostAeroProperties node you’ll find under Resolution the most important parameter which is “Master Voxel Size” make this small for a higher resolution simulation. (but it takes longer)  0.3 is a good compromise in most cases.

  10. Open the Hypershade and you will see that the simulator automatically generated a new material (like it did with the fluid simulation) right click on this and choose “Graph Network” to see the shader in the workspace

  11. This shader is an aiStandardVolume shader

  12. Select the shader node to see its parameter settings

  13. Use Scatter>Color to set the color of your smoke

  14. Use Voluem>Density to change how dense the smoke is

  15. Make a render and save it.

Part C - Adding a collider

  1. Create a sphere or other polygonal object and reduce its geometry if needed

  2. One idea is to use a sphere and delete the bottom ¼ and invert the surface normals [alternatively make it thick and give it a clear glass material]

    1. To easily invert the normals select the object in object mode and use Mesh Display>Normals>Reverse

  3. Position it directly above your emitter, not too far, to let the smoke enter the mesh

  4. You might want to turn down your turbulence for this a bit

  5. And you may need to bump up your Master Voxel Size back to 0.5

  6. Tricky to get a good render but keep tweaking until you get something interesting and save the render

Screen Shot 2019-02-05 at 9.01.36 AM.png

Part D - Extra fun (optional)

  1. Rework part A but this time add a motion field with some turbulence and see how that looks