---
title: "Interactions Between Simulators"
canonical: "https://documentation.chaos.com/space/PHX4MAX/124659706/Interactions%20Between%20Simulators"
format: markdown
---
## **Overlapping Simulators**

---

<span style="color: #000000">In Phoenix, a Simulator sees other Simulators in the scene just like any other deforming mesh geometry. The loaded cache data into a Simulator represents the Isosurface of the Simulator that the other Simulators see. Simulators are Solid by default, and this way they are obstacles to other Simulators which intersect them, but you can also make a Simulator </span><span style="color: #000000">[non-Solid](https://docs-chaos.atlassian.net/wiki/spaces/PHX4MAX/pages/124528638)</span><span style="color: #000000">. You can easily preview the interaction surface of each Simulator in the viewport if you enable its Show Mesh option from the </span><span style="color: #000000">[Preview rollout](https://docs-chaos.atlassian.net/wiki/spaces/PHX4MAX/pages/125085326)</span><span style="color: #000000"> - this will be the shape that other simulators will interact with. Note that this applies even if the Simulator would render in any other mode, not just Isosurface or Mesh.</span>

<span style="color: #000000">A Simulator can also be an emitter in another simulation. If you pick it into a Source, you can make it emit fluid in any Emit Mode. This way you can have a liquid simulation in one Simulator, and then set it on fire in a second Simulator.</span>

<span style="color: #000000">A Simulator can also be used by a </span><span style="color: #000000">[Body Force ](https://docs-chaos.atlassian.net/wiki/spaces/PHX4MAX/pages/124528071)</span><span style="color: #000000">to attract or repel the fluid of another simulator, and also can be excluded or included from other Simulators' </span><span style="color: #000000">[Interaction list](https://docs-chaos.atlassian.net/wiki/spaces/PHX4MAX/pages/124530392)</span><span style="color: #000000">. Note that by default all Simulators are included in one another's simulations, just like any other geometry in the scene, so if you don't want a Simulator to affect another one, you have to exclude it explicitly.</span>

## **Simulators interacting as obstacles**

---

<span style="color: #000000">When you simulate overlapping Simulators, you would often need to run the Simulators in a certain order. For example, you could have two Liquid Simulators, where "</span><span style="color: #ff0000">Sim1</span><span style="color: #000000">" would be a heavy liquid that would fill the bottom of a container first, and then "</span><span style="color: #0000ff">Sim2</span><span style="color: #000000">" would be a lighter liquid that will not blend with the liquid from </span><span style="color: #ff0000">Sim1</span><span style="color: #000000">, but instead will spill over it and float on top of it. In this case you need to run </span><span style="color: #ff0000">Sim1</span><span style="color: #000000"> first, and then when you run </span><span style="color: #0000ff">Sim2</span><span style="color: #000000"> it would by default see the liquid of </span><span style="color: #ff0000">Sim1</span><span style="color: #000000"> as an obstacle. This way the new liquid would spill over </span><span style="color: #ff0000">Sim1</span><span style="color: #000000">'s Isosurface. Once you already have a cached simulation for </span><span style="color: #0000ff">Sim2</span><span style="color: #000000">, you must consider that </span><span style="color: #ff0000">Sim1</span><span style="color: #000000"> now would also see the liquid from </span><span style="color: #0000ff">Sim2</span><span style="color: #000000"> as a Solid obstacle by default, so if you run </span><span style="color: #ff0000">Sim1</span><span style="color: #000000"> for a second time, without changing any settings, it would produce a different simulation from the first time it was run. In order to avoid this, you have to make </span><span style="color: #ff0000">Sim1</span><span style="color: #000000"> ignore </span><span style="color: #0000ff">Sim2</span><span style="color: #000000">'s Isosurface - so you could exclude </span><span style="color: #0000ff">Sim2</span><span style="color: #000000"> from the </span><span style="color: #000000">[Interaction rollout](https://docs-chaos.atlassian.net/wiki/spaces/PHX3MAYA4EDIT/pages/117277493)</span><span style="color: #000000"> of </span><span style="color: #ff0000">Sim1</span><span style="color: #000000">. So then, when you want to change how </span><span style="color: #ff0000">Sim1</span><span style="color: #000000"> behaves, you would need to first run </span><span style="color: #ff0000">Sim1</span><span style="color: #000000">  and then also run </span><span style="color: #0000ff">Sim2</span><span style="color: #000000"> after that, so </span><span style="color: #0000ff">Sim2</span><span style="color: #000000"> would interact with the new Isosurface of </span><span style="color: #ff0000">Sim1</span><span style="color: #000000">.</span>

<span style="color: #000000">When you exclude simulators from interaction, </span><span style="color: #252c2f">you can use either Exclude or Include mode under the Interaction rollout, in case you get circular reference errors. If you need Include mode, you have to include all sources, all of their emitters too, all obstacles, and all forces affecting a simulator. Also note that if you have two interacting simulators, each with its own source, you might also need to exclude the source for </span><span style="color: #ff0000">Sim1</span><span style="color: #000000"> </span><span style="color: #252c2f">from </span><span style="color: #0000ff">Sim2 </span><span style="color: #252c2f">and vice versa. Otherwise, if the emitters from a source intersect both simulators, they would always emit fluid when you simulate any of the two simulators, and this might not be a desired effect.</span>

## **Using one Simulator as an Emitter in another Simulator**

---

<span style="color: #000000">The same way that one </span><span style="color: #000000">[Simulator ](https://docs-chaos.atlassian.net/wiki/spaces/PHX4MAX/pages/125278364)</span><span style="color: #000000">can be used as a plain obstacle to another, it can also be used to emit fluid from its Isosurface into a different Simulator. You just need to add a </span><span style="color: #000000">[Source ](https://docs-chaos.atlassian.net/wiki/spaces/PHX4MAX/pages/124528247)</span><span style="color: #000000">and select the first Simulator in it. This way, your first Simulator can run a Liquid simulation, and then be used as an emitter in a Fire simulation, so the liquid mesh would ignite in the second Fire/Smoke Simulator.</span>

## > Macro (anchor)

**Transferring fluid between Simulators using a Cascade Connection**

---

<span style="color: #000000">A more advanced example of interaction between two simulators would be a cascade connection, where the fluid flows from one simulator into another. You can use cascade setups for simulations with irregular shapes where using just one </span><span style="color: #000000">[Simulator ](https://docs-chaos.atlassian.net/wiki/spaces/PHX4MAX/pages/125278364)</span><span style="color: #000000">grid would leave a lot of empty space and consume an unneeded amount of RAM and processing power. Additionally, if the simulation can be broken into pieces that should run one after another, then the cascade simulation would also be a good choice - this way you can iterate on the first Simulator until it's right, then iterate on the second Simulator for the continuation of the effect, and so on.</span>

<span style="color: #000000">Cascade simulations are handled differently for Fire/Smoke Simulators and Liquid Simulators:</span>

- <span style="color: #000000">A Liquid Simulator can be connected in a cascade setup to the previous Liquid Simulator in the sequence using the Cascade Simulator connector in the </span><span style="color: #000000">[Grid rollout](https://docs-chaos.atlassian.net/wiki/spaces/PHX4MAX/pages/124365101)</span><span style="color: #000000">. The liquid flows from the Cascade Simulator to the Simulator that points to it. The Simulators must be run in this order as well. The only requirement for this setup is that the connecting simulators overlap. They can be oriented in any way and can have different resolutions. Many Simulators can be connected in a cascade chain, and many simulators can get fluid flown in from the same Cascade Simulator. Note that when rendering, each simulator will produce its own Mesh or Isosurface, so when using a refractive material, there could be visible seams between the different Simulators.</span>
- Fire/Smoke Simulators require more manual work because they don't simply have fluid Isosurfaces, but their volumes are irregular and have varying density. A Source can be used to make the first Fire/Smoke Simulator an emitter for the second one. The Source would emit in Volume Brush mode the kind of grid channels simulated by the first Simulator from the shape of the first Simulator's Isosurface. However, simply emitting from the Source would create constant density inside the volume, and would ignore the internal detail and density of the emitter Simulator. This can be solved by modulating the emission of each Source channel by a separate Grid Texture, each Grid Texture reading the corresponding channel from the emitter Simulator. This would imprint the exact fluid channels of the emitter Simulator into the destination Simulator.