InterpBlendShape is a custom Maya deformer plugin that offers an alternative to Maya's built-in linear blend — blending targets using surface and bezier interpolation. It supports GPU parallel execution and works on both meshes and curves.
InterpBlendShapeEditor is the accompanying toolset: a custom editor for creating and managing targets, inbetweens, paint data, surface drivers, and target-shape editing. Mirror and flip operations are significantly faster than Maya's native equivalents. The UI is built on a Qt MVC framework with real-time Maya synchronization, full undo/redo support, thread-safe scene loading, and draggable target ordering.
For full details on the deformer node, see the InterpBlendShape documentation.
interpBlendShape_ui.pyMain Maya UI entry point.smoke_test_interpblendshape.pyLightweight Maya smoke test for the core happy-path workflow.widgets/Reusable UI components, delegates, popup helpers, and styling.
- Copy the
interpBlendShapefolder into:C:\Users\<username>\Documents\maya\2024\scripts\ - Set up the Python path by either:
- Dragging
install_interpBlendShape.pyinto the Maya viewport — it will install itself automatically, or - Copying
userSetup.pymanually into:If you already have aC:\Users\<username>\Documents\maya\2024\scripts\userSetup.py, append its contents to your existing file instead of replacing it.
- Dragging
- Download the compiled plugin for your Maya version from the Releases page and copy it into:
C:\Program Files\Autodesk\Maya2024\bin\plug-ins\ - Copy
AEinterpBlendShapeTemplate.melinto:C:\Program Files\Autodesk\Maya2024\scripts\AETemplates\
Restart Maya, then launch the UI from the Script Editor:
from interpBlendShape_ui import showUI
showUI()- Maya 2023+ with PySide2
- Python 3.x
- The compiled
interpBlendShapeplugin available to Maya
- Surface and bezier interpolation as an alternative to Maya's linear blend
- GPU parallel execution for fast deformation
- Works on meshes and curves
- Create and manage
interpBlendShapedeformers from a custom editor - Real-time DG and UI sync through Maya API callbacks
- Thread-safe scene loading with Maya data collected on the main thread and tree-building moved to a background
QThread - Full undo/redo support with chunked undo for drag-release and batch operations
- Add targets and inbetweens directly from scene selection
- Paint and edit target weights
- Vertex weight editor with normalization and lock controls
- Copy, mirror, and flip target weights — significantly faster than Maya's native mirror/flip
- Drag-and-drop target reordering
- Scene state persistence for expanded state and saved node order
- Mirror or flip target geometry
- Surface association modes:
Closest ComponentClosest PointClosest UV (Global)Closest UV (Shell Center)
- UV-based shape editing is mesh-only.
- UV-based shape editing uses the current UV set on the mesh.
Closest UV (Global)mirrors across globalU = 0.5.Closest UV (Shell Center)mirrors across each shell's local U center.- Inbetween weights must stay strictly between
0.0and1.0.
Run this inside Maya's Script Editor after the plugin and scripts are available:
from smoke_test_interpblendshape import run_smoke_test
result = run_smoke_test()
print(result)The smoke test covers:
- opening the UI
- creating a deformer node
- adding a target
- adding an inbetween
- opening the shape edit options popup
- executing a mirror target operation
- Verify the plugin loads in the target Maya version
- Run the smoke test in Maya
- Confirm icons resolve correctly from the packaged location
- Test one mesh target workflow and one curve target workflow
- Verify shape editing on at least one mirrored mesh asset
The Python UI scripts are open source under the MIT License.
The compiled interpBlendShape.mll plugin is included as a binary. Source code for the C++ plugin is not publicly available.
Current Python package version: 1.0.0