Houdini Rigging: How I Learned to Stop Worrying and Start Loving APEX

For anyone tired of character setups held together by hope, version notes and one dangerous checkbox, Houdini 21 promises a paradigm shift. By decoupling mesh, rig logic, animation and execution through KineFX and APEX, SideFX is taking another run at the holy grail of procedural rigging. But can it deliver a fast and intuitive workflow?
A close-up view of a pastel turquoise bicycle, showcasing its sleek rear gears and silver spokes gleaming against a dark background. The bike's design features a curved frame and orange safety reflector, highlighting a harmonious blend of modern style and functional engineering.

Can Houdini leave its reputation as “one does not simply learn Houdini” behind and instead use procedural structures to take new paths and find new strengths? How “fast and easy” is “fast and easy” really? Can an APEX rig be coupled with other technologies like mocap and, above all, re-used as promised?

The interest in the industry is definitely there. Lately, the number of in-house and third-party APEX and character tutorials on the SideFX learning platform is exploding like a good pyro sim. Let’s look at how Houdini approaches rigging.

The advantages of procedural rigging

Houdini separates the mesh from the skeleton/rig, from the animation, and, as a fourth layer, from its execution. These four elements exist completely independently of one another and enable maximum non-destructive work.

A last-minute mesh change does not destroy the rig or the weights. The skeleton can be extended with new joints at any time. A skeleton or the entire rig can be adapted and re-used very quickly for any mesh. Animations can be broken apart, assigned partially to selected joints, modified or completely mixed.

A detailed screenshot of a software interface, showcasing a vertical menu on the left side labeled "TAB Menu" with the keyword "apex" highlighted in orange. Below it, multiple options are displayed, including "APEX Graph," "APEX Add Groom," and others, all organized in a clean, modern layout with a dark background, emphasizing functionality and clarity.
Anyone who thinks there are not that many dedicated APEX nodes should wait until we are inside an APEX graph.

The execution of the rig is separated from the rig and animation, and is therefore not only very performant but also flexible. How that works, why that is the case, what advantages it has in practice and where the limits may be, is what the following lines will tell you.

KineFX, Apex, wtf?

Two terms dominate animation and rigging in Houdini: KineFX and APEX (All-Purpose EXecution). For practical use, we first only need to know that KineFX and APEX are simply toolsets for specific tasks. There are KineFX nodes, for example, to create the skeleton, while the APEX nodes take care of rig logic, such as controllers and dependencies, and later the animation. Because of the clever architecture, APEX is very performant. This is due to “delayed evaluation”, meaning rigging and animation are not constantly calculated, but only executed when required.

The secret? Points and attributes

The most important thing and the biggest difference to other DCCs: in Houdini, at the end of the day, we only move points. KineFX, APEX, and Motion Mixer are all fancy ways to achieve exactly that goal: moving points. Joints? They are points with names and transform attributes, that is the whole difference. But still points. Complex geometry packed to save memory? Also, just points.

Why is this so important? Beyond the “dedicated” animation tools, Houdini offers a lot of fantastic tools for manipulating points, and we can unleash the entire arsenal on our characters almost anywhere. And it allows innovative workflows. Completely outside the character pipeline box in your head—keywords: ragdoll, RBD, dynamic motion and Vellum simulations. High-resolution meshes can, for example, be driven via Point Deform from an animated low-res proxy mesh.

With that realisation right in. How does rigging work in Houdini from v21 onward? When and why procedural, when manual? We will look at the new animation tools themselves in a second part, or this will never be finished.

A digital interface displaying a 3D animation rig environment. The top section features a grid layout with numerical data in lists, while the lower section is labeled 'Rig Doctor.' Geometric shapes, including wheel components, float in space, illuminated by a soft, ambient light. The overall mood conveys a high-tech workspace for animation design.
2 points become joints. Above them are the required and automatically generated attributes.

So, what are we to do? In short: KineFX skeleton > naming/tags > Capture> APEX rig logic & controls > animation. Due to the architecture, as you may have guessed, this does not necessarily have to happen linearly.

The skeleton (Welcome to KineFX)

There are two fundamentally different, yet combinable, ways to create the skeleton.

Manual

Primarily, we draw our skeleton with the Skeleton SOP. Joint names can be assigned right away, the hierarchy can be adjusted, and the orientation of the joints can be adjusted. However, we can also draw lines and points in all imaginable other ways and use the Rig Doctor SOP to give them the necessary attributes.

A 3D model of a large capybara displayed in a wireframe format, showcasing its rounded body and limbs. The environment features a dark interface on the right displaying multiple layers labeled 'testgeometry_capybara1' and 'skeleton1', emphasizing the technical aspects of rigging and animation.
With the Skeleton SOP node, a skeleton is drawn classically: first on one side, then mirrored. In the Rig Tree panel, the joints can be named and moved in the hierarchy.

A 3D rigging interface showcasing a geometric model resembling a bird in flight, composed of sleek, elongated lines. On the right, various tool settings, including geometry properties and geometry manipulation options, are neatly organized, enhancing the design's functionality in a dark workspace.
Skeleton Mirror not only mirrors selected joints, but it also renames them appropriately right away.

A detailed digital interface showing a tree-like rigging structure composed of branching lines with green and red nodes. On the right, a panel displays geometry settings and parameters, featuring a clean layout that emphasizes the organized intricacies of the rigging system.
With Rig Doctor, arbitrary points or curves become a rig that can immediately be deformed with a Rig Pose node. A lot of potential for motion graphics or VFX.

Procedural

Non-destructively, for maximum precision and to work detached from mesh updates, we no longer draw a skeleton ourselves here at all. Instead, we extract points from existing geometry, put them into a hierarchy and thus create a dynamic skeleton. As we know, joints are simply points with specific attributes, and a skeleton is nothing more than points in a hierarchy. Then we continue processing them.

Here, the Extract Centroid SOP is one of the most important nodes. It extracts the exact centre point from the geometry’s bounding box, which is useful not only for eyeballs.

But we can also simply brutally blast away everything except the relevant points, or let a few nice VEX lines isolate points. If we have splines, the whole thing becomes even easier. Curves are nothing more than connected points, and therefore, almost a skeleton with hierarchy already in place. The Rig Doctor SOP adds the necessary attributes in such a case, Initialise Transforms, and we are good to go.

This allows a skeleton to be constructed from a simple line, a complex curve or a point cloud. For procedural alignment, the Orient Joint node is a good choice. Of course, as is often the case, both approaches can be combined well.

A detailed view of a 3D modeling workspace showcases a rigging setup for animation in Houdini. On the left, a white, segmented L-shaped model rotates with colorful axis indicators. On the right, a complex node graph displays interconnected nodes labeled ‘line1’, ‘resample1’, and ‘sweep1’, exemplifying a sophisticated workflow.
A simple line with four points is not only turned into a tube by the Sweep node, but also into a skeleton by the Rig Doctor. Depending on the asset, this saves us from having to draw the entire skeleton.

A 3D modeling interface displays a long, curved rig, constructed from a segmented mesh, with colorful control nodes connected to it. On the left, the 'Rig Pose Tool' is shown, while the right side details a node setup for rigging, featuring multiple interconnected elements, each with distinct shapes.
If the line and the Sweep node change, eight instead of four points, different scaling: Our mini procedural rig really does not care.

A stylized, 3D-rendered capybara model stands prominently in a neutral gray environment. Its plump, textured body is intricately detailed, showcasing realistic fur patterns. Beside it, a simplified skeleton structure forms an abstract view of the capybara's anatomy, with color-coded lines connecting key joints, emphasizing a creative design process.
A rather playful, but sometimes also useful, way to get a skeleton is the Labs Straight Skeleton node.

Binding / Capture Geo / Deform

Our freshly rolled joints do not yet know which geometry they are supposed to move.
For non-deforming parts, meaning everything mechanical and rigid, binding is very simple. The connected polygons are packed, given a name tag and assigned to their future joint in the Capture Packed Geo SOP node. Done.

Soft geometry that deforms within itself, meaning most of an organic character, goes into a Joint Capture Biharmonic SOP node. Here, weights are generated automatically and, out of the box, are very usable. Internally, this node creates a tetrahedral mesh. The geometry’s hollow space is filled with “3D pyramids” so that the weighting is calculated cleanly over the volume. More complex setups can consist of several of these nodes and can be manually “painted over” with a Joint Capture Paint SOP. Both approaches can be freely mixed if the mesh includes hard parts as well as soft elements, for example, a robot with rubber at some joints.

A colorful 3D model of a dog in hues of purple, green, and blue is displayed alongside a wireframe version of the same model on a gray grid background. On the right, a user interface showcases adjustment sliders for rigging parameters, enhancing the visual complexity and technical aspects of the modeling process.
The result of automatic procedural weighting via the jointcapturebiharmonic node. The underlying skeleton is on the left, the tet preview on the right.

To test the weighting, we use a Joint Deform SOP, fed with a Rig Pose node, where the joints can be animated, but please only for testing, followed by an optional Delta Mush node for smoother deformation. Everything else, meaning the rig logic and the animation itself, happens much more elegantly and powerfully in the realm of APEX.

APEX, rig and controls

The input is guarded by a Pack Folder or Packed Character node, which bundles the skeleton, mesh, optional guides, and graphs into a clean, packed structure.
A simple APEX setup after the Pack Folder node consists of two Autorig Component nodes, working in the Forward Kinematic and Bone Deform modes. A Configure Controls node handles the look, limits, and other settings of the controls. The actual animation happens in a Scene Animate node. The output from APEX, for example, for rendering, is found in a Scene Invoke node, which can also dutifully unpack everything again if desired.

Although this already gets you quite far, we are not even scratching the surface. More on that in a moment, including powerful APEX graphs, IK tags, skin controls and simple mesh exchange.

A 3D modeling interface displaying a gray articulated rig with a bent shape, illuminated by soft, diffused lighting. On the left, a panel lists various selection sets, while the right panel shows a detailed node tree for rigging, featuring labeled components highlighted in vibrant colors against a dark background.
APEX for starters. Completely sufficient for an FK animation.

Loneley bike: bicycle rigid body rig

So much for theory. Time for a real project. In a commercial, a bicycle without a rider is supposed to move through a single shot. Because of the intrinsic dependencies like travelled distance to rotation of the elements, and the not yet finally decided props (what kind of bicycle basket? What is in the basket?) versus project timing, it is a perfect test field for an APEX rig.

A close-up view of a pastel turquoise bicycle, showcasing its sleek rear gears and silver spokes gleaming against a dark background. The bike's design features a curved frame and orange safety reflector, highlighting a harmonious blend of modern style and functional engineering.
We do not want to animate any of this by hand.

My goal: the bike follows a drawn spline. The handlebar automatically aligns with the curve, and the wheels, including the pedals, rotate automatically according to speed or distance travelled. The pedals themselves should not simply point upward; that would be unrealistic, but they should rotate slightly forward or backwards, depending on their position. Add secondary movements such as the slight wobble that occurs while cycling.

The brake and the saddle should remain classically animatable, as should the overall lean when cornering. And of course, the travelled distance is the primary driver for all animations. Ideally, the bike can be grabbed directly by the saddle and pushed along the curve.

So we need a skeleton that sits precisely, otherwise the wheels wobble. Perfect for the previously mentioned Extract Centroid. To understand the logic of the automated dependencies, we dare to delve into the depths of an APEX graph.

This is where one of those YouTube captions could appear: “random bullshit job-title dude tries something banal for the first time.” Because how complicated can an APEX graph be if you know Houdini’s VOP nodes, visual operators, basically programming with nodes, well?

Geo Preparation

Before we deal with the peculiarities of the APEX graph, we divide the bicycle into logical elements grouped by planned joints, clean up a few inconsistencies, pack the geometry, assign materials, and assign the immensely important Name attribute. The entire rig is based on the latter.

A detailed 3D digital model of a bicycle wheel, showcasing a shiny metallic rim and intricate spokes, positioned on a gray gradient background. To the right, a geometric editing interface displays various adjustable parameters in a minimalist design, enhancing the technical atmosphere of the scene.
The individual rig elements of the bike. The Name attribute plays a central role here.

Skeleton & Capture

As already teased, we want to draw as little of the skeleton ourselves as possible and instead pull the joints from the existing geometry. With the wheels, this is very simple. Since everything is now available as packed geometry, an Extract Centroid node is enough, and we have the two centres of the wheels. Another Name attribute christens the freshly born joint, and a Rig Doctor helps with the transform attributes.

A sleek 3D modeling interface displaying two bicycle wheels, rendered in white wireframe against a gray background. The viewport showcases a grid layout, while the side panel organizes elements, including joints and details related to the wheels' rigging within the APEX environment.
Two perfectly centred joints thanks to Extract Centroid.


It gets more interesting with the pedals or the handlebars. Here, too, everything has to sit precisely or the rotation will not be correct later. But the same principle of Extract Centroids applies here too, except that we first isolate part of the geometry, for example, one element on the handlebar, and create the centre from that.

A 3D modeling interface displaying a Houdini rig. The top left panel shows a stylized rig with articulated limbs in a sleek, gray environment. The right panel features a bright green node network with labeled connections, illustrating the rig's structure and functionality, all set against a dark, minimalist background.
Three quick procedural joints for the handlebar, the brake and the bell. The bell was added only later, which did not negatively affect the rig in any way.


Step by step, we go through the individual logical elements created earlier and finally merge them into a whole together with only four manually drawn joints, general parent controllers, and the frame. The hierarchy is created by drag-and-drop in a Parent Joint node or in the Rig Tree panel.

A digital interface displaying a Houdini rigging workspace. On the left, a sleek geometric model with a bent armature is positioned against a dark gray backdrop. The right panel features interconnected nodes showcasing elements labeled 'skeleton1' and 'rigdoctor4,' organized around a central merge icon.
Great art skills, but that was simply all we had to create by hand here. And even those could have been extracted.

A digital interface displays a three-dimensional rig with connected lines in a dark environment. On the left, a geometric arrangement of nodes and wires illustrates a rigging setup. The right side features a list of parameters and merging functions, all rendered in a sleek, modern design.
The finished rig, including hierarchy.

The weighting itself is also done quickly with a Capture Packed Geo node. The previously packed geometry elements are all assigned to the new joints via name tag. That’s it.

A digital interface displays a 3D wireframe model of a bicycle, showcasing its intricate geometry, including handlebars and wheels. On the left, a detailed panel lists numerical data, while the right side features a settings menu with labeled parameters, all set against a dark, sleek background, emphasizing the technical design.
All geo elements are assigned to their respective joints or parents, and the weighting sits. No matter what happens inside the respective geometry from now on.

Packing for APEX & APEX setup

At first glance, the APEX node tree does not differ from our simple example at the beginning. We have the FK and Bone Deform node, followed by the already known Configure Controls and Scene Animate node. Only the Fuse Graph Autorig Component is new. But that one has teeth because it injects into our APEX graph, which controls the entire dependency logic and the alignment with the curve.

A detailed view of a 3D model of a bicycle positioned on a curved path in a dimly lit virtual environment. On the right, a user interface displays settings for geometry and rigging, featuring a list of attributes with labels and control options, emphasizing a structured workflow.
Basic APEX structure. As always in Houdini, exact naming and assignment of the elements are important. shp stands for shape meaning geometry. The route curve for the bicycle is packed as skel(eton).

The Graphene curve and the brain

Now it gets interesting. In theory, most of what we want to do in the graph, all the rotation based on the curve and the alignment to that curve, is only simple mathematics. Unfortunately, the nodes in the Graph are extremely numerous and low-level, and are not necessarily named as you would expect for VOPs.

One question did keep me busy for quite a while: how the hell do you get external geometry into the Graph? The solution is as simple as it is unexpected. You rename one of the ports of the parm node, the starter node, to the name of the geometry, including the suffix, here curve1.skel. You have to come up with that first.
But one step back. What are we actually seeing in an APEX graph? Some of the nodes look familiar. We only just placed Bone Deform as an Autorig Component node, and all our joints are also present as Transform Object nodes.

Meaning: all nodes we place in APEX generate an APEX graph under the hood, or a script, but that is another topic, and we can happily connect everything to everything and bring it into dependencies. After rummaging through the menus for a bit, it no longer feels quite so alien, and nodes such as rig_curveconstraint or transform_lookat sound promising for our plan.

A few things are still strange. Why are there, for example, no network boxes for structuring? Sticky notes will do in a pinch, but something can still happen here.

An intricate flowchart presents a complex network of nodes and connections in a dark interface, showcasing various lines and paths in a maze-like pattern. Blue and purple nodes stand out against the black background, highlighting key elements of the rigging process in a visually captivating way.
The entire Graph is not that large for what it does. Mainly, floats are converted to vectors and vice versa, with eight Multiply, three Add, and two Divide nodes in between. The rest is mostly the representation of the joints and rig nodes in the Graph.

Take the length of the curve (aka the perimeter attribute), divide it by the distance between the two wheels, add that to the current normalised slider, and use it as the u value of the new Curve Constraint. That may sound a bit complicated at first, but it is actually a fast and clear solution.

A digital interface displaying a node network from a software application. On a dark background, two nodes are arranged with connecting lines, labeled 'parms1' and 'geo:DetailAttribValue<Float>'. Each node features unique icons and colorful data points, emphasizing a modern, streamlined workflow in motion graphics design.
Because it cost me a bit of time: access to geometry or attributes is obtained by connecting the nodes backwards, so here from the input of the geo_detailattributevalue node to the input node “parms”. The newly appeared pin can be renamed with a middle-mouse click (aka Promote), and we will accept that. And exactly to the name, PLUS the suffix that we assigned in the Pack Folder. In this example, curve1.skel. And now we can access all the attributes on the curve.

A 3D wireframe model of a bicycle displayed against a dark gray grid background, showcasing its intricate structure. The bike features smooth lines and a simple design. Tools and nodes from a software interface are visible on the right, enhancing a sense of digital creativity and technical precision in the workspace.
Pay attention to axis alignment, friends! Fix via Rig Pose node BEFORE APEX.

(Interactive) Controls

A close-up view of a bicycle wheel, showcasing the intricate silver spokes radiating from the hub. A reflective orange safety reflector glows against the dark backdrop, adding a vibrant pop of color. The sleek metal contrasts with the rich texture of the black background, emphasizing the wheel's geometric precision.

In the Configure Controls node, we can not only recolour the rig control elements as desired and change their shape, or hide them, but also set rotation limits and skin controls. The latter allows you to pull directly and intuitively on the geometry instead of on some gizmos.

A detailed 3D model of a bicycle displayed against a grid background, showcasing a light blue seat and a black basket. To the right, a control panel reveals technical settings, with various components listed. The design emphasizes the bike's classic silhouette and functional features.
The saddle can push the bike. Put differently, the saddle is now the new controller for the rig element “Slider”, which was previously constrained to the curve in the Graph. Important: set Skin Shape Source to Base.shp and later activate “Use Click and Drag” as well as “Use Skin Controls” in the Animate node parameter window.

Secondaries & random motion

The actual animation happens in the Scene Animate node, which we will look at in detail in another article. In this case, only the saddle was pushed forward with the desired timing, and the lean was adjusted; the rest ran cleanly and completely automated—a dream.

So we continue here with secondary motions, meaning the random wobble or the time-offset forwarding of primary movements to small elements like the bell.
For this, we pull the skeleton crosswise via Unpack Character from the APEX stream, modify the desired nodes, and feed them back in with the new APEX Animation From Skeleton node.

This way, the skeleton exists completely as points, which can be wonderfully manipulated with noises or the Secondary Motion node. The latter transmits the movement of one joint to a target joint, with Time Offset, as overshoot or jiggle.

A digital interface showcasing a Houdini rigging workspace. On the left, a 3D grid contains slender, angular structures rendered in white wireframe, suggesting dynamic movement. To the right, various settings and parameters are displayed, emphasizing the intricate controls available for creating and manipulating geometry, highlighted by vibrant nodes and sliders.
The random wobble of the handlebar is reliably generated via Rig Noise, a node from the MOPS+ toolset. A few lines of VEX or a VOP will do as well. Or anything else you can think of to shove points around.

Last-minute changes

And if the model changes, if the director wants a bag in the bicycle basket, do we have to weigh and rig everything again? No, welcome to procedural land. The bag is integrated into the model as a packed object and assigned to its joint in the Capture Packed node. If necessary, a joint is added to the skeleton object or extracted from the bag.

A close-up shot of a turquoise bicycle revealing intricately designed components. The frame's matte finish contrasts beautifully with the glossy metallic parts. The brown leather saddle provides a warm accent, while the sleek curvature of the bike offers a modern and stylish aesthetic, set against a deep black background.

Adding or removing mesh objects from the rig is just as quick and easy. The rig remains stable, and even the animations remain intact. Rigging was fun for me for the first time; even the peculiarities of the Graph were more of an aha moment than a stumbling block. The semi-procedural animation generated this way is a huge timesaver and simply a cool process.

A digital interface showcasing a bicycle that appears to be in motion. The bicycle, equipped with a basket, is placed against a backdrop of blurred greenery and pathways, suggesting a vibrant outdoor scene. An overlay of software controls and rigging elements occupies the right side, indicating animation settings and manipulations.
The bicycle is on its path through the tracked footage. On the right, the entire node tree, from geo preparation to the final animation. The small irregularities in the ground are drawn directly into the spline.

Excursion: Blendshapes

We leave the bicycle behind and ask new questions. How easily can Blendshapes be created, exchanged, and, above all, how intuitively can the animator work with them? Nothing is less sexy than a window with dozens of cryptically and technically named sliders.
The setup in a nutshell: We have our base model and a blendshape sculpted in ZBrush. The latter goes through the Merge Packed node, where additional blendshapes would go directly as well, and all receive unique names, and is assigned to the asset via Character Blend Shapes Add without further settings.

The skeleton consists of a single point and is weighted onto the mesh via the Joint Capture Biharmonic SOP. This finishes the KineFX part, and we throw the first APEX node into the race: Pack Character, fed with the mesh and the skeleton. What is set here and why, see bike.

Three Autorig Component nodes, set to FK, Bone Deform, and Blendshape, complete the basic setup. So that we can operate the blendshapes interactively and enjoyably, we draw a curve over the mesh and feed it into the stream via Pack Folder. This gives us a custom controller, and we are… done.

Controlling the Blendshapes

Exchanging blendshapes requires only loading the new shapes via the File node or sculpting them internally. The still-quite-new Sculpt node saves the road trip to ZBrush for many applications. If it has to be a bit more, the plugin with the meaningful name “Z” helps with direct mesh exchange, including blendshapes and polygroups, from the maker of the Houdini Direct Modelling plugin “Modeller”.

The node stream itself does not need to be adjusted or changed in any way. No exaggeration, it really is fast to do. The fact that custom splines, for example, can also be defined as controllers and animated interactively in the viewport is worth its weight in gold.

A 3D sculpted model of a textured organic form resembling a creature, displayed on the left side of a digital interface. The software interface on the right showcases colorful block nodes and connected lines, indicating a sophisticated rigging setup, highlighted by a neutral gray workspace.
Here, the new Elastic Drag Brush was used to sculpt the geo into a Mario Kart memorial shell nut. And it was plugged into the existing Merge Packed node. As long as the naming matches the newly duplicated and slightly offset sliders, the functional controller appears automatically. Via Configure Control, the whole nut or a polygon selection could also be defined as a skin controller to grab and love.

Fast challenge: Let’s rig the cat

A fluffy, gray Maine Coon cat sits calmly on a textured, light-colored outdoor surface. The sunlight highlights its soft fur, and its alert eyes gaze toward the viewer. A long shadow stretches behind, contrasting with the bright background of a blue sky and striped awning above.

The editorial cat demands its tribute, and so the following question and challenge arises: how quickly can we get a complex four-legged IK system running? As few nodes as possible and completely free of graphs and scripts. Here, Houdini promises a fast solution with the TAG-based system. Joints tagged by us are automatically recognised, and the IK system is set up for us.

We create and name the skeleton for the cat’s left side as usual, using the Skeleton SOP node, and obtain the exact centre of the eyes via Extract Centroid. We do not use its official name, “Mrs Wigglebottom, Empress of Milbertshofen, Esq.” One Rig Doctor node later, we merge the points with the drawn skeleton and use a Parent Joints node for subordinating the eyes. Then we mirror it into a complete cat with the Skeleton Mirror node and weight the deformable part with Joint Capture Biharmonic and the eyes with Capture Packed Geo. This is quick and clean to do.

Anyone who wants to adjust the calculated weights manually can paint them with Capture Layer Paint. And now the most important part: preparation with tags. We assign an IK tag to the necessary joints BEFORE the APEX nodes, which the Autorig nodes will later pick up. For this, we use an Attribute Adjust Array node, mark the required joints and also name the respective leg segments, front left and so on.

A digital 3D model of a cat displayed in a software interface, showcasing a wireframe structure with articulated joints highlighted in white. The model stands on a gray gradient background, illustrating its skeletal rigging through precise geometry control elements on the right side.
Although the skeleton was drawn in side view, Houdini recognised and placed the joints almost correctly on the geometry right away, rather than just throwing them in the middle.
A 3D model of a walking cat rendered in a wireframe style, displaying intricate polygonal details. It stands prominently against a dark gradient background, highlighting the cat's form. To the right, a geometric node editor interface showcases a series of connected nodes, allowing for complex rigging adjustments.
Test phase before APEX. If a joint has been rotated in the wrong direction, Orient Joint or a second Skeleton node helps to fix the rotation manually. Joints that are not needed for capturing, like eyes, for the deformable part, can be deleted for this step only.
A digital interface displays a complex rigging setup in a 3D modeling software. On the left, a series of interconnected lines and nodes are visually represented with green and yellow markers, while on the right, parameters and settings are detailed in a sleek sidebar. The interface's dark background highlights the vibrant color of the elements, creating a focused, technical aesthetic.
Tagging the joints and respective legs.

IK and done

Into an APEX Pack Folder node with it. Watch the naming: the mesh as Base.shp (shape), the skeleton as Base. skel and the stream with the tags as Guide. skel. Then follow two Autorig Component nodes for FK and Bone Deform.
To finish, a Multi IK node, in which we assign the tags and the legs. That gives us the multi-IK system, including pole vectors. No matter if two, four or twelve legs. As long as the tags are set correctly, IK works. In the node itself, we can still set the behaviour of the IK solver, such as stretch.

That means we’re done. And because that actually went quickly, we still have time for a few other treats.

IK / FK switch

No IK rig is complete without an FK switch. In APEX, this is done with the Autorig Component node in IKFK Blend mode. Here, the IK segments, for example, the tail, are entered, and the controls immediately appear in the viewport.

Ear rig Mesh & Configure Control

With the bike, we could use a self-contained, pre-packed geo element directly as a controller. But what happens if we have one connected mesh? Can the ear be bent intuitively by simply pulling on the ear, definitely not recommended for real cats, aka rotating around the middle joint? Actually, and sometimes I am still surprised when things in Houdini really are super simple, this can be set up in a few clicks via a prim group created before the Pack Folder node and the Configure Control node, including rotation limit.

Automatic wrinkles. Time saved.

The wrinkle deformer introduced in H20.5 is phenomenal for character and creature animation, enabling very quick addition of interactive organic detail and, therefore, credibility. So naturally, there is an APEX Wrinkles deformer that can be created directly in the rig and later automatically generate wrinkles in the animation.

Nothing more needs to be done than to throw the APEX Add Wrinkles node into the stream and adjust it to taste. The node is clever, too, and outputs deformed geometry, which, of course, requires a high-resolution mesh. Because of the procedural approach, we can add a Subdivide to the cat further up, before capturing, and immediately get the necessary polygon density.

All tags, all weights remain intact. How nice. Or it outputs attributes that we can, for example, use to drive normal maps in the shader. The texture-based approach is, of course, more performant.

A detailed 3D model of a cat displayed in a gray wireframe, showcasing its anatomical structure with highlighted control points around its face and body. The design is set against a dark background with a user interface visible on the right, featuring various rigging options and settings for animation.
A sculpted grey 3D cat model stands prominently against a dark background, showcasing smooth, untextured surfaces that emphasize its form. To the right, a technical interface displays intricate controls and nodes for geometry manipulation, creating a dynamic contrast with the organic shapes.
Wrinkles. Old cat. Since we want to remain performant in APEX, the old Houdini trick suggests itself: animate on a low-res geo, then use Point Deform or Wrap Deformer to transfer the movement to a high-res mesh, and apply the wrinkles there at a much higher resolution. Of course, areas on the mesh can be excluded or amplified via attributes.

What about fur?

Hair and fur can also be animated easily with APEX. This is especially practical for stylised body decoration and feathers. Via Add Groom, we load the guide curves, define some hairs as joints and can animate the groom like the rest of the rig. For very dense amounts of hair, it is advisable for performance reasons to animate only the guides and, after a Scene Invoke SOP (Unpack Groom Guides), move the high-res groom with a Guide Deform. Game engine-optimised hair cards can usually be animated directly in all their glory.

A 3D model of a stylized cat head rendered in gray, displaying smooth curves and bulging eyes, with elongated whiskers enhanced by wooden textures. To the right, a node-based interface showcases components and settings for rigging and configuration, blending technical and creative elements.
With just one node, we load the (Guide) groom and define selected hair curves as controls.

A dark, immersive 3D interface displays a fluid animation of abstract shapes, resembling flowing black waves, positioned on a grid background. To the right, a control panel features labeled nodes with sliders and options for adjusting animation parameters, set against a sleek, dark-themed layout.
Via a Scene Invoke node, the animated grooms can be isolated or extracted from APEX and used as animated guides in a classic Guide Deform high-res hair workflow.

Tail(oring) IK changes

No creature project is complete without last-minute changes to the rig, so the cat wants an IK-driven tail, and we want to check whether such a not-entirely-trivial change is easy to implement with APEX. In theory, we only need to assign an “IK” tag to the joints in the tail and a name tag to the entire tail. And that is exactly how it is.

A 3D model of a cat displayed against a dark background, showcasing a wireframe mesh design that highlights its features. Positioned on the right is a detailed user interface showing geometry settings, with sliders and parameters focused on rigging and weight. The overall scene combines technical sophistication with an abstract visual aesthetic.
Through tagging, any number of IK chains can be added quickly.

Dogfight

Still not convinced how flexible and fast the system is? Let us turn the cat into a dog. For that, we load a new mesh, move the joints to the correct position, and we are done. Completely. Everything transfers.

A 3D wireframe model of a dog in gray, set against a dark backdrop. The dog stands on a circular green platform, with orange cubes positioned at its feet. The mesh lines outline its form, emphasizing the playful design, creating an inviting and dynamic visual composition.
Getting a dog in less than five minutes. The complete rig functionality is immediately adopted thanks to procedural capturing and the tags. Only the skeleton was manually adapted to the new geometry. Even the skin controller for the ear works, thanks to the bounding box group.

The Mythical Autorigbuilder

SideFX advertises the Autorig Builder as a tool to quickly convert a mesh without a skeleton into a fully animatable character. Sounds good, but we urgently need to clarify what the tool is, and especially what it is not. It is NOT a one-click, ready-to-animate solution, as one might assume. Rather, the Autorig Builder is a rigging and skeleton authoring tool. It interactively creates a detailed skeleton, including fingers in the viewport via drag-and-drop, or builds on an existing one, along with controls and the underlying APEX graphs. The final weighting must be performed separately as before.

A vibrant, orange robotic character is centrally positioned in a 3D modeling interface, showing detailed mesh contours. Surrounding the figure, a grid-like background enhances the spatial feel, while colorful joints and controls indicate rigging points. A multi-functional tool panel displays various components for customization below, capturing the intricacies of character design.
Via drag-and-drop to a finished skeleton or even rig. You can find this example on the SideFX page: https://www.sidefx.com/contentlibrary/harry-rig/
A detailed 3D rigging interface showcasing a stylized humanoid character with a bright orange torso and limbs. The interface features various colorful control points and guides surrounding the character. A gray background emphasizes the intricacies of the rigging tools and settings, highlighting the animation process.
Whether and how far the arm can be stretched can be set via a slider. Such more complex rig logic is created quickly with the autorigger.

What does this construction kit bring? Time savings with full control and a clean skeleton. And if that skeleton already exists in broad strokes, the tool builds on it. It quickly adds otherwise time-consuming elements such as fingers and toes, and complex rig logic such as IK/FK blend, stretching, or reverse foot, along with various sliders.

The whole thing can be saved as a rig template and immediately applied to other meshes. The system is not closed in itself. Everything we create here can be adjusted and expanded in the following nodes, even if it is only the colours in a Configure Control node. This makes the tool more valuable than a one-click solution that is rather rudimentary (see Mixamo) or not cleanly adjustable.

Excursion: Working with MoCap Data

Mocap Data I Apex Retarget

Similar to the bike’s secondary animations, we first bring the packed character back into the land of points and KineFX via the Unpack Folder. Here, as in KineFX times, we perform retargeting using the Rig Match Pose, Map Points, and Full Body IK node. KineFX is incredibly flexible here, so loaded movements can also be applied joint by joint with Skeleton Blend SOP, and a Frankenstein animation can be created.
Via Animation From Skeleton SOP node, we feed the animation back into the APEX stream. Via Scene Animate, the mocap animation can be layered and adjusted.

A flowchart depicting a rigging workflow for animation, featuring colorful blocks labeled with functions like 'unpack folder' and 'FBX Animation Import.' Arrows connect actions in a logical sequence, emphasizing the organizational structure and process of character rigging in animation software.

Mocap Data II Assets with Mocap

Another use case. Simple task for the basic principle: we load a bird from the lovely Zoo Mocap Database, basically free to use, and let it fly along a path. For this, we import the FBX as Character Import, which gives us the correct node structure right away, including Bone Deform.

To turn the single-wing flap into a loop, we convert the Animated Pose into a Motion Clip. A brief but important insert: a Motion Clip in Houdini KineFX is not a saved animation, as in Unreal, but rather a representation of time in space. Aha. Ok. What?

At this point, an image helps:

A vibrant green wireframe model of a character in motion, set against a dark gray grid background. The intricate lines, resembling a digital skeletal structure, connect dynamically to control nodes on the right side, showcasing an advanced rigging process. Bright nodes and connections illustrate the complexity of the animation setup, providing a sleek, modern aesthetic.
What we see here are all frames of the animation evaluated simultaneously as geometry. And because it is now “only” geometry, aka points, we can modify the animation with all kinds of tools.

How to…

First, we want to create a cycle using the MotionClip Cycle node. Here, locomotion can also be added to move the bird from the spot. The final step in every MotionClip modification is the MC Evaluate node, which converts geometry back into skeleton animation. We promptly put that into a Path Deform node and animate the Offset parameter so that it fits the wing flap/path length. We create the path itself with the Curve nodes, give it a nice Orient value directly in the Curve tool with the “O” key so the bird leans nicely into the curve, resample the thing with even subdivision and off it goes into Path Deform.

A 3D modeling interface showing a green rig outline with a character represented by blue and red markers. To the right, a node-based setup displays connected boxes annotated with various parameters, highlighting intricate controls for geometry manipulation and animation design.
Sweet and simple: Path Deform modifies the skeleton, and the skeleton modifies the geo without stress.


If the bird is supposed to glide along the curve rather than flap, we can slow the animation speed using an MC Retime.

A digital workspace features a 3D model of a green object on the left, intricately designed within a grid layout. On the right, coding elements and settings appear in a dark, sleek interface, highlighting a structured flow of connections and functions in a clear, organized manner.
Speed retime in the curve via keyframes 1 > 0.1 > 1

For a quick look to the side, the Rig Pose node immediately after the Path Deform handles it. Here, the joints can be animated regularly. For heavy animation, however, one should animate in APEX instead. My point here is only to show the open principle: everything is made up of points that can be modified at any time, with all kinds of tools. For diabolical birds, the neck joint could be rotated 360 degrees according to a noise pattern with a Rig Noise (MOPS+).

And because Houdini is the land of unlimited possibilities, here is another way: instead of deforming the skeleton onto a path, we copy-to-point the loop onto a point that travels along a curve. Or we use a particle simulation and apply the cycle to each particle, including the time offset.

Machine learning in rigging & animation

ML Deform

SideFX’s AI policies, which hopefully stay that way, are designed to support users with intelligent tools so they can reach their goals faster. Following this credo, there is, for example, the ML Deform SOP in the CFX area. It replaces Bone Deform, provides nicer mesh deformations, especially in extreme situations, and is mainly trained locally with your own data, such as muscle simulations. For the latter, there is, among other things, ML Pose Generate. This node generates a series of random character poses, which is essential for creating an extensive training data set.
A practical example of the ML Deformer for groom and fur can be found at SideFX:
https://www.sidefx.com/tutorials/ml-groom-deformer/

Kimodo inside Houdini

The third-party plugin Houdini AI Assist takes a hybrid generative-open approach. The tool by Radu Cius offers a Kimodo integration and Nvidia’s text-to-motion model, aka the Kinematic Diffusion Model, directly in Houdini, and can pass the results to KineFX as open data structures or take Houdini geo, such as curves, as input. I have not tried the plugin myself yet, but it sounds worth watching. Kimodo itself can be tested online. The generated movements, however, are devoid of any emotion, details and character, and are only a starting point or rough blockout.

Rigging is only the beginning. In the next article about the character topic, everything revolves around:

Ragdoll: Here, every character is hit by the Bullet solver. Great for letting our protégés collapse correctly, both procedurally and physically, during falls, explosions, or impacts. Including blending between manual animation and simulation.

Dynamic Motion, aka Physics: The Projectile and Pendulum Motion SOPs automatically calculate physically correct flight and swing paths between your rough keyframe blockings. Not only good for baseball.

Crowds: Mass simulations on steroids. Because our skeletons are ultimately only points and attributes, the crowd system can procedurally chase thousands of agents through difficult terrain, mix clips, and then knock everything over with ragdoll physics.

MetaHuman Plugin: Unreal’s MetaHumans can now be imported into Houdini together with Control Rig and animation. For the impatient: https://www.sidefx.com/tutorials/project-violet/

One more thing: Houdini 22

The H22 keynote, streamed a few days ago, showed some great workflow improvements for rigging. Nothing changes about the basic principle; it is even expanded further. gSplats, for example, are also only points with attributes and can therefore be animated in the same way as polymeshes.

You can read an overview of the new features here on DP: https://digitalproduction.com/2026/06/23/here-comes-houdini-22/. After the release, we will, of course, take a closer look at everything.

The truth …

Rigging actually works well and fast and is easy to learn, super flexible and… is fun for the first time?!. Once you have understood the nomenclature and the corresponding rule set, and this time, untypically for Houdini, it does not have encyclopedia thickness, you have an incredibly strong and flexible system at your disposal.

Anyone who wants to can do the most complex things in the Graph script, and anyone who does not want that gets damn far with the autorig nodes. Even the Autorigger for artists without rigging experience, on a tight deadline, works excellently.

What personally gave me a positive feeling, especially with the bike project, is that thanks to the procedural foundation, exchanging or adding assets or elements after the initial setup is super fast.

It is Houdini, after all

As always with Houdini, one could say the setup takes longer, but the exchange and adjustment are faster, though this old rule quickly diffuses here. With the current iteration of APEX and KineFX, even setting up complex elements is quick. Whoever wants can, of course, still invest their time in massive graphs or APEX scripts and thus create even more complex rigs.

The cat model comes from a commercial from the pre-APEX era and was completely rigged and animated in KineFX. Compared to back then, the rig with APEX was created in a fraction of the time and with a fraction of the pain. Even if APEX is “something new to learn again”, it is a big gain and saves a lot of time and frustration in the end.

Downside: you have to know things, learn the APEX vocabulary, for example, “how exactly do I bind the tags?” At the beginning, that is often not clearly obvious and follows its own logic. This also applies to the nodes in the APEX graph, which are not necessarily named the way one would expect with some experience in VOPs.
These hurdles are easy to overcome, however. Download the free Apprentice version of Houdini, grab one of the included test characters or the cute Harry robot and try it yourself.

Further reading, for Basic APEX rigging: SideFX’s Eye Bot
https://www.sidefx.com/tutorials/intro-to-rig-builder/

The Autorig Builder, which Magnus Møller has created, is a detailed and very watchable Guide for Entagma:
https://entagma.com/new-in-houdini-21-apex/

And for everyone who likes to reverse-engineer systems, the “Harry Rig” from SideFX is a good option.

Deep dive into Graph & Script