> For the complete documentation index, see [llms.txt](https://docs.procedural-anatomy.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.procedural-anatomy.com/setup/simulation-2.0.md).

# Simulation 2.0

<figure><img src="/files/KouMTNz0rUm6ReJ04fFK" alt=""><figcaption></figcaption></figure>

Welcome to the **Anatomy Rig 2.0** simulation workflow tutorial. The simulation rig has undergone significant updates, deprecating several older nodes (such as `animskel_to_skel` and `tissue`) and introducing new tools like `anatomy_rig_muscle 2.0` which contains the **PA solver**. The streamlined workflow now exclusively relies on simulating muscles and skin, with the fascia pass being processed internally alongside the skin.

Follow these steps to efficiently set up, simulate, and cache your character animations.

### Step 1: Setting Up the `anatomy_rig_load` Node

The `anatomy_rig_load` node is where you initialize your character and animation data.

**Loading Your Character:**

* First, set the character file path on the node (the bgeo character file).
* When you load a file, it will not necessarily display right away; you must press the \
  **Set Character Index** button to view the current character.
* If needed, press the reload character button.

**Loading Your Animation:**

* Set your animation file path in a similar fashion to the character file path.
* If you are simulating multiple characters using the same animation file name, use the expression **`` `chs("character_name")` ``** (ensuring you use backticks) in the animation path.
* Click the **Set Animation Index** button to load the animation, and press reload if necessary.

<figure><img src="/files/Iw9KlTaNdnx7Md5suFJS" alt="Lower and underlined in red we have the animation expression.  You can see the &#x22;File&#x22; path above has resolved with the name of the character." width="375"><figcaption><p>Lower and underlined in red we have the animation expression.  <br>You can see the "File" path above has resolved with the name of the character.</p></figcaption></figure>

**Synchronizing the Timeline:**

* Since each animation file has its own frame range, toggle on the **Set Range With Current Index** parameter. This automatically adjusts the Houdini timeline to match your specific animation frame range.
* You can also adjust the **Flex Frame Offset** parameter to offset the animation at different frame rates.

*Note on List Mode:* If you are working with many different characters, you can use the node's list mode buttons to quickly switch between characters and easily enable or disable their caches.

### Step 2: Configuring the Simulation

The `anatomy_rig_muscle` and `anatomy_rig_skin` nodes are designed to solve the simulation internally with as little manual adjustment as possible.

**Substeps and Constraints:**

* **Substeps:** It is recommended to leave solver substeps at **1** (meaning the animation increments once per frame). Using fewer substeps helps the simulation retain energy. Higher substeps (2, 3, etc.) will subdivide the simulation between frames; this tends to dampen the motion but may result in better deformation.
* **Constraint Iterations:** The constraints are separated to simplify the solver's internals. **Constraint iterations 1** control the motion of the simulation, while **Constraint iterations 2** handle the collisions. If you increase your substeps, you can slightly lower your constraint iterations.

### Step 3: Caching and Output

Caching efficiently is a major part of this updated workflow. The bgeo caches generated are optimized and ready for use.

**Cache Management Toggles:**

* You can strategically toggle simulations off to speed up caching. For instance, turn the muscle simulation off when you only need to re-cache the skin, or turn the skin simulation off if you are only reviewing muscles.
* On the cache nodes, setting **Load Cache** to **Automatic** will attempt to load an existing cache; if it cannot load one, it will automatically start a new simulation. You can also force this setting on or off.

**Executing the Simulation Cache:**\
To perform the initial cache of your setup, you will use the `anatomy_rig_output` node:

1. Select the **`anatomy_rig_output`** node.
2. Locate the nearby TOP Net node named **`AUTOMATE`**.
3. Ensure the **TOP Network** parameter on the `anatomy_rig_output` node is set to the path of that `AUTOMATE` node.
4. Press the **Save All Simulations** button to execute the caching process.

**Locating Your Caches:**\
By default, the cache paths are defined in the **Cache Management** tab of the `anatomy_rig_load` node and follow this structure:\
`$HIP / sim / character / Animation / Version / muscle_cache / data` (and identically for `/skin_cache/`).\
To easily navigate here, press the **Open Folder** button on the `anatomy_rig_skin` node, which opens the version folder containing both your skin and muscle caches.

### Future Updates to Look Out For

While Anatomy Rig 2.0 has introduced initial Alembic export capabilities, future updates will bring expanded Alembic support, exporting to other software, and machine learning support.

### Simulation Rig Updates

* Deprecated several core and anatomy\_rig nodes: animskel\_to\_skel, animate\_muscle\_lines, skel\_to\_muscle, tissue\_collision\_setup, and tissue.
* Added anatomy\_rig\_muscle 2.0, pa\_solver, and anatomy\_fetch 2.0 TOP node.
* Added character visualization buttons to anatomy\_rig\_load.
* anatomy\_rig\_output 2.0 now limited to 3 outputs.
* Introduced initial Alembic export support.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.procedural-anatomy.com/setup/simulation-2.0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
