# Welcome

Welcome to the Procedural Anatomy Documentation!

We’ve been working on something quite special and are grateful for your interest in it.  We look at this as an innovative way to bring your characters to life and enable rapid iteration.

## Prerequisites

An understanding of anatomy, placement of bones with accuracy defines how well your muscle simulation will work.

Understanding the following would help make your simulations better:

* KineFX, motion capture, full body IK
* Vellum Simulations
* TOPs

If you do not know these aspects of Houdini do not worry, Procedural Anatomy makes it easy to work with these systems and you will learn along the way!

## YouTube

Our longer form tutorials and breakdown videos will all appear on YouTube.  You can find a link to our channel bellow.

{% embed url="<https://www.youtube.com/@ProceduralAnatomy/playlists>" fullWidth="false" %}


# Installation

Install Procedural Anatomy

## Houdini Version

The Procedural Anatomy is compatible with Houdini versions:

* 21 - v0.9.27 now compatible.
* 20.5
* 20&#x20;


# HDA Installation

Install the toolset on a computer

Our toolset is integrated into a Houdini's Digital Asset.

If you're new to Houdini please visit the Houdini Digital Asset Installation process at the link bellow for more details.

{% embed url="<https://www.sidefx.com/docs/houdini/assets/install.html>" %}
Houdini Help
{% endembed %}

Here we will explain a quick process to begin testing&#x20;

* Manually install, from the top menus:
  1. Choose **Assets** -> **Install Asset Library...**
  2. Find the Procedural Anatomy HDA file on your computer.

<figure><img src="/files/9nq5EErICmorIfcOzcHK" alt=""><figcaption><p>Manually install an HDA file from the asset library.</p></figcaption></figure>

* Installing it in the correct folder
  * You can install HDAs to your Houdini preferences folder in a folder called **otls**.  Houdini will load the Procedural Anatomy toolset when it starts.
* Installing it with environment variables
  * Recommended for studios
  * Procedural Anatomy supports environment files and packages.


# License Installation

## Preferred Method

### Houdini ENV File&#x20;

The preferred method for installation is setting the PA\_LICENSE\_LOCATION environment variable.

Setting PA\_LICENSE\_LOCATION in your *houdini.env* file will look something like this:

`PA_LICENSE_LOCATION="D:/PA/2026-06-10_john-johnson_procedural-anatomy-commercial-license.json"`

[SideFX Docs - How to set environment variables](https://www.sidefx.com/docs/houdini/basics/config_env.html)

As a reminder:\
\- quote values that contain spaces.\
\- Set this before opening the toolset the first time.

## Legacy Method

<figure><img src="/files/YmMdd04DOgqsopvGhkw9" alt=""><figcaption><p>Opening a scene or creating a node will bring up the license install window.</p></figcaption></figure>

Upon placing a node in the Procedural Anatomy toolset a window will popup and you will be invited to drag & drop the license file into the window.

Once you drop the license file upon the window you will be able to access the toolset.


# Learn Houdini

This is for someone brand new to Houdini but is very focused on learning Procedural Anatomy.

Please keep the documentation for Houdini handy:

{% embed url="<https://www.sidefx.com/docs/houdini/>" fullWidth="false" %}

## Interface

Please review the Houdini interface.  The **3D scene view**, the **parameter editor**, and **network editor** are where we'll work the most.

{% embed url="<https://www.sidefx.com/docs/houdini/basics/ui.html>" %}

{% hint style="info" %}

### Hotkeys

* **Ctrl + Z** - Undo
* **Ctrl + Y** - Redo
  {% endhint %}

### Contexts and Tools

Procedural Anatomy utilizes Houdini's viewer states for manipulating the tool at various points.  This is not the same as [selection](https://www.sidefx.com/docs/houdini/basics/select.html), we have focused the tools to make them easier to use and deliver what is exactly needed in each stage.

#### Enter / Exit a tool

This is heavily used for setting up your character with Procedural Anatomy but is not implemented yet for animation transfer and the simulation rig.

Ensure your mouse is over the 3D viewport and press **enter** to start using a Procedural Anatomy tool.  The **esc** (escape) key quits the tool. &#x20;

{% hint style="info" %}

### Hotkeys

* **Enter** - Enter Tool
* **Escape** - Exit Tool
  {% endhint %}

Selection and visualization are two different things in Houdini, meaning you can view a node such as the **skeleton node** and modify the **model node** to see the down chain results of your edits.

### Manipulators

Manipulators are how you control or move objects in 3D space inside Houdini.  Procedural Anatomy is designed to work with an advanced feature of manipulators, enabling switching between handle alignments of object, component, and world spaces to make manipulation of the character in the viewport easier.

<figure><img src="/files/SBYsDTSoiAtZNn8AUgDm" alt=""><figcaption><p>Selecting the sphere enables the manipulator, right clicking takes you to the Align Handle Menu.</p></figcaption></figure>

{% hint style="info" %}

## Hotkeys

**Y** - Cycle Translate, Rotate, Scale
{% endhint %}

#### Change Manipulator Size&#x20;

From the top menu bar:

Edit > Preferences > Handles > Handles Scale ([link](https://www.youtube.com/watch?v=Zktk_edshB0\&ab_channel=Sachin3DVFX))


# Naming

## Naming Schema & Expressions

This node has many parameters which are provided to you for simplifying the workflow via expressions.  The schema the node uses by default takes the expressions and recreates paths the same as with the animation process.

This is designed to use the various parameters which automatically match expressions between the current character and animation so each character's animation is partitioned and easily searchable.

### Character Cache Naming

Cache Directory / Character Name / Version / Data

### Animation Cache Naming

Cache Directory / Character Name / Animation / Version / Data


# Build Your First Character

In the following pages we will show you how to build a character with Procedural Anatomy

### Create A Character Network From The Menu

<figure><img src="/files/4GJoIQhN93ClxdlEdmqO" alt="" width="563"><figcaption></figcaption></figure>

Recommendations

Set the $JOB variable for your scene:

{% embed url="<https://www.sidefx.com/docs/houdini/basics/project.html>" %}
Set the JOB variable for a scene.
{% endembed %}

I prefer setting the $JOB variable because it enables you to have a top level folder available that we can use for expressions, simplifying the way to access caches and models. &#x20;


# Character Model

How to prepare your model for Procedural Anatomy

## Posing

Procedural Anatomy is designed to be adaptable to your character however we do have recommendations for increasing anatomical accuracy and for what will work better in a simulation stage.

<figure><img src="/files/iakWRBj00iyS5SPIEBbx" alt=""><figcaption><p>Poses are flexible</p></figcaption></figure>

## Avoid Non Symmetrical Poses For Animation

While this system is capable of working with characters with non symmetrical poses, you will have problems in retargeting animation to them.  Advanced users may know how to mitigate these problems but if you are new to this the safe way is to make sure your characters body is or is almost symmetrical.

## A Relaxed Pose Is Best

A relaxed pose has a few criteria, arms out to the side at a 45° angle from the body,  feet shoulder width apart, no muscles should be flexing.  This pose gives ideal placements on the muscles versus the shape of the body.  A relaxed pose only has reference to the shape of your character's model and is not involved in animation.

## Rest Pose

Procedural Anatomy considers the characters pose at creation the rest pose.  A T-Pose is created for matching animation to the characters animation skeletons.  Poses are primarily only used with the animation skeletons.

***

## Importing your character into Houdini&#x20;

We will need to create a way to load your character from disc and assess what fixes we may need to do.

### Loading

<figure><img src="/files/HsZEBXTSsWu85LSXXsEE" alt=""><figcaption><p>Here we create a geometry node, subnet, then file node to organize our character.</p></figcaption></figure>

* Notice the large words in the top right corner, **Objects** then **Geometry**.  These are the different contexts that we will be moving between.  &#x20;
* We are creating a Procedural Anatomy character in the **Geometry** context.
  1. Create a Geometry node in the Object context.
  2. Create a Subnet node in the Geometry Context.
  3. Create a File node inside the Subnet node.
* It is recommended to leave the *Object* context *Geometry* node.

### Have you loaded Polygons?

Procedural Anatomy only works with polygonal characters.  Sometimes characters load with extra data that is not visible or Houdini doesn't handle and this may cause problems for the tool.  If you suspect this is the case try cleaning the geometry with a **polydoctor** node.

### Scale

Setting up scale correctly is quite important.  How big is your character?  What units are they in?  What units is Houdini in?  It can all be confusing.

<figure><img src="/files/r3r6QlnhGG0tMTgQOXkU" alt=""><figcaption><p>Different ways to load an FBX file.</p></figcaption></figure>

* In Houdini 1 unit by default is **1 meter**.
* Here we show the units a file node imports the character at is 100 units instead of 1 unit.  This typically happens with files from other software in Houdini because of how different programs work with scale. &#x20;
* In our example the FBX file is fixed with a **transform** node setting **uniform scale** to 0.01, you can alternatively use an FBX Character Import Node and these problems should be fixed for you.
* Any file type that loads a character as **polygons** should be able to be used.

{% hint style="warning" %}

## Character Imported is **too big** or **too small**

1. Put down a **transform** node after the **file** node
2. Set **Uniform Scale** to multiples of 10
   1. if too big try - 0.01
   2. if too small try - 10
      {% endhint %}

* It is recommended to have a realistic scale for your character to start with.  It is possible to make huge or tiny characters but it will be a bit more challenging and more settings will need to be changed.
* Procedural Anatomy expects characters between 1m to 2m but may still work outside this range.

### Orienting Your Character

<figure><img src="/files/pQc1jPPOdinQwvVYAnti" alt=""><figcaption><p>Your character should match the head being up in the same direction as the green arrow.</p></figcaption></figure>

* Procedural Anatomy is by default  <mark style="background-color:blue;">Z</mark> forward and <mark style="background-color:green;">Y</mark> up.
* Procedural Anatomy expects your character should point forward in the <mark style="background-color:blue;">Z</mark> direction and up in the <mark style="background-color:green;">Y</mark> direction.
* If you character is imported from another software such as Unreal pay close attention to this.


# Volume Meshes

## Watertight Mesh Node

This node is intended to create a shell around your character and only use the surface.&#x20;

You can use it to remesh as well

## Types of Meshes

<figure><img src="/files/5GbxVs1l7nQwIs9nZOCA" alt=""><figcaption></figcaption></figure>

Bellow is our YouTube tutorial series for setting up a volume mesh.

{% embed url="<https://youtu.be/Z3ZWMSRC4Sw>" %}


# Anatomy Placement

Accurate placement is essential to creating characters with Procedural Anatomy.

Now that we have created all of our nodes, lets ensure our placement of bones is accurate.

<figure><img src="/files/UoVIUGchNcuXZqfCDTVo" alt=""><figcaption><p>When placing the hands its always a good idea to rotate around the hand and see how the initial placement fits.</p></figcaption></figure>

<figure><img src="/files/GwwOqJFc5VZVqKmIIZna" alt=""><figcaption><p>Ensure the clavicle bones fit inside the mesh.</p></figcaption></figure>


# Applying Animation

Take animation and apply it to your characters.

## Overview

We've made strides to implement a system that transfers many types of animation to various sizes of characters.\
\
This is a work in progress since we will value your feedback on this system.

### Node Structure

This part of the toolset is designed to fit into Houdini's existing workflow with KineFX.  It enables users to take multiple characters and multiple animations, transfer the animation to each character with it prepared for simulation and save out files for each character and animation variation.

### TOPs Nodes (List Mode)

The Character and Animation tabs within the *anatomy\_anim\_import* node contain index parameters.  These enable you to choose your current character or animation to view through the toolset.  The default value are local variables **@char\_index** and **@anim\_index** respectively, which are used with TOPs and tell Houdini which character and animation to currently operate on.

You could delete the local variables if you want to control these values yourself but it is not the intended workflow.

### Timeline, Preroll and Your Animation Clip

Procedural Anatomy doesn’t expect a certain frame range but it is setup to use frames as the default way to count for simulations.&#x20;

The alternative, time ($T) should be acceptable but is untested at the moment.  In the future we would like to support both but frames will stay Procedural Anatomy’s preferred frame format for the foreseeable future.

### T-Pose / Rest Frames

These frames fall ahead of the start of your animation and define when the character will be at a rest state or t-pose state depending on the animation. &#x20;

For muscle simulation you always need to start from the rest state and for animation matching, this is also known as *Preroll*.  You can use as many or as few frames as you want, 30 frames at 24fps solves quickly to the first animation frame.  The reason we blend so much is to allow the muscles to loosen and then flex into position before the first few frames of animation.

Typically we start our animations re-mapped to the starting frame to frame 1001.  This is because we can then step backwards 30 frames (to frame 971 as our T-Pose/Rest frame) and not have negative numbers as if we started at frame 1 (to frame -29).  This is important because our system is not designed to support negative frame numbers.

Example:

* T-Pose Frame - 0971
* Animation Start Frame - 1001
* Animation End Frame - 1391 (the duration of the animation + the start frame)

{% hint style="info" %}

### Frame Ranges and Number Padding

We recommend using frame numbers with at least 4 digit number padding.  This means your animation should either have leading zeros or start after frame 1000.
{% endhint %}

### How T-Pose And Rest Pose Work&#x20;

T-Pose and Rest Pose are used at the same time but work in two different ways. &#x20;

* T-Pose is used in matching animation as a rest position or for retargeting animation. &#x20;
* Rest pose in procedural Anatomy is the pose from the Anatomy Output. &#x20;
* We smoothly interpolate from the Rest Pose at the T-Pose Frame (In retrospect this could have been named better) to the matched animation at the Animation Start Frame.

### Scaling Transforms

You want to make sure your transforms in Houdini are not scaled down. We've noticed the FBX tools in Houdini when transferring between Maya/Houdini tend to come in with the skeleton scaled to the correct scale but the transforms come in scaled from CM units to Meter units so they are all multiplied by (0.01).


# Animation Import

Import animation onto a character

Below are the initial steps to setting up a character with Procedural Anatomy

#### 1. Anatomy Anim Import (Input Mode)

<figure><img src="/files/tq5SLSdSVcnovqK7qCl4" alt="Creating an animation setup with input mode." width="375"><figcaption><p>Creating an animation setup with input mode.</p></figcaption></figure>

This mode is used to set up a single character and animation data.

**Setup Steps:**

As with the example above, create the node setup by selecting\
*Procedural Anatomy / Anatomy Create Animation.*<br>

1. **Character File:**  Select the file node ***character\_file*** and navigate to the bgeo file that you created in the muscle setup stage.&#x20;
   * Press **Reload Character** if characters animation skeleton does not appear.<br>
2. **Character Name:** If your characters name does not automatically load or you want to change it:
   * Toggle on **Character Name Override**
   * Set the name of the character that will be used to save the animation file.<br>
3. **T-Pose File:** Select the FBX Animation Import node named ***t-pose***, navigate to, then load the T-pose reference file.
4. **Animation File:** Select the FBX Animation Import node named ***animation***, navigate to, then load the animation file you would like to apply to the character.
   * Use **Reload Animation** if the input animation skeleton does not appear.<br>
5. **Animation Name:** If your animation name does not automatically load or you want to change it:
   * Toggle on **Character Name Override**
   * Set the name of the animation that will be used to save the animation file.<br>
6. **Mapping Attributes:** Select the appropriate mapping based on your character's rig structure and the animation skeleton names.
   * If you do not know which one to use, set the display flag to ***anatomy\_anim\_match\_pose*** and view the results.  The characters pose will shift to match the t-pose. <br>
7. **Naming Overrides:** Utilize the Character Name Override or Animation Name Override parameters if you need to adjust how the asset names are processed or displayed.
8. **Frame Range:** Define the T-pose start and end frames (or use **Set Frame Range**) to control the simulation boundaries.

{% hint style="warning" %}
To set the **animation start frame**

* Navigate to the timing tab of the FBX Animation Import node named ***animation*** and set the desired animation playback start frame (default is often 1000).
  {% endhint %}

#### 2. Anatomy Anim Import (List Mode)

<figure><img src="/files/O72S8hmfIlrMyWaup8ob" alt="" width="375"><figcaption><p>Creating an animation setup with list mode.</p></figcaption></figure>

This mode manages multiple characters and animations within a single setup, allowing for batch processing.  \
\
Create the node setup by selecting:\
*Procedural Anatomy / Anatomy Create Animation (list).*

**Setup Steps:**

1. **Character Setup:** Load character assets into the list structure.  This works the same as setting the character based on input, however you must&#x20;
   * Provide the character file to the parameter in the character list
   * Provide the character name to its parameter
   * Use **Reload Geometry** if necessary.
2. **Animation Setup:** For each animation instance in the list:
   * Load the file or set the frame for the T-pose and frame range parameters, similar to Input Mode.
3. **List Control:** Use the toggle switches to enable or disable specific character/animation caches for testing or selective processing. Buttons are available to&#x20;
   * Enable / Disable All, or Toggle Caching status.
   * Collapse all list entries.  This is meant for scrolling through larger lists and keeping a clean UI.

**Data Management (Import / Export)**\
This section handles saving and loading configurations for batch use.  This will export the data set you've created in the UI to a file and enable you to load or modify paths as a CSV file in an external editor.

<figure><img src="/files/QCaFpJqDTLUlk2zyiPg2" alt="" width="318"><figcaption><p>The import/export parameters.</p></figcaption></figure>

* **Exporting Settings:** Templates are available for both characters and animations. You can export the current UI configuration as a CSV file or directly to a spreadsheet format.

  This allows you to modify character lists, animation names, and settings externally.
* **Importing Settings:** Use the imported CSV/spreadsheet data to re-populate and update the toolset's parameters in the user interface.

#### 3. Pose Verification and Refinement

These nodes ensure that the source pose matches the target rig requirements before simulation.

* **Match Pose / FBIK:** These nodes operate by connecting with other Houdini nodes; they do not contain internal settings but facilitate data flow between systems.
* **Pose Matching:** Use the **Anim Match Pose** node to verify if the source and target poses are congruent based on bone angles. If a mismatch occurs, manual adjustments may be required.
* **Point Mapping:** The **Map Points** node helps visualize connections and identify discrepancies between different nodes based on shared naming conventions.
* **Pose Refinement (Rig Match Pose):** To make necessary pose changes:
  1. Place the **Rig Match Pose** node after the Anatomy and Match Pose nodes.
  2. Disable "Enable Match Bound."
  3. Set a rest frame that aligns with the desired output.
  4. To apply changes, disable the source data flow and enable the target data flow within the node settings.

#### 4. Skel Solve

This node accepts the&#x20;

* Character skeleton as input 1&#x20;
* The animation applied to the skeleton as input  2.


# Animation Export

Export animation based on a characters anatomical skeleton.

## Anatomy Animation Export Guide

This guide details the setup and usage of the *Anatomy Anim Export* node. This toolset generates motion clips from your character rigging data, allowing you to load the motion clips into subsequent muscle tools for simulation.

***

### Initial Setup & Visualization

Before exporting, ensure the network is correctly configured:

* **Setting the TOP Network Parameter:** In **List Mode**, the `Anatomy Anim Export` node requires a specific connection to the output TOP network.
  * Drag and drop the TOP Network node (AUTOMATE) from your network view into the parameter **TOP network** operator path. &#x20;
  * This will have been automatically set when using the Anatomy Create Animation (List).<br>

    <figure><img src="/files/DDYciE0DAtyal2nvUnZt" alt=""><figcaption><p>Here we have the <em>anatomy_anim_export1</em> node selected and the <strong>TOP Network</strong> Parameter visible on the right hand side.</p></figcaption></figure>

* **Visualization Types:**&#x20;
  * The visualization options (e.g., displaying muscles, multicolor views) are purely for viewport display purposes.&#x20;
  * They do not affect the exported animation data.&#x20;
  * For better performance, consider disabling alpha in the viewport settings.

***

### Output Path Configuration

These parameters define where animation is saved and what it is called.  You may want to modify these however you must match the file path to work on the simulation rig if you choose to modify it.<br>

#### Current Animation & Versioning

* **File Name Structure:** The output file name is constructed from several elements: the directory path, the character name, the version number, and the animation name.
* **Versioning:** To ensure all exported animations are tracked by a specific version, enable versioning. Every output file is in a version folder.
* **Number Padding:** Use number padding to prepend zeros to the start of the version number for consistent naming conventions.
* **Modifying Paths/Names:** While paths are set for simplicity, you can modify them as needed.<br>

#### Output

* **Visible Path:** The visible path specifies the absolute location where the animation data will be written, however it is just a visualization of the path.<br>

  <figure><img src="/files/yqIofuSYmf14TuRAy16H" alt=""><figcaption><p>Here we demonstrate editing the directory parameter, then the Out Path parameter.<br>The directory parameter is part of the expression in Out Path, which is represented in the Visible Path (purple).</p></figcaption></figure>

* **Directory Parameter:** Changing the directory is the easiest way to modify the location of your animation.

* **Versioning Parameter**:  You can control a version number that is output in the animation path.&#x20;

* **Out Path Parameter:** This is the path you will export your motion clip to.  You can modify this path, but maintaining a procedural structure is recommended because the system is setup to match the path naming for muscle simulation.  <br>

***

### Frame Rate Settings

These controls manage how frame rate of the motion clip is written during export.

<figure><img src="/files/80VmIUmJ3ATkLdEfR0zs" alt="" width="563"><figcaption></figcaption></figure>

* **Source FPS vs. Output FPS:**
  * **Source Frames Per Second (FPS):** Defines the frame rate at which the input animation data was created or read.
  * **Output Frames Per Second (FPS):** Defines the target frame rate for the saved motion clip.<br>
* **Forcing Match FPS :** Use this option to ensure that the source and output FPS values are identical, preventing discrepancies during export. &#x20;
  * This is useful when you have the *Global Animation Options* FPS at a rate other than what the **Source FPS** is set to.  (*Global Animation Options* Hotkey **Alt+Shift+G**)<br>
* **Set Target FPS:** Setting a specific target FPS will set the animation timing by interpolating new frames.

***

### Export

The process for exporting differs significantly depending on whether you use **Input Mode** or **List Mode**.  Modes are controlled by the *anatomy\_anim\_**import*** node.

#### Input Mode (Simple Export)

* To export, simply press the **`Save`** button. This mode is typically used for single, defined exports.<br>

#### List Mode (Batch Processing)

This mode allows batch processing of multiple animations and requires careful setup manually,&#x20;

1. **Network Connection:** Inside the Automate TOP network node, the `Anatomy Anim Workitems` node must be correctly pointed to both the `Anatomy Anim Import` and `Anatomy Anim Export` nodes. This connection generates the necessary job list for animation creation.<br>

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

2. **Caching Control:** Use the parameters on the `Anatomy Anim Import` to enable or disable caching, which is crucial for managing data integrity during batch runs.<br>

3. **Local Scheduler Settings:**

   * **Single Job Toggle:** By default, this is set to a single job. While useful in most scenarios, disabling it allows processing of many animations simultaneously. *Warning: Disabling this may cause the computer to become temporarily unresponsive.*
   * **Total Slots:** This parameter controls parallel processing capacity. It has minimal effect when Single Job is enabled. When Single Job is disabled and caching many animations, you can set Total Slots to `CPU Count - 1` for optimal performance.<br>

     <figure><img src="/files/nrHBTHQN74RCbXNzYEKb" alt="" width="563"><figcaption></figcaption></figure>

4. **To export**: Once those settings have been checked you may finally export.  \
   Press the **`Save All Animations`** button.&#x20;


# Animation Network

An outline of the network concepts

Animation nodes are designed to work in a particular way.

<figure><img src="/files/hg5h8kGMihRNPzfeZ5IM" alt=""><figcaption><p>The default setup for animation transfer.</p></figcaption></figure>

Above we have the default setup.  This is the way we've designed to apply animation from one skeleton to a Procedural Anatomy skeleton.

## Custom Networks

In essence we are trying to optimize the workflow to get animation onto your character to simulate.   There may be problems with this and that it could introduce inaccuracies into the animation if the skeletons are different proportions.   In these situations you may want to export the procedural Anatomy skeleton for your character and transfer the animation yourself either in Houdini or another DCC.

Procedural Anatomy provides **two skeletons** for animation. A **Simple Skeleton** that is meant for animation transfer and an **Anatomical Skeleton** which is meant to animate all bone models with accuracy and allow bones to rotate around each other.

<figure><img src="/files/rusCyi6tjUoNeczHIPCa" alt=""><figcaption><p>The two skeletons that are generated when creating a character.</p></figcaption></figure>

As long as you have animation that will apply to the Simple Skeleton (seen above in white) you can match it with the Anatomical Skeleton (seen in blue).

<figure><img src="/files/yxfrMa5og2rKmsSXiQhF" alt=""><figcaption><p>Here we are able to skip the animation transfer </p></figcaption></figure>

Therefore you are able to bypass the match pose and FBIK nodes and you can plug directly into the Skel Solve node. &#x20;


# Simulation

<figure><img src="/files/ivdR9rcgDt1GGA6iGq6e" alt="" width="563"><figcaption></figcaption></figure>

## Linking Characters & Animation To The Rig

While linking characters is quite straightforward, animations are a little complex to add if using **multiple characters**.   We must use the same naming schema as described above as well as we need to use string expressions to build our input paths based on the animation tools.  For each animation the *animfile* path must have the character name parameter as a file reference. &#x20;

File (*animfile*) e.g.\
$JOB/animations/\`chs("name")\`/v001/flex.bgeo.sc

This ensures your characters personalized animation is loaded when working with multiple characters.

## Cache management

You do have options you have for optimizing your caches and saving on disk space.  The Skeleton cache and Tissue Collision caches are not necessary but they do represent speed ups for evaluating each frame, there are skipping controls per animation.  If you are working over a network and have slow network access this might be a good idea for you to use.


# Simulation 2.0

Anatomy Rig 2.0 Simulation Workflow Tutorial

<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.


# Error Codes

Error codes for Indie and Commercial hosted (not on premise).

Below we list error codes we have encountered during testing which may be a bit cryptic in their wording.

## Error code: 48

#### The license renew failed due to other reason. Error code: 48

\> The license expired due to network connection failure.\
\
This may be returned instantaneously and you do not notice any stop in service or when using a VPN.


# Model Nodes

<figure><img src="/files/17TkkFxreuFVyLCm2L2s" alt=""><figcaption></figcaption></figure>


# Anatomy Model

This is where your model and animation skeleton are setup.

Learn how to place for accurate anatomy here:

{% content-ref url="/pages/1c4o6TV86H2WxkR0R278" %}
[Anatomy Placement](/setup/build-your-first-character/anatomy-placement)
{% endcontent-ref %}

## Placing Down The Model Node

<figure><img src="/files/42OlXgNAnpcxx9m0q2NV" alt=""><figcaption><p>Here we have our model node connected to our character.</p></figcaption></figure>

In the above example the *Tommy* node outputs first the model, second the water tight mesh.

There are five inputs for the model node

1. **In Model** - The character model you would like to create anatomy for.
2. **Muscle Shape Model** - A watertight mesh which has the shape you would like to achieve for the anatomy.
3. **Tissue Shape Model** - A watertight mesh outer shell of the body with extra volume for fat, breast tissue or anything else.
4. **VDB SDF** - A VDB with a signed distance field.  This can be created inside the node and is not necessary.  It is available as an alternative.
5. **VOL SDF** - A Houdini Volume with a signed distance field.  This can be created inside the node and is not necessary.  It is available as an alternative.

### Muscle and Tissue Shapes

What the differences are between these two?

The muscle shape is specifically for where the anatomy will fit whereas the tissue shape is where the fat, breast tissue or other volumes that you would like to represent with a procedural mesh will fit to based on the outer skin.

### VDB & Volumes

We use both a VDB and volume for different reasons:

* VDB Used for high-rise data on the surface and inside the character&#x20;
* Volumes are used for outside of the character.  Volumes are a little bit more wasteful so we tend to use them for lower quality outside of the character.

For the process to work you want a high resolution VDB  and a low resolution volume that at the very least can describe the shape of your characters fingers.&#x20;

***

## Naming Your Character

<figure><img src="/files/USFxD19pMsnOgL7JB7kB" alt=""><figcaption><p>Alpha numeric characters only please!</p></figcaption></figure>

Naming your character defines more than a way of identifying them, the name is used to create a folder and organize output files and caches that need to be organized.

It is recommended to use alpha numeric characters in the name (A-Z, 0-9, \_, -).  The objective of the name is to be easily readable because at later stages you will be able to work with multiple characters at a time.

**$OS** is a Houdini expression that returns the name of the node.  So in the above instance your character would be named *anatomy\_model1*. &#x20;

## Caching Your Character

The recache button saves all meshes, the VDB and volume for your character to disc as a single file.

{% hint style="info" %}
The creation of **VDBs and Volumes can take up a massive amount of RAM**.  If you only have limited amounts then its best to create your character cache and then restart Houdini to ensure you flush it and do no go over limits.
{% endhint %}

***

## Moving Points That Represent The Animation Skeleton

<figure><img src="/files/mKLxR9MLpe1RptXJVw1G" alt=""><figcaption><p>Here we demonstrate moving points around and using F to auto position points.</p></figcaption></figure>

Here you must enter and exit the to modify the skeleton.

{% hint style="info" %}
**Hotkeys**\
**G** - Cycle through viewing different layers of animation skeleton.

**B** - Cycle through guides types.

**Enter** - Enter Tool

**Escape** - Exit Tool
{% endhint %}

## Placing With Auto Positioning

{% hint style="info" %}
**Hotkeys**\
**F** - Enable auto position, this positions a point to the middle of the character wherever you click.
{% endhint %}

## Right-Click Menu

<figure><img src="/files/oJ5ncSVPtQOEGF9WpqnT" alt=""><figcaption><p>Right click menu is contextual, right click on the handle and it will be different from right clicking else where.</p></figcaption></figure>

The right click menu is used for commands to make it quicker and easier to work in the viewport.

### Right Click Menu vs  Manipulator Right Click Menu.

Depending on where you right click you will get one menu or another.  If the handle is visible and you right click you will get the handle menu which is very useful for the handle alignment options (component & world).  If you click elsewhere you will get the Model node right click menu.

## Mirroring

* Mirroring the **Simple** view occurs default as <mark style="background-color:red;">+X</mark> to <mark style="background-color:red;">-X</mark> (left to right)&#x20;
* Mirroring can be controlled from the right click menu or in the parameters.
* Mirroring the **Simple** view works differently from **Full** or **All Details**. &#x20;
  * Simple mode will set the mirroring as this point is being mirrored.
  * Full and All Details set the mirroring as this points opposite is being mirrored.

{% hint style="info" %}
**Hotkeys**\
**H** - Enable mirroring on selection.
{% endhint %}


# Anatomy Skeleton

Where the skeleton model is created.

## Edit The Skeleton With Control Points Visible

<figure><img src="/files/WJg7OygirOjQgkR5NQ78" alt=""><figcaption><p>Display the skeleton node while selecting the model node to edit and view changes live.</p></figcaption></figure>

A quality of life workflow is visualizing the Skeleton node (with the blue mark on node) while selecting the Model node. This enables you to modify the skeleton while visualizing the skeleton model. Procedural Anatomy has been designed to work like this so you can see what your edits are live.

## Shape Parameters

There maybe parameters that we don't call out in this guide. The ones we have called out are most likely to stay into full release.

### Skull

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

The skull has many parameters to control.  They may help in cases where your characters head is a different shape than the Procedural Anatomy base character.

### Spine

<figure><img src="/files/9wgYRKnvg89zR72BdhjL" alt=""><figcaption><p>Add scale to the spine </p></figcaption></figure>

#### Spine Parameters

* **Ligament Thickness** - Controls thickness of *C\_vertebral\_column\_ligaments*
* **Scale Add Front** - Adds scale to the spinal column <mark style="background-color:blue;">Z</mark>&#x20;
* **Scale Add Side** - Adds scale to the spinal column <mark style="background-color:red;">X</mark>&#x20;
* **Spine Scale Ramp** - Setting a point to position 1 and value 1 can fix spacing problems when scaling the spine front and side by a large amount.

### Ribcage

* **Lower Offset** - brings the lower ribcage in or out.
* **Ribs Iterations** - This is smoothing iterations on the overall shape of the ribcage.
* **Thickness** - How thick the ribcage is
* **Sternum Thickness** - How thick the sternum (front middle part) is
* **Offset Ribcage Bottom** - Raise or lower the bottom of the ribcage.

### Pelvis

* **Front Width** - Expand the front of the Pelvis
* **Iliac Crest Thickness** - Controls the thickness of the edge of the pelvic bone.
* **Model Min Thickness** - Controls the contraction of the pelvis bones to a flat shape, will make thinner parts of the bones thicker.
* **Model Max Thickness** - Controls the contraction of the pelvis bones

### Clavicle

The clavicle controls are designed not to need changing, but if you do want to straighten or use the SDF it's a good idea to play with both of the parameter types.

* **Straighten** - Straighten the clavicle.  While this may seem unrealistic it opens the
* **Thickness** - This is the thickness of the offset from the skin to the center of the clavicle \
  bone.

### Arms & Legs

Going to call out specific controls to try here.

#### Humerus

* Humerus - Offset - shifts&#x20;
* **Humerus Scale** - Humerus Blend Scale & Humerus Scale Ramp work in unison, the ramp controls the scale along the length of the bone.&#x20;
  * Position Zero - Shoulder
  * Position One - Elbow
  * Value Zero - Humerus Scale is automatically calculated
  * Value One -  Humerus Scale is manually set to the humerus blend scale.

#### Radius & Ulna

* **Straighten Ulna** - Straighten the ulna, may not be realistic.
* **Straighten Radius** - Straighten the Radius , may not be realistic.
* **Ulna Shape Thickness** - how far the bone is away from the skin.
* **Ulna Scale Offset** - makes the bone bigger.

#### Femur

* **Straighten** - Straighten Femur.  Needs work…
* **Blend** - Blend to the shape of the leg.

### Scapula

* **Spine Thickness** - Thickness of the bone from the skin
* **Coracoid Process Position** - move the coracoid process position on the scapula.  This maybe unrealistic but it helps position the Coracobrachialis away from the head of the Humerus.

### Trachea

It's important to move the trachea points on the Model node as well as use these controls.\
The following parameters have a pushing effect on each other.

* **Magnitude** - Distance to test samples for, 1.0 unit in Houdini’s measurements.  This pushes the trachea closer to the skin of the body.
* **Thickness** - Thickness of the skin.  This pushes the trachea into the body.

### SDF

Limits the bone models to be inside the character.  It is a hard limit so it will push bones flat into the body.  Smoothing iterations can help with flattened geometry.

* Thickness - Thickness of the skin, recommended to be double that of the value for the muscles SDF.

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


# Anatomy Muscle

The Muscle node creates the geometry muscle shapes as well as collision meshes for them.

Correct initial settings

Using the name and visibility controls

## Visualize

* Out Model - View the model or the collision model for the simulation.
* Group - Used to set selection.

## Shaping

* Subdivisions - Add extra detail to the muscle geometries
* Tangential Smooth - Smooth the underlying shape
* Envelope - Enable smoothing
* Step Size - Amount of smoothing

## SDF

* **Thickness** - Thickness of the skin, recommended to be a low value.
* **Resample Enable** - resample the SDF to be finer detail by smoothing it.
* **Scale** - Lowering this value creates more detail.
* **Size** - Raising this value creates more detail.

{% hint style="info" %}
Be careful about how much RAM you use!  You can sometimes double your usage with this.
{% endhint %}

### Expansion

**Samples** - how many increments we test to solve the muscle.  High samples will be more accurate.  Alternatively shorten projection distance.

**Iterations** - How many times we iterate the muscle solve, higher values will have an inflation effect to the muscles, lower will be faster to work with.

**Bias** - how close the muscles inflate to each other,&#x20;

**Projection Distance** - How far we test the muscles, usually should be between 0.1 - 1.0 for Human sized characters.  Might need to be bigger/smaller if your character is bigger/smaller.

**Threshold** - Limits expansion based on angle of the muscle versus the SDF gradient.

**Step Size** - Amount of smoothing.

### Self Intersections

**Samples** - Number of iterations to check self intersections on muscle geometry

**Threshold** - Limits expansion based on angle of the muscle versus the SDF gradient incorporated into the self intersection check.


# Anatomy Volume

This node uses the negative space between the Muscle Shape Mesh and Volume Shape to create meshes for fat and breast tissue.

**Expansion** - Expand the acceptable values for fat.  Small values have big changes here.

**Delete Pieces Threshold** - This is based on the area of the piece.

**Target Mesh Size** - How large the edge lengths are for the procedural mesh.  A value of 0.01 Is matched to the size of the muscle meshes for an average character, you may want to raise or lower this value slightly for more or less mesh in smaller areas.

**Smooth Strength** - Smoothing, focusing on edge smoothness.


# Anatomy Output

This node is designed to output all created meshes as a single package if used inside Houdini.

## Mass

{% hint style="danger" %}
You must set the mass of your character in this node!
{% endhint %}

## Outputs

This node saves your character into a single file and creates some basic bind weights for them.  The intention of the step is to have a single file that can feed the animation and simulation stage.  From here you may also export via FBX or other ROP node types.  You must save the output with no to view the results in this node.

<figure><img src="/files/TGEb7adnpfOLXLwJkleb" alt=""><figcaption><p>All of the outputs represent a part of a file that has been saved for Houdini.</p></figcaption></figure>

1. **Out Models** - This output contains three packed primitives of the skin, muscles and bones.  Access them via the *character\_component* attribute and unpack them.
2. **Rest Skeleton** - Animation skeleton used for deforming the model.
3. **Rest Simple Skeleton** - Animation skeleton that is simplified and used for matching animation to this character.
4. **Muscle Simulation Geometry** - Tetrahedral meshes for simulation.
5. **Rest Muscle Lines** - Muscle Lines used to measure flexing of the muscles.&#x20;
6. **Skin Simulation Mesh** - Tetrahedral version of the skin mesh for simulation.


# Animation Nodes

The primary nodes you will use for animation transfer.

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


# Anatomy Anim Import 1.0

How to set up anatomy anim import

## List Mode

This node is designed to work in a similar fashion to Houdini’s KineFX nodes but also deliver the ability to work with **multiple characters and multiple animations**. In addition the node is designed to animate from the rest pose to the start of your animation reducing the need for custom animation ahead of the start frame (also known as *preroll*) or work with custom preroll if desired.

## TOPs and This Node

<figure><img src="/files/bD7W0zZgu48bv3pCFQ3i" alt=""><figcaption><p>By selecting the TOP workitem first, you can view your animations as they update.<br>Changing variables such as the Animation Name, T-Pose, start and end frames.</p></figcaption></figure>

## Character Tab

{% hint style="info" %}

### Character

This node expects the output of the character setup process as it’s character inputs (bgeo.sc file from Anatomy Output node)
{% endhint %}

**All On | All Off | Toggle Invert** - Modifies the enable character attributes.\
**Character Index** - chooses the character to load from.  Default value is the TOPs attribute <mark style="background-color:green;">@char\_index</mark> which gets created when using the TOPs context node [Anatomy Anim WorkItems](/nodes/anim-tops-network-nodes/anatomy-anim-workitems-1.0).\
**Character File** - The current file based on the index and characters available.\
**Character Name** - Name of the current character.  ~~The current expression gets the characters name from the file paths parent folder.~~

### Set Up A Single Character

**Character File** - Find the character file saved out from the [Anatomy Output node](/nodes/model-nodes/anatomy-output) during the character building stage.\
**Name** - Define the name you want for your file names.  <mark style="background-color:yellow;">This must match your characters name</mark>.\
**Enable** - Controls what work items are generated in TOPs.

## Animation imports

**All On | All Off | Toggle Invert** - Modifies the enable animation attributes.\
**Animation Index** - Chooses the current animation to load from. Default value is the [TOPs attribute](https://www.sidefx.com/docs/houdini/tops/intro.html#attrs) <mark style="background-color:green;">@anim\_index</mark> which gets created when using the TOPs context node [Anatomy Anim WorkItems](/nodes/anim-tops-network-nodes/anatomy-anim-workitems-1.0).  You can treat this as an expression and delete it (right click>delete channels) to debug and \
**Animation File** - The current file based on the index and animation available.\
**Animation Name** - Name of the current animation.

#### Set up a single animation

**Animation Name** - Name of the animation.   Alpha numeric characters recommended. (A-Z, 0-9, \_, -)

**Enable** - controls what work items are generated in TOPs\
**Hide** - controls if the parameters are visible or not.\
**Animation File** - Find the input FBX Animation File

**Up Type** - Set the up type, this is only used if you need to change the up direction of your character.\
**Match Scale** - Forces the animation file to match the scale of your character based on the T-Pose\
**Normalize Scale** - This ensures there is no scaling on the animation by forcing the normalization of transforms for animation.  You should leave this on unless you need to read scale values from your animation file.\
**T-Pose Type** - Set how you would like to load the T-Pose.  File loads a static T-Pose FBX animation file from disk.  Frame lets you choose a frame of the animation to use as the T-Pose

**File** - static T-Pose FBX animation file

**T-Pose Up Type** - Choose the up type for the T-Pose.

**Mapping** - Map what joints from the animation file to the&#x20;

**Evaluate as time/frame** - Choose how to calculate time\
**time / frame** - Choose to operate on time based or frame based. For this Beta only Frame has been properly tested.\
**Frame** - Current Frame Number.\
**T-Pose Start** - The frame at which the animation is in T-Pose state.\
**Animation Start** - First Frame of the animation.\
**Animation End** - Final Frame of the animation.  You must set this because it is possible to stretch the time line with animation Start/End.\
**Speed** - How fast to playback the animation.

{% hint style="info" %}

### Frame Ranges and Number Padding

We recommend using frame numbers with at least 4 digit number padding.  This means you should either have your animation&#x20;
{% endhint %}


# Anatomy Anim Match Pose 1.0

Match the character to the animation T-Pose.

This node defines an automated way to match pose between the character skeleton and input animation.  It is designed to offer accurate pose matching in an automated way.

{% hint style="danger" %}
You must have a mapping attribute for every bone that will be matched!
{% endhint %}

This node is not an alternative to Houdini’s rig match pose node, it matches the angles between the matched skeletons.

This node is a work in progress and may not work correctly in every situation.


# Anatomy Anim FBIK 1.0

Match the animation on an FBIK node

This node is designed to transfer animation animation from one skeleton to a characters simple skeleton.  This process is useful when you are matching skeletons from external FBX files to your current character.

Keep in mind this node is used to transfer from a skeleton that is not the same as the skeleton created with the character for Procedural Anatomy.  If you want to transfer animation to a character in another program you can go to the skel solve node and bypass this node.


# Anatomy Anim Skel Solve 1.0

Here we match the character’s skeleton with the complete set of bones and evaluate them through the matched movement.


# Anatomy Anim Export 1.0

Create a saved animation with this export node.

## Parameters

**View** - view the animation transferred to the model or the animation skeleton.\
**Display Muscles** - Display the muscles in the animation.\
**Multicolor** - View the muscles with multiple colors\
**Enable Alpha** - Use transparency to see through the skin of the character.\
**Bind Weights** - These are the bind weights generated from the animation skeleton or the simple skeleton.\
**Skip Disabled** - Do not cache animations that are not enabled\
**Create TOPs Network** - Creates a network

***

**Character Name** - String expression that tells you which is the current character \
**Animation Name** - String expression that tells you which is the current animation

{% hint style="info" %}
All FPS controls are only capable of being used with bgeo
{% endhint %}

**Source FPS** - Frames Per Second \
**Output FPS** - The Frames Per Second of your output file.\
**Force Match FPS** - Sets the output FPS\
**Set Target FPS** - Enable setting of the target FPS to the Output FPS.  Force Match FPS overrides this.\
**Target FPS** - The target Frames Per Second value to set the output FPS to.

***

**Rest / Start / End / Inc** - Rest frame of the animation, start frame of the animation, end frame of the animation, increment \
**Version** - version counter for output files. Eg: v001\
**Number Padding** - number padding for version, counts leading zeros (eg: 2 - 01, 4 - 0004)\
**Directory** - Output parent folder.  All your animation files will go here.  It’s recommended to keep this separate from any folders in use with the CFX Rig.\
**Out File Type** - Type of file to output, FBX and BGEO are options.  BGEO allows for control of Frames Per Second Attributes above.\
**Out Path** - Output file path to generate.  Default value is an expression that generates the path dynamically, middle mouse button or **right click on the parameter > Expressions > Expand String** to view the resulting path.


# Anim TOPs Network Nodes

Working with Procedural Anatomy in TOPs enables you to transfer and output 1, 42, 1000 character animations or more quite simply. &#x20;

\ <br>


# Anatomy Anim Workitems 1.0

This node gets the work items from the [Anatomy Anim Import](/nodes/animation-nodes/anatomy-anim-import-1.0) node, [Anatomy Anim Export](/nodes/animation-nodes/anatomy-anim-export-1.0) node, and makes them available to use in the TOPs context.

You must have a correctly linked <mark style="background-color:yellow;">Anatomy Anim Import</mark> node and <mark style="background-color:orange;">Anatomy Anim Export</mark> node in the parameters anim\_import\_node.

### Parameters

**Anim Import Node** - path to operator for the linked <mark style="background-color:yellow;">Anatomy Anim Import</mark> node.\
**Anim Export Node** - path to operator for the linked <mark style="background-color:orange;">Anatomy Anim Export</mark> node.\
**Skip Disabled** - Skip the characters and animations that are not enabled.  This acts as an override, with it turned off all characters and animations will become workitems.\
**Create ROP** - Creates a Anatomy Anim Fetch node connected to the current node that links to the output of <mark style="background-color:blue;">Anatomy Anim Workitems</mark> to cache out the current character animation.

To visualize the current animation or other animation, select this node and cook it (shift + G hotkey).  It may ask you to save your file.  \
Once the cook completes there will be a selectable green dot on the node with each subsequent dot referencing a character or animation.


# Anatomy Anim Fetch

This node fetches the wrap for the [Anatomy Anim Workitems](/nodes/anim-tops-network-nodes/anatomy-anim-workitems-1.0) and caches specified animations as workitems.


# Simulation Nodes 1.0

The original simulation network Procedural Anatomy launched with.

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


# Anatomy Rig Load

A rig to start simulating your characters muscles.

This node works very similar to the [Anatomy Anim Import](/nodes/animation-nodes/anatomy-anim-import-1.0) node. You load characters and processed animations onto this node for it to be used with TOPs.

## Parameters

#### Characters&#x20;

**All On | All Off | Toggle Invert** - Modifies the enable character attributes.\
**Name** - Name of the current character\
**File** - current file location on disk.\
**Current Character** - Index of the currently visible character

#### Set up a single character.

**Enable** - Enable the character to cache in TOPs.\
**Name** - Name of a character.  We use an expression here to get the name of the character from the folder name.\
**File** - File of a character.

***

### Animations

**All On | All Off | Toggle Invert** - Modifies the enable animation attributes.\
**Animation Index** - The currently visible animation\
**Animation Name** - Name of the current animation\
**Version** - Output Version of the current animation.\
**Rest | Start | End | Inc** - Rest frame of the animation, start frame of the animation, end frame of the animation, increment.

#### Set up a single animation

**Enable** - controls what work items are generated in TOPs\
**Name** - Name of the animation.   Alphanumeric characters recommended. (A-Z, 0-9, \_, -)\
**Animation File** - Find the input Motion Clip Animation File.

#### Advanced

**Frame Increment** - Control over how many sub-frames are caches.  Max of 1, value of 0.5 means two frames output for every whole frame, value of 0.1 means 10 frames output.\
**Output Version** - An independent control for the versioning of the cache to output based on the character and animation.

***

### Skip Caches

All skip cache buttons skip individual caches in the TOPs context when outputting work items. This was designed primarily to be used for testing purposes. In the following order the caches will be skipped:

Skip Skeleton\
Skip Muscle\
Skip Tissue Collisions\
Skip Tissue\
Skip Skin

Ensure you have all your data cached or accessible to skip a previous cache.

It is possible to skip entire cache sections if you feel like it, the bones do not necessarily need to be cached, and you could skip the muscle cache and only use the tissue collision cache.&#x20;

{% hint style="warning" %}
It’s highly recommended to have either the muscles cached or the tissue collision cached, or both cached ahead of the tissue cache!
{% endhint %}

These are two separate simulations and the tissue will be faster to simulate and most likely take up less of your computer's memory.

### Enabling / Disabling Caches Altogether

To disable a cache altogether you turn off the load from disk toggle button on the associated filecache node, then in the AUTOMATE TOPs network switch the associated switch to the zero input.

***

### Cache Management

**Cache Directory** - Top level directory to save the caches to.

**Cache Path** - Secondary path to the cache, this should usually be the name.  This is probably a bit over complicated.

**Version Padding** - Number of leading zeros in the version

**Frame** - Current Frame, this is used to fix subframes\
**Enforce Sub Frames** - takes the frame number and sets it to any number of decimal places based on the current frame evaluation.  Off - 1230, On - 1230.25\
\
**Skeleton Cache Path** - Path to output the skeleton.\
**Skeleton Cache Path Exists** - Prints the number of frames expected and exists.

**Muscle Cache Path** - Path to output the muscle.\
**Muscle Cache Path Exists** - Prints the number of frames expected and exists.

**Tissue Collision Cache Path** - Path to output the tissue collisions.\
**Tissue Collision Cache Path Exists** - Prints the number of frames expected and exists.

**Tissue Cache Path** - Path to output the tissue.\
**Tissue Cache Path Exists** - Prints the number of frames expected and exists.

**Skin Cache Path** - Path to output the skin mesh.\
**Skin Cache Path Exists** - Prints the number of frames expected and exists.

<br>


# Anatomy Rig AnimSkel to Skel

This node exists to spot check your animation applied to your skeleton model. &#x20;

While we did not believe in brevity when naming this node, we did  keep it concise with a lack of parameters 😅.  Going forward parameters may be added but we will keep this note focused on visualizing animation on the skeleton model


# Anatomy Rig Animate Muscle Lines

This node defines the muscle flex animation.  You will see a few different colors for the flex parameters. &#x20;

White - flex value - 1.0\ <mark style="background-color:yellow;">Yellow</mark> - flex value - 0.5\ <mark style="background-color:red;">Muscle Colours</mark> - flex value - 0.0

{% hint style="warning" %}
This node is a work in progress and we will likely be giving more options on visualization soon.
{% endhint %}

### Parameters

**Frame Offset** - For the time being our flex system is primarily based on a look-ahead frame value set to this parameter.


# Anatomy Rig Skel to Muscle

The node is where we convert all of our simulation meshes, constraints and animation collision geometry into a format where we can send it to a Vellum solver.

{% hint style="warning" %}
This node is a work in progress and we will likely be giving more options to tweak the dynamic settings of muscles.
{% endhint %}


# Anatomy Rig Tissue Collision Setup

This node manages caching and transformation of muscle simulation to collision mesh for the skin.

Internally there are two possible cache states, the first is muscle stimulation and intended to be spot checking muscle simulation. The second, called Tissue Collision enables cashing of the muscles as polygonal meshes along with the skeleton model.

### Parameters

Both of these present an Automatic, Force Off, Force On options. These represent loading the caches.  Automatic will only load if the cash is present, forcing on or off will do just that and force the matching cache to load.

**Load Muscle Simulation** - Load the cache directly from the muscle simulation

**Load Tissue Collision** - Load the cache directly from the transformation of muscle simulation to collision mesh for the skin.


# Anatomy Rig Tissue

This node converts your character's skin to a tet mesh and collides it with the cached muscle simulation.&#x20;

{% hint style="info" %}
We give the option of placing a Vellum Solver after this node however it is not necessary. Simulating with a Vellum Solver will not offer better results in every case, it may help stop stretching in certain areas. We disable it by default for creation.
{% endhint %}


# Anatomy Rig Skin

This node manages caching and transformation of skin tet mesh to final render mesh for the skin.

Internally there are two possible cache states, the first is Tissue Simulation and intended to be spot checking the tissue simulation. The second, called Skin enables cashing of the resulting deformation back on to the original model used to create your character.

#### Parameters

Both of these present an Automatic, Force Off, Force On options. These represent loading the caches. Automatic will only load if the cash is present, forcing on or off will do just that and force the matching cache to load.

**Load Tissue Simulation** - Load the cache directly from the tissue simulation.

**Load Skin** - Load the cache for the skin.

A debugging technique you may need to use is cashing the tissue simulation and skin simulation for comparison.

<br>


# Anatomy Rig Output

This note only has a few parameters of note.  You are able to press save and cash the current character.  You're able to press Create TOPs Net And get a new top Network with TOPs nodes linked to this output node.


# Simulation Nodes 2.0

The latest simulation network in Procedural Anatomy

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


# Anatomy Rig Load 2.0

A rig to start simulating your characters muscles.

This node works very similar to the [Anatomy Anim Import](/nodes/animation-nodes/anatomy-anim-import-1.0) node. You load characters and processed animations onto this node for it to be used with TOPs.

## Parameters

#### Characters&#x20;

**All On | All Off | Toggle Invert** - Modifies the enable character attributes.\
**Name** - Name of the current character\
**File** - current file location on disk.\
**Current Character** - Index of the currently visible character

#### Set up a single character.

**Enable** - Enable the character to cache in TOPs.\
**Name** - Name of a character.  We use an expression here to get the name of the character from the folder name.\
**File** - File of a character.

***

### Animations

**All On | All Off | Toggle Invert** - Modifies the enable animation attributes.\
**Animation Index** - The currently visible animation\
**Animation Name** - Name of the current animation\
**Version** - Output Version of the current animation.\
**Rest | Start | End | Inc** - Rest frame of the animation, start frame of the animation, end frame of the animation, increment.

#### Set up a single animation

**Enable** - controls what work items are generated in TOPs\
**Name** - Name of the animation.   Alphanumeric characters recommended. (A-Z, 0-9, \_, -)\
**Animation File** - Find the input Motion Clip Animation File.

#### Advanced

**Frame Increment** - Control over how many sub-frames are caches.  Max of 1, value of 0.5 means two frames output for every whole frame, value of 0.1 means 10 frames output.\
**Output Version** - An independent control for the versioning of the cache to output based on the character and animation.

***

### Skip Caches

All skip cache buttons skip individual caches in the TOPs context when outputting work items. This was designed primarily to be used for testing purposes. In the following order the caches will be skipped:

Skip Skeleton\
Skip Muscle\
Skip Tissue Collisions\
Skip Tissue\
Skip Skin

Ensure you have all your data cached or accessible to skip a previous cache.

It is possible to skip entire cache sections if you feel like it, the bones do not necessarily need to be cached, and you could skip the muscle cache and only use the tissue collision cache.&#x20;

{% hint style="warning" %}
It’s highly recommended to have either the muscles cached or the tissue collision cached, or both cached ahead of the tissue cache!
{% endhint %}

These are two separate simulations and the tissue will be faster to simulate and most likely take up less of your computer's memory.

### Enabling / Disabling Caches Altogether

To disable a cache altogether you turn off the load from disk toggle button on the associated filecache node, then in the AUTOMATE TOPs network switch the associated switch to the zero input.

***

### Cache Management

**Cache Directory** - Top level directory to save the caches to.

**Cache Path** - Secondary path to the cache, this should usually be the name.  This is probably a bit over complicated.

**Version Padding** - Number of leading zeros in the version

**Frame** - Current Frame, this is used to fix subframes\
**Enforce Sub Frames** - takes the frame number and sets it to any number of decimal places based on the current frame evaluation.  Off - 1230, On - 1230.25\
\
**Skeleton Cache Path** - Path to output the skeleton.\
**Skeleton Cache Path Exists** - Prints the number of frames expected and exists.

**Muscle Cache Path** - Path to output the muscle.\
**Muscle Cache Path Exists** - Prints the number of frames expected and exists.

**Tissue Collision Cache Path** - Path to output the tissue collisions.\
**Tissue Collision Cache Path Exists** - Prints the number of frames expected and exists.

**Tissue Cache Path** - Path to output the tissue.\
**Tissue Cache Path Exists** - Prints the number of frames expected and exists.

**Skin Cache Path** - Path to output the skin mesh.\
**Skin Cache Path Exists** - Prints the number of frames expected and exists.

<br>


# Anatomy Rig Muscle

This node manages caching and transformation of muscle simulation to collision mesh for the skin.

Internally there are two possible cache states, the first is muscle stimulation and intended to be spot checking muscle simulation. The second, called Tissue Collision enables cashing of the muscles as polygonal meshes along with the skeleton model.

### Parameters

Both of these present an Automatic, Force Off, Force On options. These represent loading the caches.  Automatic will only load if the cash is present, forcing on or off will do just that and force the matching cache to load.

**Load Muscle Simulation** - Load the cache directly from the muscle simulation

**Load Tissue Collision** - Load the cache directly from the transformation of muscle simulation to collision mesh for the skin.


# Anatomy Rig Skin 2.0

This node manages caching and transformation of skin tet mesh to final render mesh for the skin.

Internally there are two possible cache states, the first is Tissue Simulation and intended to be spot checking the tissue simulation. The second, called Skin enables cashing of the resulting deformation back on to the original model used to create your character.

#### Parameters

Both of these present an Automatic, Force Off, Force On options. These represent loading the caches. Automatic will only load if the cash is present, forcing on or off will do just that and force the matching cache to load.

**Load Tissue Simulation** - Load the cache directly from the tissue simulation.

**Load Skin** - Load the cache for the skin.

A debugging technique you may need to use is cashing the tissue simulation and skin simulation for comparison.

<br>


# Anatomy Rig Output 2.0

This note only has a few parameters of note.  You are able to press save and cash the current character.  You're able to press Create TOPs Net And get a new top Network with TOPs nodes linked to this output node.


# Simulation TOPs Network Nodes


# Anatomy Rig Workitems

This node takes a path to an Anatomy Rig Output node and process workitems from there.

### Parameters

Anatomy Rig Output - Path to an Anatomy Rig Output node, can be relative or absolute\~\~.\~\~


# Anatomy Fetch

This node fetches the wrap for the [Anatomy Rig Workitems](/nodes/simulation-tops-network-nodes/anatomy-rig-workitems) and caches specified simulations as workitems.

### Parameters

**Simulation Type** - Set the simulation type and what it will cache in this nodes workitem.


# Bugs / Upcoming Fixes

Known Bugs And Upcoming Features

## Limb Skeleton Shaping

Femur, Tibula, Fibula, Humerus, Radius and Ulna all have various problems in terms of how they find their positions in the body.  The

<br>

<br>


# DOWNLOAD

Here we provide links to published versions of the toolset.

Sub pages here will provide links to the release versions of the toolset.  \
When downloading from here please pay attention to the correct version your license type.  Your download will be rejected if you do not download the correct license type based on your license.

***

## How to Download

1. An incognito browser is recommended to avoid saving your license key in your history.

2. Find the latest version according to your license type and operating system.<br>

   <figure><img src="/files/Gc2t3gP8nD1NlyF50jND" alt="" width="563"><figcaption></figcaption></figure>

3. Paste and go to the link, your download will be refused.<br>

   <figure><img src="/files/ju4dsLKhfWEK0VVJpd3z" alt="" width="563"><figcaption></figcaption></figure>

4. Copy & Paste your license key into the URL at the end, press enter.<br>

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

5. Your download should start shortly.<br>


# 0.9.23 - Optimization 2026

Here we provide links to published versions of the toolset.

{% embed url="<https://youtu.be/3Qj222XX6Xs>" %}

This version is about improving the quality of the skeleton deformation.  We've worked really hard to align bone landmarks to the skin in addition to simplifying the workflow.  Characters smaller than 1 meter are now supported!&#x20;

{% hint style="danger" %}
The *anatomy\_model & anatomy\_skeleton* nodes has had significant changes.  You may need to rebuild your setup.
{% endhint %}

|            | LINUX                                                                                                                                                                                                      | WINDOWS                                                                                                                                                                                                        |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Indie      | [Indie Linux](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/019b954f-0aee-7120-a825-e9d33d95d9d3/cryptlex-hosted_procedural_anatomy_indie_v0.9.23_linux-x86_64.hdalc?key=)         | [Indie Windows](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/019b954f-0aee-7120-a825-e9d33d95d9d3/cryptlex-hosted_procedural_anatomy_indie_v0.9.23_windows-x86_64.hdalc?key=)         |
| Commercial | [Commercial Linux](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/019b954e-6943-7463-b0e7-acad86dca568/cryptlex-hosted_procedural_anatomy_commercial_v0.9.23_linux-x86_64.hda?key=) | [Commercial Windows](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/019b954e-6943-7463-b0e7-acad86dca568/cryptlex-hosted_procedural_anatomy_commercial_v0.9.23_windows-x86_64.hda?key=) |

{% hint style="info" %}
New HOTKEY available!

**Anatomy Model Node**\
1\. With the Anatomy Model node selected\
2\. While editing to view the SIMPLE or FULL mode

**Press V** to view the output Skeleton.
{% endhint %}

{% hint style="info" %}
Support for Smaller Characters!
{% endhint %}

```markdown
Anatomy Model
- First Steps in automating placement
- Added Auto Placement Button for faster setup.
- Local scale for fingers and feet 
- Fixed minimum bounds being set to one for volume

Anatomy Skeleton
- Updated pelvis - iliac crest scales to waist better, iliac hips now match femur better.
- Updated ribs to fit and match the original shape more.
- Skull updated to match pelvis and ribs but does not fit as well as before, more updates to come.
- Removed UI parameters that became superfluous while creating this update.

Watertight Mesh
- Added input attribute support to remove specific areas

Anatomy Output
- Bind weights now pre-calculated

```


# 0.9.20 - Skeleton Snapping

Here we provide links to published versions of the toolset.

{% embed url="<https://youtu.be/gPJ0NApPXR0>" %}

This version is about improving the quality of the skeleton placement by allowing a selection of an input skeleton and matching the Procedural Anatomy skeleton to match its position.

{% hint style="danger" %}
The *anatomy\_model* node has had significant changes.  You may need to rebuild your setup with a new *anatomy\_model* node
{% endhint %}

|            | LINUX                                                                                                                                                                                                 | WINDOWS                                                                                                                                                                                                        |
| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Indie      | [Indie Linux](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/01995ba4-d6fa-7d91-81d9-2b78f518ac60/cryptlex-hosted_procedural_anatomy_indie_v0.9.20_linux-x86_64.hdalc?key=)    | [Indie Windows](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/01995ba4-d6fa-7d91-81d9-2b78f518ac60/cryptlex-hosted_procedural_anatomy_indie_v0.9.20_windows-x86_64.hdalc?key=)         |
| Commercial | [Commercial Linux](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/01990e1d-bf64-77de-aa4e-abe3cf501859/cryptlex-hosted_procedural_anatomy_commercial_v0.9.19_linux-x86_64.hda) | [Commercial Windows](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/01995bb1-358f-7057-9f14-3a22c1281536/cryptlex-hosted_procedural_anatomy_commercial_v0.9.20_windows-x86_64.hda?key=) |

```markdown
Anatomy Model
- Removed inputs for external VDB and Volumes
- Adding support for input from an external skeleton
- Added support for snapping from external skeleton
- Fixed error with foot placement breaking and moving downwards

Anatomy Tissue
- Smoothed edges on tissues more

Anatomy Rig Skin
- Fixed error on scene load
```


# 0.9.19

Here we provide links to published versions of the toolset.

This version is primarily about improving the quality of the skeleton placement and as a result the muscle positioning.  Below is a video of the differences in the versions.

{% embed url="<https://youtu.be/j-0PLLvmrZI>" %}

{% hint style="danger" %}
You will have to reset or create a new **anatomy\_skeleton** node for these changes to properly update for your character.
{% endhint %}

|            | LINUX                                                                                                                                                                                                      | WINDOWS                                                                                                                                                                                                        |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Indie      | [Indie Linux](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/01990e1c-685a-719a-89c3-08cf906f1929/cryptlex-hosted_procedural_anatomy_indie_v0.9.19_linux-x86_64.hdalc?key=)         | [Indie Windows](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/01990e1c-685a-719a-89c3-08cf906f1929/cryptlex-hosted_procedural_anatomy_indie_v0.9.19_windows-x86_64.hdalc?key=)         |
| Commercial | [Commercial Linux](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/01990e1d-bf64-77de-aa4e-abe3cf501859/cryptlex-hosted_procedural_anatomy_commercial_v0.9.19_linux-x86_64.hda?key=) | [Commercial Windows](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/01990e1d-bf64-77de-aa4e-abe3cf501859/cryptlex-hosted_procedural_anatomy_commercial_v0.9.19_windows-x86_64.hda?key=) |

```markdown
Anatomy Skeleton

- Migrated some control of spine to anatomy_model node, skeleton now matches closer  
- Fixed radius and ulna connection to humerus  
- Worked on patella shaping  
- SDF enable parm fixed  
- Worked on femur, fibula, tibia  
- foot now is directly defined by input skeleton  
- Worked on spine, simplified, will need to remove all edits to shaping  
- Body volume now more accurately reflects muscle size of abdomen

Anatomy Model

- Migrated some internal code from the anatomy\_skeleton node to this node.  
- Foot now places better with less input
```


# 0.9.18

Here we provide links to published versions of the toolset.

This version is primarily about improving the quality of the animation matching.

|            | LINUX                                                                                                                                                                                                      | WINDOWS                                                                                                                                                                                                      |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Indie      | [Indie Linux](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/0198c99a-68fe-78c4-8611-27c605b3e329/cryptlex-hosted_procedural_anatomy_indie_v0.9.18_linux-x86_64.hdalc?key=)         | [Indie Windows](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/0198c99a-68fe-78c4-8611-27c605b3e329/cryptlex-hosted_procedural_anatomy_indie_v0.9.18_windows-x86_64.hdalc?key=)       |
| Commercial | [Commercial Linux](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/0198c99a-dfb0-7798-ab82-a9cb54aba803/cryptlex-hosted_procedural_anatomy_commercial_v0.9.18_linux-x86_64.hda?key=) | [Commercial Windows](https://releases.cryptlex.com/v3/c28020ce-d62b-4a1a-a2d4-479a51b4bbce/0198c99a-dfb0-7798-ab82-a9cb54aba803/cryptlex-hosted_procedural_anatomy_commercial_v0.9.18_linux-x86_64.hda?key=) |

```markdown
Anatomy_anim_import:
- T-pose output
- Reorganized parms for animation
- Added parm for match pose type.
- Added shoulder aim parm.
- Forced on normalize scale for input animation.  This may change soon.

Anatomy Match Pose:
- Moved root node match from FBIK to match pose

Anatomy FBIK:
- Removed root node match

Anatomy Skel Solve:
- Changed trachea solve
- Removed extra offsets meant to help match pose
```


# 0.9.17

Here we provide links to published versions of the toolset.

This version is primarily about improving the quality of the animation matching.

```markdown
Anatomy_anim_import
- Removed print statement from mapping file
Anatomy_skin
- Fixed delta mush connection
Anatomy rig animate muscle lines
- Took account of pose differences for muscle lines
Anatomy FBIK
- Added control over initial frame positioning (parms: height_offset, match_world_position)
- Worked on knee orientation (avoid twisting)
Anatomy Match Pose
- Worked on better auto align for fingers, wrist
- Added match to world check box, moves whole body to world start position
Rig Tissue
- Introduce handling self collisions
Anatomy output
Fixed error where tissue mesh would not be generated if not using the anatomy tissue node.
Fixed switch to view input data.

```


# 0.9.16 - 0.9.8

Here we provide links to published versions of the toolset.

This version is primarily about improving the quality of the animation matching.

<pre class="language-markdown"><code class="lang-markdown">0.9.16
Rig Tissue
- fixed tissue start frame
- optimized node

0.9.15
match pose
- remove broken expression in match_pose_core node
- previous version used python
- switched to vex to fix error and optimize

0.9.14
fix match pose py
- remove broken expression in match_pose node
- updated parms on anatomy_fbik node

0.9.13
anim match pose
- removed parameters from anatomy_anim_match_pose node
- fixed the wrist, fingers, thumb pose matching

0.9.12
Anatomy_Model
- Fixed error node.

<strong>0.9.11
</strong>Watertight_mesh
- Error checking for holes in mesh

0.9.10
Anatomy_output
- Added control over tet conform style to fix a bug with generating skin tissue meshes
Anim_import
- Fixed T-Pose start problem

0.9.9
anim_import node
- added scale inheritance control
- set match_scale parm default to off
- skip undos on stash
Anatomy_rig_load
- skip undos on reload
Anatomy_model
- Added support for All Detail mode to affect Simple and Full Modes
Anatomy_muscle
- Fixing digastric muscle, internal smooth causing shrinking, affects everything
Anatomy_rig_tissue_collision_setup
- Updated anatomy_rig_cache nodes 
anatomy_rig_cache
- Added toggle for alfred style progress
sop_anatomy_rig_skel_to_muscle_core
- Added glue constraints to digastric and sternocleidomastoid
dop_anatomy_rig_flex
- Enable g to v

0.9.8
Updated viewer state for anatomy_model node. Fixed skeleton_view parm

</code></pre>


