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. Todd
    August 7th, 2014 at 23:39 | #1

    Great work here! Would love to have lighting options for icon creation. Specifically, just using the “use no lights” option. Or is there some way to do this by editing the camera in use.

  2. Seith
    August 20th, 2014 at 11:21 | #2

    Thanks! Unfortunately there’s no option yet to capture an icon with a “no lights” look. It should be possible but I haven’t had the time to look into it at this point…

  3. September 9th, 2014 at 17:49 | #3

    Hey Seith 😀

    I saw that so few of people donated for this awesome plugin. I started using it when I was in college, so I didn’t have the funds to really give back. So I think I became your #8 donation 😛
    Looking forward to that 6.5 update as I too am getting the “Open, Edit, Edit Pop-Up, Delete” bug when I right-click on the icons instead of the intended options.

    Working on Maya 2013 x64
    Windows 7 Ultimate

  4. Hugo
    November 30th, 2014 at 00:17 | #4


    Thank you for this great tool. It’s awesome.
    I was just wondering, I cannot seem to arrange the pose Icons. When I create one, it just places it in the middle of the pose library window and they just add up one after the other. I cannot rearrange them. Have you had this issue?



  5. Seith
    December 7th, 2014 at 12:39 | #5

    Normally it should be possible to rearrange the icons by middle-mouse click-and-dragging them. Doesn’t that work anymore?

  6. Wolfor
    February 25th, 2015 at 11:57 | #6

    Hi Seth! First off, thanks for this awesome tool!
    I took the liberty of adding a few comments to the ‘doesn’t work in 2014’ comments on Creative Crash on how to fix that rightclick problem, I hope you don’t mind me doing so…

    I am currently running into the problem that the ‘open pose in text editor’ option only works if there are no spaces in the pose name, or the file path.
    Since there are quite a few dependencies to said file paths on my computer, I can’t change them at the moment, so would you know how I need to change the $poseFilePath variable to convert spaces to make windows understand them?
    I’m using windows 7 x64.


  7. Seith
    February 25th, 2015 at 13:19 | #7

    Hi Wolfor. Unfortunately this a Maya limitation, as mentioned here: http://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/GUID-228CCA33-4AFE-4380-8C3D-18D23F7EAC72-htm.html

    Basically having spaces in a Maya path can work, but it’s also a source of problems (ie: icons are not recognized if there are spaces in their paths, etc…). And the problem here is that the command is executed by Windows, which does not support spaces in a command line. So there might be a solution but I’m not aware of it. Please let me know if you do find out…

  8. Wolfor
    February 26th, 2015 at 10:55 | #8

    Hi Seth! Thanks for the quick reply!

    I was hoping there is a way of using a placeholder for the spaces (like the ‘%’), and just wasn’t sure about which one I am supposed to use for it…
    I even would have gone so far as to hardcode the actual path into the mel script, since I use the same poselib directory for all my projects on all my maya versions.

    But if that doesn’t work I can still move the poselib directory somewhere else and rename all poses, I was just hoping for some solution that might not take up so much time, haha 😀

    Anyway, many thanks for your help! Really appreciate it!

  9. Hugo
    March 2nd, 2015 at 22:57 | #9

    I get this error after install:

    “\\Documents\maya\2013-x64\prefs\scripts\poseLib.mel line 2257: setAttr: Attribute ‘defaultHardwareRenderGlobals.startFrame’ is from a locked node, so it cannot be unlocked. ”

    Any clue how to fix?


  10. Seith
    March 7th, 2015 at 14:13 | #10

    Yes, I think this is due to the fact that some TDs choose to lock those variables (ie: in a a referenced scene) within a custom pipeline. More often than not you just need to ask them to exclude defaultHardwareRenderGlobals from the lock and things should work fine.

  11. park
    March 12th, 2015 at 06:51 | #11


    I had problem to use your PoseLib.

    when I type

    “source poseLib.mel;


    then message appear “Error: optionMenu: Object ‘Category:’ not found.”
    and PoseLib did not working.
    I reinstalled script, but same result.

    I can’t fix it.

    windosw 7 sp1 64bit

    help me, Thank you.

  12. Seith
    March 12th, 2015 at 17:50 | #12

    Mmh I’m not sure. Is that the only error that appears in the script editor? Anything before or after?

  13. Wolfor
    March 25th, 2015 at 15:34 | #13

    Hi Seth!
    I was hoping to implement a functionality that adds a pose to the current attribute values instead of replacing them, but being no programmer I just can’t figure the code for it…

    Is that a hard thing to do, or is it more or less copying the part about what happens when pressing the ‘alt’ key?

    Thanks, and sorry if that sounds kinda stupid!

  14. Chris
    April 1st, 2015 at 06:56 | #14

    You can just run this mel script to unlock it, fixed my error:

    select -r defaultHardwareRenderGlobals; string $selectedObj[] = `ls -sl`;
    lockNode -lock 0 $selectedObj;

  15. Seith
    April 1st, 2015 at 13:24 | #15

    Nice one! Thanks for your input, Chris.

  16. Seith
    April 1st, 2015 at 13:44 | #16

    In theory that could be possible but the result would be very unpredictable. Usually a pose represents a goal you want to reach (or blend towards), not an iterative value. Anyway, I’ll keep that in mind when I get the chance to go back to poseLib (which isn’t anytime soon unfortunately).

  17. Wolfor
    April 23rd, 2015 at 13:23 | #17

    Hi! Sorry, I didnt see you already replied :) I found someone who helped me implement this, basically its good if you want to blend basic shapes, like a wide mouth shape and an open one.
    For that it’s just having to make sure the open and the wide don’t use the same attributes when creating the poses :)
    Anyway, it really was just more or less copying the part about what happens when pressing the ‘alt’ key, and if you want, I can send you that modification so you can see if you want to implement it or not :)

  18. Seith
    May 1st, 2015 at 09:13 | #18

    Hey, no problem! Please do send it to me (seith at seithcg dot com)… :)

  19. May 13th, 2015 at 10:11 | #19

    Hi! love the script, one problem is that right clicking on a pose doesn’t give the option to select controls, when i press edit or edit pop-up it sends the shelf editor instead. thoughts? I’m on Maya 2015

  20. Seith
    May 13th, 2015 at 16:53 | #20

    Hi, I have fixed the issue and will release soon a new (and much improved) poseLib version… :)

  21. May 16th, 2015 at 20:26 | #21

    Hi Seith
    I used Poselib in the past and it is an awesome and indispensable tool! Thanks for updating it so it runs on current maya versions!
    Thanks for your generosity. And to everyone else, give the man a fistful of dollars or more, he rightly deserves it for making such a great tool :-)

  22. Francois Maree
    June 8th, 2015 at 07:36 | #22

    Hi Seith

    Thanks for the update. I’m trying to download 6.5.0 onto a Linux (CentOS) machine but the rar file (34.5kB) tells me the file inside is 0kB. Would it be possible to upload it again or make it available in a different compression type please? Maybe there’s an issue with the app you use to RAR it up that is not compatible with Linux. Your previous version opened up just fine in Linux.


  23. Jason Minters
    June 8th, 2015 at 19:32 | #23


    I had to edit poseLibModule.py on line 272 the mel command attributeQuery. One of my objects had the attribute name switch and I think that the mel command would not accept a command as an item, So adding quotes ensures that the attribute name is taken as a string.

    if mel.eval(‘attributeQuery -node “‘ + controls[i] + ‘” -ex “‘ + attributes[c]+'”‘):

  24. Seith
    June 8th, 2015 at 22:39 | #24

    Hi Francois, I just replaced the file with a zip archive which should hopefully be more standard than the rar one.

  25. Seith
    June 8th, 2015 at 22:41 | #25

    Ah good to know! Thanks Jason…

  26. Francois Maree
    June 9th, 2015 at 09:21 | #26

    Excellent Seith. Thank you very much! It works like a charm. :)

  27. Francois Maree
    June 9th, 2015 at 09:30 | #27

    Ah, so I replaced my previous poseLib files in the script folder, and when I try to run the new poseLib I receive the following error:

    // Error: “/job/silly_seasons/common/maya/scripts/poseLib.mel” line 95.40: Unterminated string. //

  28. Francois Maree
    June 9th, 2015 at 09:35 | #28

    Apologies, I seemed to only have copied a part of the error. Here’s the full one:

    source “/job/silly_seasons/common/maya/scripts/poseLib.mel”;
    // Error: python(“poseLibModule.writeCfgFile( \
    // Error: “/job/silly_seasons/common/maya/scripts/poseLib.mel” line 95.40: Unterminated string. //
    // Warning: New procedure definition for “poseLibDoRenameProject” has a different argument list and/or return type. //

  29. Seith
    June 9th, 2015 at 10:00 | #29

    So if I understand correctly you’re on Linux (similar to Mac in terms of paths). Could you try adding this at line 94 of the MEL file (before the line starting with “Python”):

    print ("$projectsAsString = " + $projectsAsString + "\n"); print ("$projectsPathsAsString = " + $projectsPathsAsString + "\n");

    Then let me know the result in the outliner please. It won’t fix the issue but hopefully it should help me understand what’s going on.

  30. Glyn
    July 27th, 2015 at 08:52 | #30

    Can you tell me if poseLib and Maya’s human IK are compatible – i.e. both plugins can run simultaneously and poses/animation can be generated using human Ik and then saved to poseLib?
    Many thanks,

  31. Seith
    July 27th, 2015 at 09:00 | #31

    Hi Glyn, I’m really not sure (I never used human IK).

  32. Andy
    August 27th, 2015 at 12:10 | #32

    I am trying to add pose, but it showing error i.e.

    // Error: file: C:/Users/AATS-11/Documents/maya/2013-x64/scripts/poseLib.mel line 1786: setAttr: Attribute ‘defaultHardwareRenderGlobals.startFrame’ is from a locked node, so it cannot be unlocked.

    And also I cannot change the path through the poselib plug in.
    Please help!

  33. Seith
    September 13th, 2015 at 12:22 | #33

    I believe that error was reported earlier in the comments; it is usually linked to TDs locking the hardwareRenderGlobal’s attributes for animators in a pipeline. In that case you just need to ask them to unlock them and everything should work fine.

  34. Russell Campbell
    October 1st, 2015 at 04:22 | #34

    @Francois Maree

    Hey Seith and Francois,

    So I helped an artist install your script on OSX today and encountered the same problem. The issue is that on line 95 a command is using the line continuation character “\” for an extra long string in the python call. Line continuation is dependent on the invisible line ending character which is different for Windows and Unix. Since poseLib.mel is provided with Window line ending characters it won’t work unless you switch the file to using Unix line endings in your favorite text editor.

    I’d suggest formatting the Mel in a way that is cross-compatible by not using line continuation, like this (I also removed all those annoying escapes!):

    python(“poseLibModule.writeCfgFile( ‘toto’, ‘” + $projectsAsString + “‘, ‘”
    + $projectsPathsAsString + “‘, ‘”
    + `optionMenu -q -v plArchetypeChoiceOM` + “‘, ‘”
    + `optionMenu -q -v plCastingChoiceOM` + “‘, ‘”
    + $characterChoiceAsString + “‘, ‘”
    + $categoryChoiceAsString + “‘, ‘”
    + `optionMenu -q -v libraryStatusChoiceOM` + “‘, ‘”
    + `intSliderGrp -q -v plPoseFractionISG` + “‘, ‘”
    + $poseLibCurrentProject + “‘, ‘”
    + $currentWidth + “‘, ‘”
    + $scrollColumnsWidth + “‘, ‘”
    + $posesToTheRight + “‘, ‘”
    + ($poseLibPrivateColor[0] + ” ” + $poseLibPrivateColor[1] + ” ” + $poseLibPrivateColor[2]) + “‘, ‘”
    + ($poseLibPublicColor[0] + ” ” + $poseLibPublicColor[1] + ” ” + $poseLibPublicColor[2]) + “‘, ‘”
    + `textField -q -tx namespaceTextFieldTF` + “‘, ‘”
    + `radioCollection -q -sl namespaceChoiceRC` + “‘, ‘”
    + $poseLibIconsSize[0] + “‘, ‘”
    + $poseLibIconsSize[1] + “‘, ‘”
    + $poseLibCustomIconsSize[0] + “‘, ‘”
    + $poseLibCustomIconsSize[1] + “‘, ‘”
    + ($poseLibIconsBGColor[0] + ” ” + $poseLibIconsBGColor[1] + ” ” + $poseLibIconsBGColor[2]) + “‘, ‘”
    + $poseLibUseTexturesForIconPreview + “‘, ‘”
    + $poseLibIconFileFormat + “‘, ‘”
    + $poseLibCaptureCameraFocalLength + “‘, ‘”
    + $poseLibCaptureCameraNearClip + “‘, ‘”
    + $poseLibCaptureCameraFarClip + “‘, ‘”
    + ($poseLibCaptureCameraBGColor[0] + ” ” + $poseLibCaptureCameraBGColor[1] + ” ” + $poseLibCaptureCameraBGColor[2]) + “‘, ‘”
    + $poseLibTextEditor
    + “‘)”);

  35. Bryan
    October 1st, 2015 at 19:57 | #35

    @Francois, I was getting the same error on a mac, a friend said it was because its using Windows line endings in that part of the code, when we changed it to Unix line endings it worked.

  36. Seith
    October 1st, 2015 at 20:10 | #36

    Thanks. I actually have a new version of poseLib which takes care of all those problems. I’ll try to post it as soon as possible!

  37. pooe
    October 3rd, 2015 at 05:37 | #37

    when I try to create new pose It will appear “# Error: TypeError: object of type ‘NoneType’ has no len()” .How to fix it?

  38. prakashp
    November 4th, 2015 at 17:28 | #38

    hi i have one problem poseLib not showing how to get that plz tell me quickly

  39. Seith
    November 8th, 2015 at 10:18 | #39

    I’ve just uploaded a new version of poseLib which should fix all the problems mentioned recently.

  40. Francois
    December 30th, 2015 at 12:58 | #40

    Hey Seith

    I recently decided to upgrade to the latest version of poseLib. I created a seperate folder in Dropbox to keep all my scripts and plugins in sync wherever I go. I have added the Dropbox paths I use in the relevant Maya environment file (maya.env). But it seems that when I have the poseLibModule.py file in the same folder for Dropbox that the poseLib.mel file is, poseLib throws it’s toys out of the cot screaming:

    “Starting poseLib…// Error: file: C:/Users/fmare/Dropbox/Maya/common/scripts/poseLib.mel line 48: ImportError: file line 1: No module named poseLibModule //”

    But when I move the poselibModule.py file to my default maya scripts folder, it stops whining and works like it’s supposed to.

  41. Seith
    January 3rd, 2016 at 15:38 | #41

    It would seem this is caused by Maya not actually recognizing your Dropbox path as a proper Python module path (which is in fact different from the default MEL scripts path). Beyond that I’m afraid I can’t be of much help as this would be related to your specific Maya installation.

  42. January 18th, 2016 at 16:51 | #42

    Hi Francois, ( Hi Seith, super tool will donate! ) strange so few did.

    Had a same issue and found a solution to that problem of using another location for scripts :)

    In our studio we keep a folder for scripts and shelves to share across our collegues.
    You will need to use an edited maya env.
    Mine looks like :

    MAYA_SHELF_PATH = D:\Dropbox (Bigpixel)\_LIBRARY\MAYA_2016\shelves;X:\Users\Jeroen\Documents\maya\2016\prefs\shelves;
    MAYA_SCRIPT_PATH = D:\Dropbox (Bigpixel)\_LIBRARY\MAYA_2016\scripts;
    XBMLANGPATH = D:\Dropbox (Bigpixel)\_LIBRARY\MAYA_2016\shelves\icons;
    BMPLANGPATH = D:\Dropbox (Bigpixel)\_LIBRARY\MAYA_2016\shelves\icons;

    PYTHONPATH = D:\Dropbox (Bigpixel)\_LIBRARY\MAYA_2016\scripts;


    In the shelf I force source the script with this line :

    source “D:/Dropbox (Bigpixel)/_LIBRARY/MAYA_2016/scripts/poseLib.mel”;


    The script now runs from the shared shelf and work on all machines with
    After running the script a local cfg file gets written.
    have not found a way to set that to the shared location.

  43. Patrick
    October 25th, 2016 at 04:43 | #43

    Working in Maya 2017, though I also work in previous versions if you haven’t got this little bugger fixed yet…

    Creating poses, no problem. Applying poses, no problem.

    Working with my rig after applying the pose…problem. Rig controls don’t appear to work anymore.

    I’m working off a referenced character file, and not on an actual animation as of yet, but it seems this could be an issue maybe not showing up in previous versions of Maya?

  44. Seith
    October 25th, 2016 at 09:06 | #44

    Hi Patrick. Yes, I haven’t used a recent version of Maya in several years so I’m sure some things must be broken here and there. I plan to eventually move on to Maya 2017 (not sure when) and as I do I will definitely fix poseLib to work with that.

  45. joe
    November 15th, 2016 at 23:44 | #45

    hi Seith. this is a wonderful tool to use.
    upon testing, specifically when apply a pose to another character, the joints’ location change too. this is not ideal when transfer a pose from a big character to a smaller one as the small character will blown up to the size of the big one. is it possible to only apply rotation values of joint bones to target skeletons without translating them? perhaps a toggle check box? so that after initialize a skeleton (freeze T pose) it could be easily apply poses to all other skeletons of any size.

    I could be wrong with only a few min of mess around. :)

  46. joe
    November 16th, 2016 at 04:07 | #46


    update: after more messing around, use “lock selected” would perfectly solve the transfer pose issue states above.

  47. vaster
    March 28th, 2017 at 08:17 | #47

    thanks for this script
    I have maya 2017
    how to install this script on maya 2017

  48. vaster
    March 28th, 2017 at 09:57 | #48

    hi seith
    I worked with studio library script (www.studiolibrary.com)
    studio library like to your script but studio library has a mirror tool
    mirror tool is very important for walk,run,… cycle animate
    please add this tool to your script (poselib)

  49. feltyellow
    April 4th, 2017 at 01:44 | #49

    I’m a CGer come from China,and I can’t download the latest version of poseLib with Chinese net.But I really need it.
    could you plz send it to my E-mail?
    Thank you so so so much.
    and my E-mail adress is liuxingxiaoqian@… gmail or yahoo both ok
    And thank you again for help.

  50. feltyellow
    April 4th, 2017 at 01:53 | #50

    me again,hi Seith,
    and I want to tell you your wordpess can’t support Chinese.
    when I type Chinese here ,it will become ???

Comment pages
  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