Vetala Beta 0.3.5


  • Auto Complete more consistent

  • Auto Complete Ctrl+S exits completion before, to avoid invoking maya file save

  • Pose arrows no longer have control tags

  • FkCurveRig not building when set_attach_joints(False)

  • Option Title and Option group can't have the same name fix

  • Option Scripts copy properly using Copy Match when script has new line in text

  • Fix for foot joint naming not matching older versions of Vetala

  • Fixed issue where creating code with a code selected caused a data.json file issue

  • Fix for versions with comments that contain ";" or "=" , would cause the versions to error when loading.

  • If you hit the open button with no version selected Vetala would error.

  • maya_lib.deform create_wrap uses transform name of mesh instead of shape name for naming.


  • Process Maintenance tab

  • Process Backup

  • Process Version pruning


  • Data file save now has tool tabs. For example control cv data has a tab with the control curve editing buttons.

  • Vetala now docks using Maya mixin class

  • Spin widgets in options no longer change with mouse wheel

  • Faster file loading in process view and code completion, slightly faster in code loading.

  • Collapsing groups now have a + and - indicator

  • Build widget at the bottom of Vetala now stays open even in the Data Tab. Less confusing

  • Accept for the compact history widget on code manifest and process options no longer asks to accept when navigating history


  • deform.unlock_joint_weights

  • attr.has_default_xform_channels

  • attr.store_world_matrix_to_attribute

  • attr.hide_rotate_order

  • core.delete_empty_nodes

  • geo.get_connected_verts

  • geo.get_vertex_shells

  • geo.get_vertex_names_from_indices

  • space.get_chain_length

  • space.orig_matrix_match

Vetala Beta 0.3.2


  • Slightly faster blendshape.Blendshape class

  • Progress bar when exporting skin weights

  • deform.SplitMeshTarget if you are splitting multiply shapes with similar weighting, pass all the shapes at once to SplitMeshTarget. Also added sine fade in out for smoother splits

  • some speed improvement for deform.SplitMeshTarget

  • geo.get_vertex_indices - slightly faster

  • rigs now print out the joints being used when processing

  • deform.TransferWeights.transfer_joint_to_joint now works properly/the same as older versions and is much faster on large vertex counts

  • some speed improvement for skin import

  • new code and duplicate code now automatically opens a tab, avoiding confusion with existing code

  • script options are now one line until clicked, making them easier to work with.


  • right-click on code to run code group

  • Buttons added for smooth weights and average weights

  • options ui - dictionary widget

  • api.get_surrounding_vertex_indices
    Using python api 2

  • api.get_skin_influence_names

  • api.get_skin_influence_indices

  • api.get_skin_influence_dict

  • api.get_plug


  • geo.get_thing_from_component

  • geo.is_a_vertex added

  • process.get_code_children

  • process.run_script_group

  • deform.smooth_skin_weights

  • deform.sharpen_skin_weights

  • deform.average_skin_weights


  • attr.hide_attributes now hides individual axis when giving a double3 like translate, rotate, scale to hide. This solves a bug where channels wouldn't unhide using scripts.

  • get_node_editors now returns before erroring in batch mode.

  • fix to code sync, where children code wouldn't always appear

  • fix to code sync after copy match

  • fix to script option where process wouldn't load

  • fix sub controls maybe not getting a number in the name

  • fix to booleon options losing their data

  • process = None can now be removed and the code will continue working

  • script options created under an option group will now collapse when hitting the edit button. Before they would just stay open until refreshing the ui.

  • reparenting a process would cause the script option to lose the process

Vetala Beta 0.3


  • TransferWeight extact falloff now supports transfer using an optimized mesh. Good for when the mesh gets really dense.

  • Rig.set_buffer now has the option to create a shape switch under the main controls of a setup.

  • orient joints slightly faster and now with a progress bar

  • Copy Match now supports copying to multiple process

  • Options and settings now have their own tabs in Copy Match

  • Copy Match slightly faster

  • better permissions handling on for Linux

  • Mirror Transforms now works with _l and _r

  • Code changes to olive color when completes with warnings

  • Options backup

  • Manifest backup - with the gotcha that it won't save script order - hopefully will in the future

  • Sub Folder more usable

  • Copy -default- to sub folder and copy sub folder to -default- right click menu commands

  • All data types should now work with sub folder

  • Importing a maya file now preserves reference

  • weights_skinCluster now supports referenced geo and duplicate names

  • weights_deformer now exports any simple weighted deformer like lattice, cluster, delta mush, etc.

  • CTRL+d in code editor now duplicates line

  • pressing enter after : now tabs properly in code editor

  • New setting to remove popup when CTRL+s saving

  • pymel now available in code editor using pm

  • filter by sub path now is remembered between sessions and makes loading faster

  • Added an edit button to Process View and Code Manifest to avoid reordering things accidently

  • shift-left click on parent process expand arrow will expand all children processes

  • Node view no longer updates when process running, avoides graphing 1000s of nodes.

  • process runtime dict is now more persistent

  • new setting to set default text size in code editor

  • Process setting allows for custom control naming when using the rigs.Rig classes

  • Switching between projects now remembers the last process

  • Scripts now auto save before processing to avoid confusion

  • Ability to rotate controls easily in the Utilities -> Controls tab

  • Ability to do without starting a new scene. Good for running processes inside other processes for process inception

  • new file able to customize vetala better for different studios. At Method vetala is called nutella for example.

  • Ability to point vetala to custom curve data

New functions

  • attr

  • attr.get_max_value

  • attr.set_nonkeyable

  • attr.hide_visibility

  • attr.lock_constraint

  • attr.lock_attributes_for_asset

  • attr.lock_hierarchy

  • attr.add_shape_for_attributes

  • curve.set_shapes_as_text_curves

  • geo.rotate_shape

  • geo.curve_to_nurb_surface

  • geo.attach_motion_path

  • geo.face_to_vertex


  • deform.find_all_deformers

  • core.ManageNodeEditors

  • core.get_node_name

  • core.create_node

  • core.rename_node

  • core.load_plugin

  • core.get_progress_bar

  • core.get_node_editors

  • process.Process.get_data_file_or_folder

  • process.Process.get_data_current_sub_folder

  • process.Process.get_data_current_sub_folder_and_type

  • process.Process.has_sub_folder

  • process.Process.create_sub_folder

  • process.Process.copy_sub_folder_to_data

  • process.Process.copy_data_to_sub_folder

  • process.Process.get_code_module

  • process.Process.get_settings_inst

  • process.Process.set_option

  • process.copy

  • process.get_vetala_settings_inst

  • process.initialize_project_settings

  • process.get_project_setting

  • process.set_project_setting

  • rigs.Rig.set_number_in_control_name

  • rigs.Rig.set_attach_type

  • rigs.Rig.set_add_switch_shape

  • rigs.IkAppendageRig.set_create_pole_control added

  • rigs_util.StretchyChain.set_attribute_name

  • rigs_util.StretchyChain.set_default_value

  • rigs_util.StretchyChain.set_create_title

  • rigs_util.StretchyElbowLock

  • rigs_util.is_control

  • rigs_util.edge_loop_to_control_shape

  • space.MatrixConstraintNodes

  • space.MatrixConstraint

  • space.SpaceSwitch

  • util.get_custom

  • util.print_python_dir_nicely


  • Progress bar fixes

  • start new scene now flushes Idle Queue

  • attribute export/import now supports double array attributes. This is good for some attributes that do per vertex data. Many of these in the ncloth nodes.

  • process open, import, reference and save data now have sub_folder option

  • process ability to run a process inside another

  • process view ui can now be set to auto load a sub process and the setting is kept

  • Ctrl+d in the code editor duplicates line(s)

  • new line after a : now tabs in code editor

  • sub folder ui improvements

  • Cancelling a merge no longer has a recursion error.

  • setting external editor now works in linux

  • batch now runs in linux

  • fixed processes not starting properly after a cancel

  • Each code in the manifest now clears selction. Avoiding skin cluster and other data being loaded on the wrong thing

  • Fixes to numbering when duplicating and reparenting processes

Vetala Beta 0.2.03


  • Fixed auto build. Won't build sub folders of folders that are not on.
  • Some sub folder issues. They are now just called folders. -top folder- replaces default.
  • notes are now parsed properly with an html parser to find out if they are empty.
  • core.has_shape_of_type now returns False if no shapes
  • process.get_name() will now always return something when directory set
  • now returns a dictionary with the run states
  • shape combo ui tagging now properly labels things red
  • Fixed weird sliver of nothing in options ui.

  • options menu now remembers open close state of all groups
  • scripts in the options menu.
  • ctrl+enter in option script text runs it.
  • attr.is_translate_rotate_connected
  • environment variable 'VETALA_COPIED_PROCESS' added
  • buttons to help manage process tabs.
  • process.run_option_script
  • process.run_code_snippet
  • duplicate code
  • duplicate process
  • util_file.get_json

  • skin cluster data now exports a reference mesh. When importing skin weights the ref mesh helps reassign weights to new topology.
  • process selection
  • Settings and options now write to json.
  • Template pasting
  • util_file.create_file now excepts a full path as name to create
  • code manifest delete multiple scripts at once.
  • Mirror Transforms now skips transforms with shape of type mesh
  • When Joint Orient runs, up and aim locators update to joint size.
  • Process paste no longer gets cleared after pasting. Allowing same process to paste multiple times easily.

Vetala Beta 0.2.02

Important in this release:

  • shapeCombo now has tagging. You create tags through the ui and then access them at runtime through the shapeCombo class. There's a bug where tags will turn red when unassigning. This will be fixed in the next release. The workaround is to click on/off the shape name in the ui to refresh.

Sub Folder in data.

  • added sub folder functionality. 

Notes improvements:

  • Notes now accepts images via drag and drop. You can also copy paste website text, but not very useful. Planning to add bold, italic and underline in a future release.

Sparese Rig got some nice improvemetns.

  • fixed rig.SparseRig set_respect_side = True will now work when no side given when instantiating the class.
  • fixed sparse rig naming when set_respect_side is True
  • SparseRig now matches to translate and pivot, so modelers can set the pivot.

Other notes:

  • space.is_transform_default added ?
  • added control values data export/import
  • fixed batch to deal with no code.
  • added sub folder functionality
  • added geo.get_mesh_from_vertex
  • added get_follicle_input_curve ?
  • create_quill automatically reverses direction ?
  • added FeatherOnPlaneRig
  • space.orient_x_to_child now freezes last joint
  • deform.MultiJointShape changed for inbetweens
  • rigs.EyeRig added fk
  • added space.get_axis_letter_aimed_at_child
  • space.get_midpoint now works with componenets
  • geo.edge_to_vertex now returns vertices
  • added rotate order data export/import
  • attr.remove_user_defined now unlocks before removing
  • fix for world slider and subtle ik shifting
  • removed locking from add_orient_joint
  • space.DuplicateHierarchy now only works with joints ?
  • added Awesome Town code for shotgun
  • added surface as joint orient option
  • added set_geo_color ?
  • added space.orient_x_to_child_up_to_surface
  • util_file.is_same_date fixes
  • added fx.add_passive_to_nucleus
  • added fx.set_active_nucleus
  • added rigs.QuadrupedLegRig set_offset_ankle_orientation
  • control animation data now returns the imported keys
  • added core.xray_joints and core.display_textures
  • added geo.create_locators_on_curve ?
  • added fx.set_follicle_stiffness_based_on_length
  • added util_math
  • added space.zero_out_pivot
  • added geo.rebuild_curve_at_distance
  • faster geo.get_closest_uv_on_mesh_at_curve
  • added attr.connect_plus_and_value
  • added core.get_shape_node_type ?
  • export weighted deformer now works if the deformer is working with multiple geo
  • notes now accepts images via drag and drop
  • new code items check on
  • geo.attach_to_surface buffer group added
  • progress bar added to process, this helps Maya 2018 stop when holding esc
  • fixed bug with auto focus off where selection wouldn't be cleared.
  • geo.get_closest_normal_on_surface added
  • fixes to copy_match for progress bar and tab.
  • Options and Notes tabs in process view now a bit better. Use Show Notes to have notes stay open.
  • Cleaned up sub children auto build. Sub child processing is now stoppable. Also user can cancel out to just process the parent.
  • Mirror create now mirrors locators as well as joints
  • Subdivide joint now works when just one joint (that has a child) is selelcted
  • local fk rig now parents its hierarchy properly under setup instead of controls
  • shapeCombo remove hero now works
  • shapeCombo will now fade hero shape over increments when no combo increment present
  • shapeCombo fix to preserve combos

Vetala Beta 0.2.01

Trello completed updates in green here:


  • Jaw rig now has the option to follow world instead of just local.
  • Check UI now has a check for references.
  • Mirror selected only button
  • Mirror R to L button
  • Mirror Create button
  • Orient selected only button
  • Added notes section between Options and Templates. Right click show notes in the process view.
  • Slight improvement to drag and drop in the manifest.
  • deform.match_geo_blendshape now has the option to pick an index. Which allows for more than one geometry in the blendshape.
  • reduced the size of items in process list and other list.
  • floating code window improvements including versions in the code window, and it will no longer go in front of dialogues.
  • logs are now available after processing by right clicking on a process and picking show last log. If you want something to show up in the log use show() instead of print in the code edit.
  • api MeshFunction now has get_closest_normal
  • geo.plane_to_curves added to create curves on a polygon plane
  • geo.create_quill added to create quills from curves
  • geo.transfer_from_curve_to_curve can transfer curves on one curve to another curve. Good for feather work.
  • deform tab in the ui now has more options
  • controls tab now has an option to replace shape. Thanks Mark Neil for the inspiration!
  • space.delete_constraints added
  • util.vector_sub added
  • core.print_warning added
  • aim and up for joint orient changed from joints to locators
  • fixed show_channel_box for maya 2017/2018
  • handled error when missing source or target in deform.create_wrap
  • IkLegRig now has an option to set the ankle offset axis
  • when writing a file, if it errors it will wait a bit. This was needed for notes.
  • geo.nurb_surface_u_to_transforms added
  • IkScapulaRig now has the ability to hide the aim goal control.
  • rigs_util.TwistRibbon added
  • attr.get_attribute_name added
  • rigs now have the ability to connect the subVisibility up to an arbitrary attribute.
  • added file size to the data view.
  • added blendshape.recreate_targets()
  • curve.get_library_shape_names added
  • core.add_to_set command added, will create the named set if not present.
  • deform.blend_into_intermediate added
  • space.get_ik_from_joint added


  • transfer_joint_to_joint was not properly using weights on specified joints. This is now fixed.
  • transfer_joints_to_new_joints Would not transfer to a list of joints that included the source joint. This is now fixed.
  • space.get_axis_vector fixed. This is useful for finding out where a transform is pointed.
  • small fix to mirror invert button. Should work a bit better now.
  • util.QuickSort fixed to return the follow array as well.
  • geo.get_closest_uv_on_mesh_at_curve fixed
  • rigs_util.fix_sub_controls now works when passing a name of a control.
  • Check ui, fix for empty groups now skips joints
  • StretchChain effectors now get their name incremented to avoid clashing.
  • Fixed blendshape.Blenshape.recreate_all
  • pyside is now found more reliably when switching between Maya 2016 and Maya 2017
  • breakpoint now works on code that is unchecked. It won't skip over them.
  • When in the code tab, sub process that a green will no longer auto build. It will only build what's in the code tab.


  • There is no longer the ability to click on a code tab and make it into its own window. It was causing Maya to crash. Set Option to open in new window in the preferences.

Vetala Beta 0.2.00

Whats new in the release:

  • Shogun Link Data added - need to create a shotgun api script to connect in the settings.
  • util_file.get_latest_file_at_path(path) added
  • Changed settings tab to a gear
  • Clicking on a script in the manifest will now focus on its tab or window if open.
  • Added setting to define what double clicking on a manifest item does. Open tab, open new window or open in external.




  • anim.bake_to_animation added.
  • api.IteratePolygonFace added get_center, get_normal
  • geo.randomize_mesh_vertices added
  • space.randomize added to randomize transforms
  • process.get_sub_process_count added
  • process.get_sub_process_by_index added
  • core.get_current_camera added
  • added some vector math to util
  • some api functionality added.
  • added an active attr to orient attrs.
  • attr.remove_orient_attributes
  • added process.get_non_process_parts()
  • added ability to open scale channels on GroundRig
  • added vetala icon to hub
  • process.find_processes can return non process folders along with processes
  • added ability to convert folder to process
  • added new feather rig but needs a demo file to understand.
  • deform.skin_mesh_from_mesh now auto removes unused influences
  • mirror curve mirrors all curves in the scene that are named _L and have a corresponding _R
  • documentation looks a bit nicer and more up to date.

  • run script individually now respect auto focus setting in the settings.
  • fixed orient joint aim to put up and aim at the beginning of the children.
  • attr.unlock_attributes now sets k = True properly.
  • deform.matching_geo_blendshape now allows curves
  • geo.is_a_curve improved
  • version files fixed again. Tested and should be able to deal with deleting arbitrary version.
  • Cleaned up data names so they look a bit nicer.
  • more feedback when saving data
  • util_file.create_dir now can create a directory by just giving the full path to the desired directory

  • changed pose data name to corrective. Everything should still work the same as before. This is just cosmetic.
  • changed animation data name to keyframes. Everything should still work the same as before. This is just cosmetic.
  • re-arranged some tabs.
  • ui cleanup



  • LockNodeState class added. This helps to lock and temporarily unlock all keyable attributes of a node to attr module.
  • Joint orientation attributes now have 2nd child up position. This can be used to have first child be aim, and second child be up axis.
  • Mirror Transforms will now unlock attributes before mirroring, and lock again after the mirror is done. This allows for more guided structure setups.
  • Added lock_translate_attributes and lock_rotate_attributes to attr module.
  • Added button Convert to Orient Joint beside Orient Joints button. If a joint is selected, this will convert the joint to a special auto orient configuration that uses 2 children to figure out the orientation.
  • Added get_hierarchy_path to space module. If you have joint_arm_L, joint_elbow_L, joint_wrist_L, it will find the path between joint_arm_L and joint_wrist_L without getting confused if joint_elbow_L branches. This can help find a limb if a skeleton is complex.
  • Added open_data() to process. Opening can be faster than importing. Open should probably be at the start of the code manifest.
  • Added get_bounding_box_size to space module. Good for adapting scripts to the size of a mesh. For example scale the controls when a mesh is larger/smaller. Being used to auto rig props with a single control that fits to the mesh.
  • is_cv_count_same function added to geo module
  • Shape Combo UI can now work with groups of meshes. If you set your base as a group with meshes under it, you can Add by selecting a different group with the same ( but duplicated ) meshes under it. Meshes must be in same order between base an group to be added.
  • Shape Combo UI, combos are now organized by hero selection.
  • Added Matrix class to the maya_lib.api module. Good for reading matrices and getting the translation, rotation.
  • Added Quaternion class to maya_lib.api module. Good for reading quaternions and getting the rotation in Euler.
  • Added leo cad ldr reader (very basic) to data module
  • Added read_lxfml_file reader (very basic) to data module. Needs to be export LXFML4 from Lego Digital Designer. Will return the id, position, rotation of parts listed in the file.
  • Added exists function to util_file for checking if a folder or file exists, instead of just is_file or is_dir

  • Fixed get_files_with_extension in util_file module. When setting full_path to True, it wouldn't return the full path.
  • Fixed versions not being deletable. Now you should be able to delete versions like version.1 verion.2 etc and the remaining versions should still show up in the ui. Let me know if not.
  • Fixed Scale Controls slider undo.
  • Fixed Fix Sub Controls button. It searches controls connect to subVisibility. Now it sorts the controls so they are always in the right order when scaling.
  • lock_attributes now works on double3 attributes like translate and rotate as well as translateX, translateY, etc.
  • MirrorControlKeyframes now lives in rigs_util module and has some more feedback when things are wrong.
  • Fixed issue with Animation data import in the ui.
  • Fixed minutes and seconds not printing properly when running processes.
  • Fixed set_attach_joints() on Sparse rigs. Sparse rigs would get created but wouldn't attach the controls to the joints.
  • Moved BoundingBox class to space module

  • Removed file save block when saving code that hasn't changed.

Vetala Beta 0.1.17

  • No longer able to save code that hasn't changed since last save.
  • Warning given when maya ascii or binary data is imported,opened or reference but no data saved.
  • fixed rename issue when adding sub process to recently added top level process
  • added checks on processes. If check turned on the sub process will be run before the current process.
  • file save now forces maya to the right type.
  • selecting a character in the animation tab no longer changes selection. This helps keep the controls selected.
  • export alembic improvements
  • added get_uv_on_mesh_at_curve_base(mesh, curve) Good for adding follicles at a certain uv.
  • added get_closest_uv_on_mesh_at_curve(mesh, curve, samples=50) a bit slow, but finds where the curve intersects the mesh
  • correctives mirroring on a mesh without right side would sometimes error. More stable now.
  • when importing curve data, history on the control would sometimes block import. This now gets disconnected before importing and a warning is given.
  • added attr.is_connected and attr.is_locked
  • follicle curve improvements
  • improved version tab load speed.  Still can't delete arbitrary versions in the version folder, but will fix that for next release.
  • new checks ui that helps cleanup a scene
  • deform.skin_group_from_mesh now works with curves
  • export skin cluster will find parent if shape selected. This avoids exporting shape nodes.


Please login to to get the latest beta update.

  • Added a warning dialogue when scene does not save properly.
  • Fixed an issue with TransferWeights where it would not complete if all source joints were not weighted.
  • fixed overlapping dialogues. All dialogues should now open above any existing windows.
  • fixed negative scale on right side facial controls. 
  • new Batch Process, submits a process to run in batch. It will automically save as the latest build at the end.
  • fx module has the beginnings of some caching scripts
  • create_xform_group use_duplicate fixed. Before it would include children in the duplication.
  • Added driver group to scapula control.
  • Maya 2017 now uses invertShape C++ plugin instead of Chad Vernon python plugin. This makes importing pose data faster.
  • Snap curve to surface and project curve on surface.
  • Breakpoint in the code ui now possible by right click - set breakpoint
  • Pose import will now stop when pressing esc after files load. 
  • Delta mush weights now export/import using deformer weights data. 
  • !!! Please stop using the vtool.maya_lib.util module. It will be completely removed in a future release.

Picker UI was going to be in this release but I need a bit more time to get it working with namespaces and to test it out a bit more.

Vetala in Maya Batch

I played with Vetala in Maya Batch today.

I need to get a new release of Vetala out to fix a couple bugs but here's what it looks like.

In maya.standalone if Vetala is in the PYTHONPATH you can simply do:

from vtool.process_manager import process
process_inst = process.Process()
process_inst.set_directory('dir of your process')

#This will run the process. Then if you need to save the build out you can do.

process_inst.save_data('build', comment = 'saved from batch mode!')

Its so cool to see it running this way.  
For a body rig that used to take 36 seconds in Maya UI, it now takes 27 seconds in Maya Batch.   


  • Maya 2017 support
  • Version is now displayed in the window title.
  • Auto completion no longer begins to edit selected things in the Outliner when pressing enter on completion.
  • added pill control shape
  • Shape Combo no longer errors on inbetweens named like: target05
  • TransferWeights slightly faster
  • Correctives now have a combo option. 
    You need to set your character to the pose where two or more poses are at 1. 
    Create a combo pose.
    Then load those poses in the ui and sculpt your shape.
  • Corrective tool now has the following options on poses:
    Update Pose (Controls with Current Deformation)   -   Good for updating the deformation after tweaking the pose.
    Update Pose (Controls with Stored Deformation)    -    Good for mirroring to the right side, and fixing the right side pose.
    Update Pose (Controls Only)    -    Good if you need to change the position of the controls, and work on the deformation after.
  • geo.follicle_to_surface now has the option to constrain or not. If not tranform gets parented under follicle.
  • rigs.ScapualRig now has a fk rotate control option.
  • Various ik rigs have mirroring ability including tweakers, ik arms/legs, scapula.
  • space.create_follow now has the option to use a duplicate as the xform group.
  • rigs.SparseRig now has a compensate option so controls cancel themselves out when translating. This is good when riveting the control to a blendshape.
  • space.constrain_local now has the option to use a duplicate as the xform group.
  • MultiJointShape improvements.
  • minor issues fixed for Maya 2014
  • space scale fix for right side eye lid rig.
  • core.create_display_layer now has the option to set its initial state.
  • attr.create_blend_attribute now has the option to set an initial value.

Vetala in Maya 2017

Got Vetala working in Maya 2017 tonight.

Maya 2017 has changed in some significant ways.  
In order to support Qt 5 Maya now uses the PySide2 module and shiboken2.

In PySide all the Qt widgets were in PySide.QtGui.  In PySide2 many widgets are in PySide2.QtWidgets.
To deal with this I had to change my imports.
Before I was importing:
from PySide import QtGui

Now I import like this:
from PySide.QtGui import *

and if I'm in maya 2017
from PySide2.QtGui import *
from PySide2.QtWidgets import *

This way I don't have to write an if statement for every widget that used to be in QtGui but now is in QtWidgets.

shiboken2 works like shiboken.
In versions prior to 2017:
from shiboken import wrapInstance

In Maya 2017:
from shiboken2 import wrapInstance

I was thrown off at first because Autodesk didn't update the documentation.
But this page should make sense if you make the appropriate substitutions.  PySide2 instead of PySide, and shiboken2 instead of shiboken. 
PyQt and PySide Widget Best Practices

Vetala Beta 0.1.13 Released

  • Shape Combo tool is now more production tested. Many bugs fixed, especially with incremental combos.
  • New setting to turn off auto focus when opening a scene.
  • Added geo.snap_to_mesh. This will snap a transform to the closest face on a mesh
  • Fixed the corner controls on the rigs.StickyFadeRig
  • Auto indent added to code editing.
  • deform.CreateWrap will wrap to nurbs surfaces using maya wrap.
  • Fixed some issues with FkScaleRig and Maya 2014
  • deform.MultiJointShape now has a couple more options and improvements to get it to work better with the shape combo tool.
  • deform.SplitMeshShape has some minor tweaks and improvements to get it to work better with the shape combo tool.

Vetala Beta 0.1.12 Released

Updates to Vetala are available on the beta forum. 

  • Many improvements to options ui.
  • Added option in the settings tab to remove auto start new scene when hitting Process. This may need to get turned on to get old behavior!
  • Added curve cube_point
  • Syntax highlighting improved.
  • Auto complete will now list functions of a class.
  • Auto complete will now list process functions and maya.cmds functions.
  • Copy Special has been renamed Copy Merge. UI has been broken out into a floating window with some nice new features.
  • Fixes to shapeCombo
  • Fixed plugin unload issue in Maya 2016
  • Many bug fix improvements to Corrective tool.
  • Brought back pose mirroring. If pose didn't mirror control correctly, then right-click update pose after setting the proper pose. Then mirror again.
  • Added quick sort to the vtool.util module.
  • New color export/import data.
  • Blendshape weight export/import will now export nurbs curves and nurbs surfaces as well as blendshape base weights.
  • Fixed some issues with the code tabs and floating windows. 

Vetala on Linux

I tested Vetala on Linux tonight. Various studios have been asking for it to run on Linux.
From what I can tell everything seems to be working.  
For now studios and individuals who want Vetala on Linux should contact Cryptid Fx at