PoseLib is based on a donation system. It means that if poseLib is useful to you or your studio then you can make a donation to reflect your satisfaction. Thanks for using poseLib! 😀

Number of times downloaded: ~ 23,000

Number of donations: 13


It is strongly advised that you backup your existing poseLib directory before you use the new version!



PoseLib supports Maya 2011, 2012, 2013, 2014, 2015 and 2016.

DOWNLOAD: Last updated 8 November 2015


Click on the icon to download poseLib version 6.6.0:

  • Fixed support for Macs (thanks Ludo!)
  • Fixed problem with not being able to create a new project
  • Fixed bug with switching projects
  • Fixed choosing text editor for Macs and PCs

(See the complete history at the bottom of this article)



For Windows:

1) Copy poseLib.mel and poseLibModule.py to your …\Documents\maya\20xx\scripts folder.

2) Copy poseLib.png to your \Documents\maya\20xx\prefs\icons folder .

3) Restart Maya if it was open.

4) Type:

source poseLib.mel;



For OSX:

1) Copy poseLib.mel and poseLibModule.py to /Users/<yourname>/Library/Preferences/Autodesk/maya/20xx/scripts.

2) Copy poseLib.png to /Users/<yourname>/Library/Preferences/Autodesk/maya/20xx/prefs/icons.

3) Restart Maya if it was open and source poseLib.mel. Finally call the command poseLib.



You can use this script to record a pose for any object in Maya (more precisely anything that has keyable channel attributes). Whether it is the hyper complex character rig you just created or a simple nurbs sphere or lambert shader: you just have to select the object(s), hit the new pose button, and a pose file is created in the relevant directory, along with the corresponding icon (a .bmp file).

  • Works on anything at anytime (no character map or specific rig layout or special naming required).
  • You can blend between the current pose and the clicked one by holding down the ALT or CTRL key and clicking on a pose.
  • Lets you choose the icon size you like (from 32×32 to any custom size/ratio up to 512×512).
  • You can also apply only specific channels from a pose simply by selecting them in the channelBox.
  • Works with referenced/unreferenced characters (you can even choose the namespace on the flight).
  • Lets you organize your poses by characters (e.g.: Babar, Tintin…) and categories (e.g.: Face, Body…).
  • You can rename, delete, replace or move any pose from any character or category.
  • You can quickly select the objects/controls that are part of a specific pose (no need to remember what was part of the pose).
  • You can also remove, add or replace specific objects/controls in a pose.
  • You can rearrange the icons freely.




PoseLib stores poses in a “category” directory, which is itself stored in a “character” directory, which is itself stored in a “casting” directory, which itself resides in a “archetype” directory. Sounds complicated, so here’s a diagram of the way things are organized:


The Archetype (or “Type”) directory: This is where the different types of assets are separated. Usually you find “chars” for characters, “sets” for sets, “props” for props, “cams” for cameras, etc…

The Casting (or “Cast”) directory: This is where you separate the main actors (“main”, “primary”, “hero”, etc…) from the rest (“crowd, “secondary”, etc…).

The Character directory: This is where you find the names of the characters, or the sets, or the props, depending on which branch you’re in at the archetype level.

The Category directory: This is where you find the poses themselves. Categories could be “face”, “body”, etc…

A valid question would be “Why do we need archetype or casting folders?” Because poseLib is a tool used in production on movies such as “Despicable Me” and “The Lorax”, and we have hundreds of characters, many sets, props, etc… And it would quickly become tedious for artists to have to scroll through huge messy lists of names. Separating things by type and importance allows us to keep things clean and readily accessible.

The poses themselves are .xml files and the icons are .bmp files. So a pose displayed as “toto” in the UI is made up of two files: toto.xml (which stores all the controls and attributes settings), and toto.bmp (the icon captured when the pose was created).



The library status is either “Private” or “Public”. The “private” path should point to your private library, where you store your poses and organize things the way you like. The “public” path should lead to the poses that are available to other animators.

Again, this is most useful if you’re in a studio structure and you need to share poses while keeping things separated between you own playing ground and the common library. If you don’t need that, then the private path is the only one you’ll ever care about.



Creating a new pose:

  1. Select the controls for which you want to record a pose.
  2. Click on the “Create New Pose” button.
  3. Move the camera in the little preview camera frame to define the way the icon will look like.
  4. Click “Create Pose”.

Once the pose is created, it will appear automatically in the list of poses available (they’re sorted in alphabetical order).

Note: You can move poses around by middle-mouse clicking them and drag-and-dropping them where you want.

Applying a pose:

Just click on a pose icon. It works differently depending on what you’ve selected:

  • If you don’t have anything selected, poseLib will attempt to apply the entire pose.


  • If you’ve selected some controls the pose will just be applied to those. (You get a warning if nothing of what you’ve selected is part of the pose.)

If you hold down the ALT or CTRL key when you left-click on a pose, only a fraction of the pose will be applied, in effect progressively “blending” as you click between the current pose and the clicked one. You define the amount of the pose being applied with the “ALT/CTRL Pose” slider.

Note: Remember you can also apply a pose only to the selected channels in the channelBox!

Editing a pose:

Right-click on the pose icon; A menu will appear, letting you: Rename, Move, Replace, Delete, or Edit the pose.
Replacing the pose simply means that you don’t have to go through the process of re-capturing a new icon.

The edit sub-menu will let you: Select the pose’s controls (if you don’t remember what was part of the pose), Add/Replace the selected controls (they’ll be added if they weren’t part of the pose, or replaced if they are), or Remove the selected controls. The “Ouput Pose Info” will print out information (pose author, when the pose was created, modified, etc…) about the pose in the script editor.



When using a referenced rig with a namespace, you have three choices:

1) Use Selection Namespace: This means that when you click on a pose with some controls selected, poseLib will apply the pose if those controls were parts of the pose, regardless of the namespace stored in the pose. This lets you apply a pose recorded with a certain namespace to the namespace of your selection. For example, if the pose only contains a control named “Tintin:head_joint” and your current selection is “Gandalf:head_joint”, the pose will be applied. Basically this lets you apply a pose from a character to another character.

2) Use Pose Namespace: This means that poseLib will only apply the pose if the pose’s controls and namespaces are present in your selection (or in the scene if you don’t have anything selected). Again, if the pose only contains a control named “Tintin:head_joint” and your current selection is “Gandalf:head_joint”, the pose will NOT be applied. This is so you can record a single pose containing multiple characters and still only apply the pose to the one selected character.

3) Use Custom Namespace: This means that the pose will only be applied to the controls whose namespace matches the one defined in the text field.

Note: The afore-mentioned namespace options play no role when saving poses: the namespace options are only relevant when applying poses.




Now if you want to create a new entry for a character name or a category, just click on the “Edit Options” button.

Everything should be self-explanatory in there. The only concept to remember is that categories are actually sub-directories located inside the characters directories.

Keep in mind that when you delete a pose, it does not actually get wiped-out from the directory; It is merely renamed with a “deleted” suffix. So you can always retrieve that pose or character/category you deleted by mistake… 😉


This is where you choose the icons’ size and their background color. Note that when you apply a new icon size, the icons themselves don’t get resized; It just means that from now on the icons you capture are going to be of the specified size. In other words, it doesn’t affect the existing icons’ size.


This is where you choose poseLib’s directory (where poses will be saved).
“Change Location of poseLib Directory” button: You just browse to where you want poseLib to store the poses. It has to be an already existing directory. If the check box above the button is checked, the directory “poseLib” will be automatically created inside the chosen directory.

Bookmarks: When you have to switch between different projects all the time it can be cumbersome to have to click your way through every time. So when you choose a new directory for poseLib, it’s added to the list. That way, next time you only have to double-click on the entry in the list to quickly set the directory accordingly.

Text Editor:

This is where you choose the text editor to be launched when manually editing a pose.



The icons for my poses come up as red squares:

Check the Images path of your current project (in the Project Manager). It should just say “images” or something similar.

I keep getting the “# Error: NameError: name ‘poseLibModule’ is not defined” error:

That’s because you have to source poseLib before you launch it. Please follow carefully step 4 of the installation instructions. There are a bunch of similarly named directories in similar places; make sure you didn’t mistakenly copy the files to the wrong ones.

I am sure I copied the files to the right folders, but I still get the “No module named” error:

Then try to edit the “Maya.env” file in your “…\maya\20xx” directory and add the following line:

PYTHONPATH = C:\[…]\maya\20xx\scripts;

… Where you need of course to indicate the correct path (where you copied the files), as well as the correct Maya version.

Note: Be aware that you could have several Maya.env files in different directories (eg: in “…/Documents/maya” or “…/Documents/maya/20xx”. But Maya will only look at ONE of them (the first one it finds). So make sure it’s the right one!





  • Support for Maya 2014 and up!
  • Reorder icons!
  • Colored icons!
  • Too many changes to list here!


  • Added buttons to resize the width of the Options column.
  • Fixed namespace bug when saving poses for referenced blendshape nodes.
  • Selected channels are not automatically deselected anymore.
  • Added functionality to save pose only for selected channels.
  • Fixed a bug with some poses icons not showing up (but included in the counter).
  • Fix Archetypes/Casting management bugs.
  • Fixed right-click menu not displaying properly in Maya 2013.
  • Now only shows poses whose file actually exists (no more empty red icons).


  • Fixed a bug with the Options window not opening the very first time it’s called.
  • Fixed a bug where old poses conversion would fail due to CRLF symbols.
  • Fixed a bug with old poses conversion ignoring the last character of a pose file.
  • The projects menu in the Path options tab now accurately reflects the current poseLib project.
  • Removed useless warnings when a character or category is not found.
  • Fixed a bug with the Public path not being properly updated.
  • PoseLib now handles cases when switching to a project without an existing proper directory structure.
  • Fixed a bug when switching between Private and Public library status.
  • Fixed a bug with setting a project to a networked path.
  • Fixed a bug wen selecting a pose’s controls while using a custom namespace.
  • Conversion of old poses does not truncate the first word before a “_” character in the pose name anymore.
  • Fixed a bug when creating or applying a pose with controls devoid of keyable attributes.


  • Fixed a nasty bug that could crash Maya when deleting a pose.


  • Fixed a bug with blendshapes when saving and applying poses.
  • Fixed erroneous user warning reporting success when the pose was not applied.


  • Added support for Macs (OSX).


  • The custom namespace bug has been fixed.
  • Correct poses are now saved when selecting a blendshape node. (thanks Eric)
  • Addition of “Force Exact Namespace Only” option (to be used when applying a pose containing multiple characters).
  • Reordering of the icons position has been added again, but this feature remains tricky due to a new Autodesk bug with shelfLayout.


  • The scroll bar for the icons is back! (Autodesk fixed at last the famous shelfLayout bug)


  • Fixed a crash that happened when renaming a pose.


  • Removed the need to click on “Preview Icon” before creating a pose.
  • Added support for Linux.
  • The “blue ball” bug that happened when capturing a pose on a fractional frame number is gone.


  • Fixed a bug that caused some poses not to be visible.
  • “/poseLib” is not systematically appended at the end of the current path anymore.


  • Fixed a bug on Maya 2008 which caused the buttons to be invisible when creating a new pose.
  • Fixed a bug on Maya 2008 that happened with older Maya versions (6.0, 7.0, etc…) when trying to create a new pose.


  • Fixed a silly bug that prevented poseLib to launch!
  • Older Maya versions (Maya 6.0, 7.0, etc…) are supported again.


  • Fixed a bug that would cause the icons to render as black silhouettes (Windows).
  • Added access to capture camera’s focal length, near and far clip planes in the Options window.
  • Fixed a bug that would cause the icons not to show at all after capture (Windows).
  • Reverted to .bmp image format on Windows and .xpm on Mac and Linux.
  • Fixed a situation where the previewed icon would revert to wireframe right away.


  • Mac support officially added (a big thank-you to Ludo for testing it on OSX!).
  • Fixed a bug where pressing the CTRL (or ALT) key would not properly apply a fraction of the pose.
  • Fixed a problem when a pose would not be applied if there were more than one control with the same name in the scene, even though one of the controls was specifically selected.
  • User can now choose any color for the icons button background (Windows only), not just the black/gray/white options.
  • User can now choose the color of the capture camera’s background.
  • Icons are now rendered using Maya’s software renderer, so any normal map/bump map/light effects are visible on the pose icon.
  • Poses can now be captured even when current time is 0 (or a negative frame number).
  • Switched to .xpm format for the icons to insure better compatibility with OSX and Linux (existing .bmp icons are still supported on XP/Vista).
  • Added option to manually set poseLib path in Options window.
  • Removed wasted empty space around icons (tighter GUI look).
  • Better icon name placement (centered under the icon picture).


  • Fixed a situation where the icon preview would disappear as soon as it appeared (and revert to the wireframe view).
  • Fixed a display bug on Linux where the frame for the namespace options would appear with a height of 1 pixel.
  • Fixed a user name bug on Linux when creating poses.
  • Fixed a silly bug when previewing icon which failed to render the icon altogether.
  • User can now apply a pose simultaneously to multiple selected characters (referenced or not).
  • Changed the far clip plane of the capture camera to 10000, which fixes a situation where your character would disappear when zooming way out.


  • The pose icon’s proper position is now preserved when replacing a pose or adding/removing controls.
  • Focal lens of capture camera changed to 200 to avoid too much perspective deformation on icons.
  • PoseLib’s confirmation windows (delete/replace pose, add/remove controls, etc…) now always appear over poseLib’s window, rather than Maya’s main window.
  • Existing characters and categories now get properly recognized even when launching poseLib without sourcing it first.
  • Fixed Maya crash when renaming poses in certain situations (just press enter key to validate new name).
  • Added support for .xpm icons.
  • Added Linux compatibility.
  • Added preliminary Mac OSX compatibility (still a problem with the icons showing red though :( ).
  • Added support for Maya’s Character Sets.
  • At launch time poseLib now directly displays the proper category without briefly showing the very first one.
  • You can now quickly apply a pose to selected referenced controls even without setting the proper namespace; poseLib will infer the namespace from the first object selected, resulting in a much more flexible workflow.
  • Added a much-requested “Isolate Selected” feature when capturing icon (right-click in the capture view).


  • Added: User can now resize freely the poseLib window without having to click on “Shorter” or “Taller” buttons.
  • Added: User can now rearrange freely the icons’ positions by middle-mouse dragging them around. Click on “Save Preferences” to save the icons’ new position (see the troubleshooting section for inherent limitations).
  • Fixed: Pose files don’t have the null character at the end of each line anymore.
  • Added: Cleaned-up the main UI of unneeded controls and added an “Online Help” button linking to the poseLib page.

– Added: User can now directly edit a pose text file through the Edit Pose sub-menu.– Added: User can choose a text editor program in the Options window (default is wordpad.exe).– Added: Textures can be enabled/disabled in the Icon Preview window, as they sometimes can get in the way of readability. v4.2.3:
– Fixed a situation when the Rename Category or Rename Character windows would stay up when poseLib was re-launched.– Fixed little UI details. The Capture Icon window should now look a bit cleaner before and after preview. Same with a bunch of other miscellaneous windows.– Updated: Spaces are now allowed in the poseLib paths. e.g.: “C:\Documents and Settings\My Name\Maya\poseLib”.v4.2.2:
– Added an incentive (or a warning, really) for the first-time user to manually set poseLib’s path. This should clear up some confusion regarding characters list clashing with project directories. My bad, my bad!

– Added (very) preliminary Linux compatibility (bad GUI and very unstable overall). :-(
– New feature: You can now select individual channels from the channelBox, and the pose will be applied only to those.
– Fixed a bug when deleting a character from the option window that would close the option window and force the user to reopen it in order to proceed with any further changes.
– Added backward compatibility with Maya 6.0.
v 4.2:

– Added support for blendShapes; You can now select “raw” blendShapes like any other control (thanks to Oli for testing this one).
– Fixed an annoying bug with the icon capture window that wouldn’t correctly show the preview icon if the size was greater than 100 pixels, and often even hid the capture buttons themselves (!).
– Fixed a bug that would change the icon’s size back to 50×50 every time you re-launch Maya (thanks to Didier and David for bringing this one up to my attention).
– Updated the incremental behavior to be triggered either by the ALT or the CTRL keys (whatever works best for the user).

v 4.1:
– Added a “bookmark list” feature in the poseLib’s directory option window to easily switch between often-used projects without having to click you way through every time.
– Fixed a bug where the icons wouldn’t show up after capture (red squares) if the “images” directory path was set in an absolute way instead of relative.
– Fixed the window’s title bar to reflect poseLib’s current directory.

v 040e17:
– Added the feature to apply a pose by increments (by holding down the ALT key and clicking on a pose): It will progressively blend between the current pose and the clicked one. Idea and code provided by Keith Lango. Two thumbs up for the Man!!!
– Added a button in “Options” to open Windows Explorer in the current poseLib directory (to facilitate organizing files/poses).

v 040e16:
– Fixed a bug when “special attributes” on the selected controls would crash the script when saving a pose.
– Preferences are now automatically saved after choosing the path to the poseLib folder.
– The script is re-launched and the characters/categories refreshed after setting the poseLib path.
– Added a “Get namespace from Selection” button (for lazy people like me).

v 040e15:
– Changed the startup default poseLib directory to now point to the user’s default project.
– Changed the icon capture camera’s focal length to 100, to avoid weird perpective deformations on the icons.
– Changed the “Apply Pose” proc to keep any attribute requiring a “-type” flag from crashing the script.

v 040e14:
– Added a “Directory Location” choice in the options window to choose the poseLib directory.

v 040e13:
– Various minor code cleaning.

v 040e12:
– Changed the way the code was making an assumption about the referenced character’s top node. That should make the referenced behavior much more reliable.
– Fixed a really stupid bug in the referencing code when selecting the pose’s controls (thanks Chris).
– Fixed a UI display bug (where the main window’s size would get weird after changing categories).
– Fixed a bug when after creating a new category and saving the preferences the icons wouldn’t match the choosen category at startup.
– Changed the place of the “Select Pose’s Controls” menu and put it on top of the first right-click menu, because it’s pretty useful after all (and it’s got nothing to do with editing the pose anyway). :-)

v 040e11:
– Added buttons to make the UI taller or shorter (by increments of one row).
– Fixed bug with selecting poses controls (forgot to implement new ref system!).

v 040d:
– Changed the way poseLib deals with referencing.
– User can now type-in spacename (with the advantage that now poses can be used among different characters without having to copy them)

v 040c (beta):
– Changed the pose file format to remove the path name from the controls (that way, even if the hierarchy changes, the pose will still work).
– Ref/Unref choice is now only relevant when applying a pose.
– Temporarily disabled “smart” mode.

v 040b (beta):
– Fixed a bug in the “Preview Icon” proc that would consistently jump back to the same frame in the timeline.

v 040a:
– Added “Smart Mode” to apply the pose regardless of the ref mode.

v 040:
– Changed pose file format (no backward compatibility, unfortunately).
– Added ability to save/apply poses in ref/unref mode, even with characters having same name-controls in the scene.
– Added ability to save/apply a pose to multiple characters/objects at once.
– Fixed having to apply pose twice (just remember that the ik/fk switch attribute has to come before the hip or shoulder joint).

v 030f1:
– Improved overall stability.
– Fixed “Select controls from pose”.
– Fixed “Remove controls from pose”.
– Added “Add/replace control to pose” feature.
– Revamped GUI layout.

v 001:
– Basic principle working.
– Save icon for pose.

  1. Seith
    April 16th, 2017 at 10:59 | #1

    Email sent! :)

  2. Seith
    April 16th, 2017 at 11:01 | #2

    I still use an older version of Maya and as a result the script doesn’t support Maya 2017 (yet), sorry.

  3. Seith
    April 16th, 2017 at 11:05 | #3

    I agree a mirror tool is indispensable but it is not really the purpose of poseLib: rigs are very different between studios/productions and it would be impossible to try and guess all the varying rigging configurations. Usually in a studio the rigging department provides tools for things like mirroring as it is very much linked to choices made during the process of building the characters.

  4. ama
    September 3rd, 2017 at 11:25 | #4

    Sorry,I cant download it from the link.It tells me that the file isn’t there anymore.

  5. Seith
    September 16th, 2017 at 08:20 | #5

    Hi, I just fixed the link. Sorry about that!

Comment pages
1 2 3 4 19
  1. December 29th, 2007 at 06:34 | #1
  2. September 30th, 2008 at 12:11 | #2
  3. July 2nd, 2010 at 12:23 | #3
  4. January 18th, 2012 at 14:01 | #4
  5. March 23rd, 2012 at 21:00 | #5
  6. October 17th, 2016 at 14:00 | #6
  7. October 9th, 2017 at 20:48 | #7