Skip to main content

Course Updates

2024

  • October 16, 2024
    Qt for Python and Maya (Vol. 1)
    • Outliner Example (Part 6)
    • Outliner Example (Part 7)
    • Outliner Example (Part 8)
  • October 2, 2024
    Qt for Python and Maya (Vol. 1)
    • Outliner Example (Part 1)
    • Outliner Example (Part 2)
    • Outliner Example (Part 3)
    • Outliner Example (Part 4)
    • Outliner Example (Part 5)
  • September 16, 2024
    Qt for Python and Maya (Vol. 1)
    • Table Widget Example (Part 5)
    • Table Widget Example (Part 6)
  • September 2, 2024
    Qt for Python and Maya (Vol. 1)
    • Table Widget Example (Part 1)
    • Table Widget Example (Part 2)
    • Table Widget Example (Part 3)
    • Table Widget Example (Part 4)
  • August 16, 2024
    Qt for Python and Maya (Vol. 1)
    • Menu Bars (Part 1)
    • Menu Bars (Part 2)
  • August 2, 2024
    Qt for Python and Maya (Vol. 1)
    • List Widgets (Part 1)
    • List Widgets (Part 2)
    • List Widgets (Part 3)
    • Stacked Widgets
  • July 16, 2024
    Qt for Python and Maya (Vol. 1)
    • Button Groups
    • Text Edits
    • Capturing Key Events
    • Tab Widgets
  • July 2, 2024
    Qt for Python and Maya (Vol. 1)
    • Common Widgets
    • Labels and Combo Boxes
    • Spin and Double Spin Boxes
    • Group Boxes
  • June 17, 2024
    Qt for Python and Maya (Vol. 1)
    • Open/Import Tool (Part 6)
    • Ready for Release (Part 1)
    • Ready for Release (Part 2)
  • June 02, 2024
    Qt for Python and Maya (Vol. 1)
    • Open/Import Tool (Part 1)
    • Open/Import Tool (Part 2)
    • Open/Import Tool (Part 3)
    • Open/Import Tool (Part 4)
    • Open/Import Tool (Part 5)
  • May 15, 2024
    Qt for Python and Maya (Vol. 1)
    • Signals and Slots (Part 1)
    • Signals and Slots (Part 2)
    • Organizing the Code
    • Custom Signals
  • May 2, 2024
    Qt for Python and Maya (Vol. 1)
    • Adding Widgets (Part 1)
    • Adding Widgets (Part 2)
    • Layouts (Part 1)
    • Layouts (Part 2)
    • Deleting a Window
  • April 15, 2024
    Qt for Python and Maya (Vol. 1)
    • Documentation
    • Windows and Dialogs (Part 1)
    • Windows and Dialogs (Part 2)
    • Windows and Dialogs (Part 3)
    • Windows and Dialogs (Part 4)
  • April 2, 2024
    Qt for Python and Maya (Vol. 1)
    • Introduction
    • An Overview of Qt
    • Qt Versions in Maya
    • Hello Qt Example (Part 1)
    • Hello Qt Example (Part 2)
  • March 15, 2024
    Qt for Python: Tips and Tricks
    • Marking Menus (Part 5)
    • Marking Menus (Part 6)
  • March 2, 2024
    Qt for Python: Tips and Tricks
    • Marking Menus (Part 1)
    • Marking Menus (Part 2)
    • Marking Menus (Part 3)
    • Marking Menus (Part 4)
  • February 2, 2024
    ShotGrid API Essentials
    • Qt Viewer (Part 9)
    • Qt Viewer (Part 10)
    • Qt Viewer (Part 11)
    • Qt Viewer (Part 12)
    • Qt Viewer (Part 13)
  • January 16, 2024
    ShotGrid API Essentials
    • Qt Viewer (Part 5)
    • Qt Viewer (Part 6)
    • Qt Viewer (Part 7)
    • Qt Viewer (Part 8)
  • January 2, 2024
    ShotGrid API Essentials
    • Qt Viewer (Part 1)
    • Qt Viewer (Part 2)
    • Qt Viewer (Part 3)
    • Qt Viewer (Part 4)

2023

  • Dec. 2, 2023
    Maya API: Python to C++ (Vol. 2)
    • Executing MEL/Python (Part 1)
    • Executing MEL/Python (Part 2)
    • Executing MEL/Python (Part 3)
  • Nov. 16, 2023
    Qt for Python: Tips and Tricks
    • Undo/Redo (Part 5)
    • Undo/Redo (Part 6)
    • Undo/Redo (Part 7)
  • Nov. 3, 2023
    Qt for Python: Tips and Tricks
    • Undo/Redo (Part 1)
    • Undo/Redo (Part 2)
    • Undo/Redo (Part 3)
    • Undo/Redo (Part 4)
  • Oct. 16, 2023
    ShotGrid API Essentials
    • Schema Read
    • File Uploads (Part 1)
    • File Uploads (Part 2)
    • File Downloads
  • Oct. 2, 2023
    ShotGrid API Essentials
    • Creating Entities
    • Updating Entities
    • Deleting and Reviving Entities
    • Batch Requests
  • Sept 15, 2023
    ShotGrid API Essentials
    • Terminology and Naming
    • Finding Entities (Part 1)
    • Finding Entities (Part 2)
    • Filters and Filter Syntax (Part 1)
    • Filters and Filter Syntax (Part 2)
  • Sept 2, 2023
    ShotGrid API Essentials
    • Introduction
    • Setting Up ShotGrid
    • Demo Animation Project
    • Python API Overview
    • Documentation
    • Installing the Python API
    • Authentication (Part 1)
    • Authentication (Part 2)
  • Aug 15, 2023
    Maya Pipeline Essentials
    • External Files (Part 3)
    • External Files (Part 4)
  • Aug 1, 2023
    Maya Pipeline Essentials
    • Export Selection
    • External Files (Part 1)
    • External Files (Part 2)
  • July 14, 2023
    Qt for Python: Tips and Tricks
    • Standard Locations
    • Resizing When Showing/Hiding Widgets
  • July 4, 2023
    Maya Python API (Vol. 4)
    • Managing a Primary Node (Part 1)
    • Managing a Primary Node (Part 2)
    • Editing a Primary Node (Part 1)
    • Editing a Primary Node (Part 2)
  • June 18, 2023
    Qt for Python: Tips and Tricks
    • Dynamic Context Menus
    • Always On Top
  • June 2, 2023
    Qt for Python: Tips and Tricks
    • Config Files with QSettings (Part 1)
    • Config Files with QSettings (Part 2)
    • Config Files with QSettings (Part 3)
  • May 15, 2023
    Maya Python API (Vol. 4)
    • Saving Custom Data (Part 4)
    • Saving Custom Data (Part 5)
  • May 2, 2023
    Maya Python API (Vol. 4)
    • Custom Data Types (Part 3)
    • Custom Data Types (Part 4)
    • Saving Custom Data (Part 1)
    • Saving Custom Data (Part 2)
    • Saving Custom Data (Part 3)
  • April 17, 2023
    Maya Python API (Vol. 4)
    • Custom Data Types (Part 1)
    • Custom Data Types (Part 2)
  • April 1, 2023
    Maya Python API (Vol. 4)
    • Nodes: Thinking Outside the Box
    • Traditional Node Workflow
    • Nodes Without Attributes (Part 1)
    • Nodes Without Attributes (Part 2)
    • Embedding Image Data
  • March 13, 2023
    Maya Pipeline Essentials
    • Simple Shot Manager (Part 5)
    • Simple Shot Manager (Part 6)
  • March 2, 2023
    Maya Pipeline Essentials
    • Simple Shot Manager (Part 1)
    • Simple Shot Manager (Part 2)
    • Simple Shot Manager (Part 3)
    • Simple Shot Manager (Part 4)
  • February 13, 2023
    Qt for Python: Tips and Tricks
    • Radial Pop-Up Menu (Part 6)
    • Radial Pop-Up Menu (Part 7)
  • February 2, 2023
    Qt for Python: Tips and Tricks
    • Radial Pop-Up Menu (Part 1)
    • Radial Pop-Up Menu (Part 2)
    • Radial Pop-Up Menu (Part 3)
    • Radial Pop-Up Menu (Part 4)
    • Radial Pop-Up Menu (Part 5)
  • January 16, 2023
    Maya Pipeline Essentials
    • Referencing (Part 3)
    • Referencing (Part 4)
  • January 2, 2023
    Maya Pipeline Essentials
    • Importing a Scene
    • Switching Maya Versions
    • Referencing (Part 1)
    • Referencing (Part 2)

2022

  • December 13, 2022
    Maya Pipeline Essentials
    • File Versioning (Part 1)
    • File Versioning (Part 2)
    • File Versioning (Part 3)
  • December 2, 2022
    Maya Pipeline Essentials
    • Scene Management Overview
    • Common File Operations
    • Maya ASCII and Binary Files
    • Saving and Opening Scenes
  • November 14, 2022
    Maya Pipeline Essentials
    • External Launcher (Part 3)
    • External Launcher (Part 4)
  • November 2, 2022
    Maya Pipeline Essentials
    • userSetup.py (Part 1)
    • userSetup.py (Part 2)
    • External Launcher (Part 1)
    • External Launcher (Part 2)
  • November 1, 2022
    Python 3 for Maya (Vol. 2)
    • Maya Scripting Essentials (11 videos)
    • Errors, Warnings and Exceptions (5 videos)
    • Insert Keyframe Tool (6 videos)
    • Creating UIs with Maya Commands (11 videos)
    • Introduction to Object-Oriented Programming (9 videos)
  • October 17, 2022
    Maya Pipeline Essentials
    • Environment Variables
    • Getting/Setting Environment Variables
    • Maya.env
  • October 2, 2022
    Maya Pipeline Essentials
    • Introduction
    • What is a Pipeline TD
    • Know Your Environment (Part 1)
    • Know Your Environment (Part 2)
    • Know Your Environment (Part 3)
    • Know Your Environment (Part 4)
  • September 13, 2022
    Maya Python API (Vol. 4)
    • Retiming Tool Redux (Part 8)
    • Retiming Tool Redux (Part 9)
  • September 2, 2022
    Maya Python API (Vol. 4)
    • Retiming Tool Redux (Part 5)
    • Retiming Tool Redux (Part 6)
    • Retiming Tool Redux (Part 7)
  • August 29, 2022
    Python 3 for Maya (Vol. 1)
    • Introduction (6 videos)
    • Maya Commands (7 videos)
    • Data Types (21 videos)
    • Statements (8 videos)
    • Functions (8 videos)
  • August 14, 2022
    Maya Tools: Auto-Rigging Basics
    • User Interface
    • Final Thoughts
  • August 2, 2022
    Maya Python API (Vol. 4)
    • Retiming Tool Redux (Part 1)
    • Retiming Tool Redux (Part 2)
    • Retiming Tool Redux (Part 3)
    • Retiming Tool Redux (Part 4)
  • July 14, 2022
    Maya Tools: Auto-Rigging Basics
    • Squash and Stretch (Part 3)
    • Squash and Stretch (Part 4)
    • End-To-End Testing
  • July 1, 2022
    Maya Tools: Auto-Rigging Basics
    • Squash and Stretch (Part 1)
    • Squash and Stretch (Part 2)
    • Deleting Construction History
  • June 16, 2022
    Maya Tools: Auto-Rigging Basics
    • Creating Shaders (Part 1)
    • Creating Shaders (Part 2)
    • Creating Shaders (Part 3)
  • June 3, 2022
    Maya Tools: Auto-Rigging Basics
    • Adding the Ball Control (Part 1)
    • Adding the Ball Control (Part 2)
    • Building a Curve Library (Part 1)
    • Building a Curve Library (Part 2)
    • Limiting Selection with Display Layers
  • May 23, 2022
    Qt for Python: Tips and Tricks
    • External Application Icons
  • May 12, 2022
    Maya Tools: Auto-Rigging Basics
    • Creating the Geometry
    • Working with Attributes (Part 1)
    • Working with Attributes (Part 2)
  • May 2, 2022
    Maya Tools: Auto-Rigging Basics
    • Bouncing Ball Auto-Rig Overview
    • Project Setup
    • Rig Hierarchy (Part 1)
    • Commands, Run Time Commands and Scripts
    • Rig Hierarchy (Part 2)
  • April 11, 2022
    Maya Tools: Auto-Rigging Basics
    • "Hello World" Auto-Rig (Part 3)
    • "Hello World" Auto-Rig (Part 4)
  • April 2, 2022
    Maya Tools: Auto-Rigging Basics
    • Introduction
    • Auto-Rigging Overview
    • "Hello World" Auto-Rig (Part 1)
    • "Hello World" Auto-Rig (Part 2)
  • March 24, 2022
    Maya Python API (Vol. 4)
    • Who's Bug Is It Anyways?
  • March 18, 2022
    Qt for Python: Tips and Tricks
    • Animating Custom Properties
  • March 10, 2022
    Maya Python API (Vol. 4)
    • AnimCurveCmd Plugin (Part 4)
    • AnimCurveCmd Plugin (Part 5)
  • March 2, 2022
    Maya Python API (Vol. 4)
    • AnimCurveCmd Plugin (Part 1)
    • AnimCurveCmd Plugin (Part 2)
    • AnimCurveCmd Plugin (Part 3)
  • February 15, 2022
    Maya API: Python to C++ (Vol. 2)
    • Distance Between Command (Part 1)
    • Distance Between Command (Part 2)
    • Distance Between Command (Part 3)
  • February 2, 2022
    Maya Python API (Vol. 4)
    • Animation Curves (Part 4)
    • Animation Curves (Part 5)
    • Animation Curves (Part 6)
  • January 15, 2022
    Maya API: Python to C++ (Vol. 2)
    • Distance Between Locator (Part 1)
    • Distance Between Locator (Part 2)
    • Distance Between Locator (Part 3)
  • January 2, 2022
    Maya Python API (Vol. 4)
    • Animation Curves (Part 1)
    • Animation Curves (Part 2)
    • Attributes, Plugs and Connections
    • Animation Curves (Part 3)

2021

  • December 15, 2021
    Maya API: Python to C++ (Vol. 2)
    • Simple Locator Node (Part 1)
    • Simple Locator Node (Part 2)
    • Simple Locator Node (Part 3)
    • Simple Locator Node (Part 4)
  • December 2, 2021
    Maya Tools: Shot Mask
    • User Interface (Part 1)
    • User Interface (Part 2)
    • User Interface (Part 3)
    • Final Cleanup
  • November 14, 2021
    Maya API: Python to C++ (Vol. 2)
    • Joint Create Context (Part 1)
    • Joint Create Context (Part 2)
    • Joint Create Context (Part 3)
  • November 2, 2021
    Maya Tools: Shot Mask
    • Fixing Shadows
    • Tags (Part 1)
    • Tags (Part 2)
    • Images (Part 1)
    • Images (Part 2)
    • Images (Part 3)
    • Cleanup
  • October 14, 2021
    Qt for Python: Tips and Tricks
    • Animating Properties (Part 1)
    • Animating Properties (Part 2)
  • October 2, 2021
    Maya Tools: Shot Mask
    • Drawing the Mask (Part 1)
    • Drawing the Mask (Part 2)
    • Drawing the Mask (Part 3)
    • Drawing the Mask (Part 4)
  • September 15, 2021
    Maya Tools: Shot Mask
    • Attributes (Part 1)
    • Attributes (Part 2)
    • Attributes (Part 3)
  • September 2, 2021
    Maya Tools: Shot Mask
    • Introduction
    • Project Overview
    • Project Setup
    • Visibility (Part 1)
    • Visibility (Part 2)
  • August 15, 2021
    Maya API: Python to C++ (Vol. 2)
    • Custom Select Context (Part 1)
    • Custom Select Context (Part 2)
    • Custom Select Context (Part 3)
  • August 2, 2021
    Maya Python API (Vol. 3)
    • Maya Modules (Part 1)
    • Maya Modules (Part 2)
    • Maya Modules (Part 3)
  • July 14, 2021
    Maya API: Python to C++ (Vol. 2)
    • Simple Context (Part 1)
    • Simple Context (Part 2)
    • Simple Context (Part 3)
  • July 1, 2021
    Qt for Python: Tips and Tricks
    • Endless Mouse Drag (Part 1)
    • Endless Mouse Drag (Part 2)
    • Endless Mouse Drag (Part 3)
    • Endless Mouse Drag (Part 4)
  • June 13, 2021
    Maya API: Python to C++ (Vol. 2)
    • Callbacks (Part 1)
    • Callbacks (Part 2)
  • June 1, 2021
    Qt for Python: Tips and Tricks
    • Value Ladder Widget (Part 1)
    • Value Ladder Widget (Part 2)
    • Value Ladder Widget (Part 3)
    • Value Ladder Widget (Part 4)
  • May 19, 2021
    Maya API: Python to C++ (Vol. 2)
    • Attract Deformer (Part 1)
    • Attract Deformer (Part 2)
  • May 10, 2021
    Maya Python API (Vol. 3)
    • Multi-File Plugins (Part 1)
    • Multi-File Plugins (Part 2)
  • May 1, 2021
    Maya Python API (Vol. 3)
    • Combining Plugins
    • MDGModifier (Part 1)
    • MDGModifier (Part 2)
    • MDGModifier (Part 3)
  • April 20, 2021
    Qt for Python: Tips and Tricks
    • QLineEdit Buttons
  • April 9, 2021
    Maya Python API (Vol. 3)
    • Ramp Attributes (Part 5)
  • April 2, 2021
    Maya Python API (Vol. 3)
    • Ramp Attributes (Part 1)
    • Ramp Attributes (Part 2)
    • Ramp Attributes (Part 3)
    • Ramp Attributes (Part 4)
  • March 22, 2021
    Maya API: Python to C++ (Vol. 2)
    • Blend Deformer (Part 1)
    • Blend Deformer (Part 2)
    • Blend Deformer (Part 3)
  • March 12, 2021
    Qt for Python: Tips and Tricks
    • Timers (Part 1)
    • Timers (Part 2)
  • March 2, 2021
    Maya Python API (Vol. 3)
    • Distance Between Locator (Part 1)
    • Distance Between Locator (Part 2)
    • Distance Between Locator (Part 3)
    • Distance Between Locator (Part 4)
  • February 22, 2021
    Maya Python API (Vol. 3)
    • Custom Node Icons
  • February 19, 2021
    Qt for Python: Tips and Tricks
    • QFileSystemWatcher
  • February 11, 2021
    Maya Python API (Vol. 3)
    • Locators (Part 5)
    • Locators (Part 6)
  • February 2, 2021
    Maya Python API (Vol. 3)
    • Introduction
    • Locators (Part 1)
    • Locators (Part 2)
    • Locators (Part 3)
    • Locators (Part 4)
  • January 20, 2021
    Maya API: Python to C++ (Vol. 2)
    • Introduction
    • Simple Deformer (Part 1)
    • Simple Deformer (Part 2)
  • January 12, 2021
    Qt for Python: Tips and Tricks
    • Resource Files
  • January 2, 2021
    Qt for Python: Tips and Tricks
    • Introduction
    • Collapsible Widget (Part 1)
    • Collapsible Widget (Part 2)
    • Collapsible Widget (Part 3)
    • Collapsible Widget (Part 4)

2020

  • December 16, 2020
    Maya Tools: FFmpeg Playblast
    • Overscan Update
  • December 14, 2020
    Maya Tools: FFmpeg Playblast
    • User Interface (Part 9)
    • User Interface (Part 10)
    • User Interface (Part 11)
    • User Interface (Part 12)
    • Final Thoughts
  • December 7, 2020
    Maya Tools: FFmpeg Playblast
    • User Interface (Part 6)
    • User Interface (Part 7)
  • December 2, 2020
    Maya Tools: FFmpeg Playblast
    • User Interface (Part 1)
    • User Interface (Part 2)
    • User Interface (Part 3)
    • User Interface (Part 4)
    • User Interface (Part 5)
  • November 20, 2020
    Maya Tools: FFmpeg Playblast
    • Node Visibility (Part 1)
    • Node Visibility (Part 2)
    • Node Visibility (Part 3)
  • November 11, 2020
    Maya Tools: FFmpeg Playblast
    • Encoding with ffmpeg (Part 3)
    • Cleanup
  • November 2, 2020
    Maya Tools: FFmpeg Playblast
    • Playblast Logic (Part 9)
    • Playblast Logic (Part 10)
    • Encoding with ffmpeg (Part 1)
    • Encoding with ffmpeg (Part 2)
  • October 20, 2020
    Maya Tools: FFmpeg Playblast
    • Playblast Logic (Part 7)
    • Playblast Logic (Part 8)
  • October 12, 2020
    Maya Tools: FFmpeg Playblast
    • Playblast Logic (Part 5)
    • Playblast Logic (Part 6)
  • October 2, 2020
    Maya Tools: FFmpeg Playblast
    • Playblast Logic (Part 1)
    • Playblast Logic (Part 2)
    • Playblast Logic (Part 3)
    • Playblast Logic (Part 4)
  • September 21, 2020
    Maya Tools: FFmpeg Playblast
    • Introduction
    • Project Overview
    • Production Quality
    • Requirements
  • September 11, 2020
    FFmpeg in Production
    • DNxHD Encoding
  • September 2, 2020
    Maya API: Python to C++ (Vol. 1)
    • Simple Command (Part 1)
    • Simple Command (Part 2)
    • Simple Command (Part 3)
    • Simple Command (Part 4)
  • August 21, 2020
    FFmpeg in Production
    • Adding a Timecode
  • August 12, 2020
    Python in Production
    • Logging in Maya
    • Extending the Logger Class
    • Logging to a Qt Widget
  • August 2, 2020
    Python in Production
    • Logging (Part 1)
    • Logging (Part 2)
    • Logging (Part 3)
    • Logging (Part 4)
    • Logging (Part 5)
  • July 21, 2020
    Maya Python API (Vol. 2)
    • Draw Persistence in Contexts
  • July 13, 2020
    Maya API: Python to C++ (Vol. 1)
    • Rolling Node
    • Organizing a Project
  • July 2, 2020
    Maya API: Python to C++ (Vol. 1)
    • Debugging Basics (Part 1)
    • Debugging Basics (Part 2)
    • Debugging Basics (Part 3)
    • Debugging Basics (Part 4)
  • June 22, 2020
    Maya API: Python to C++ (Vol. 1)
    • Visual Studio Extensions
    • Multiply Node
  • June 15, 2020
    Maya API: Python to C++ (Vol. 1)
    • Automating Plugin Reloads (Part 1)
    • Automating Plugin Reloads (Part 2)
  • June 8, 2020
    Maya Python API (Vol. 2)
    • Pipeline Tips: End-User Testing
  • June 2, 2020
    Maya Python API (Vol. 2)
    • Joint Create Context (Part 1)
    • Joint Create Context (Part 2)
    • Joint Create Context (Part 3)
  • May 21, 2020
    FFmpeg in Production
    • Complex Filters (Part 1)
    • Complex Filters (Part 2)
  • May 11, 2020
    Maya Python API (Vol. 2)
    • Custom Select Contex (Part 1)
    • Custom Select Contex (Part 2)
  • May 2, 2020
    Maya Python API (Vol. 2)
    • Contexts (Part 1)
    • Contexts (Part 2)
    • Contexts (Part 3)
    • Contexts (Part 4)
  • April 17, 2020
    Maya API: Python to C++ (Vol. 1)
    • HelloWorld Node (Part 1)
    • HelloWorld Node (Part 2)
    • HelloWorld Node (Part 3)
  • April 9, 2020
    Maya API: Python to C++ (Vol. 1)
    • Common Build Errors
    • MStatus
  • April 2, 2020
    Python in Production
    • Separating the Logic and UI (Part 1)
    • Separating the Logic and UI (Part 2)
  • March 19, 2020
    Maya API: Python to C++ (Vol. 1)
    • HelloWorld Command (Part 1)
    • HelloWorld Command (Part 2)
  • March 9, 2020
    Maya API: Python to C++ (Vol. 1)
    • Example Projects
    • Improving Build Workflow
  • March 2, 2020
    Maya API: Python to C++ (Vol. 1)
    • Introduction
    • Build Environment Overview
    • Installing Visual Studio
    • Creating a Maya Plugin Project
    • Empty Maya Plugin
  • February 12, 2020
    FFmpeg in Production
    • Extracting a Single Image
    • Trimming Video Files
  • February 2, 2020
    Python in Production
    • Multithreading (Part 1)
    • Multithreading (Part 2)
    • Multithreading (Part 3)
  • January 20, 2020
    FFmpeg in Production
    • Overwrite Options
    • ffmpeg and Python
    • Qt Frontend
  • January 9, 2020
    PySide2 for Maya (Vol.2)
    • Adding a Tab Bar (Part 1)
    • Adding a Tab Bar (Part 2)
  • January 1, 2020
    Maya Python API (Vol. 2)
    • Traversing the DAG (Part 1)
    • Traversing the DAG (Part 2)

2019

  • December 15, 2019
    FFmpeg in Production
    • Codecs and Containers
    • Converting and Transcoding
    • Generating an Image Sequence
  • December 1, 2019
    FFmpeg in Production
    • Introduction
    • Installing ffmpeg
    • Command Basics
    • Encoding an Image Sequence
    • H.264 Encoding
    • Output Resolution and Pixel Format
    • Adding Audio
    • Audio Pitfalls
  • November 11, 2019
    PySide2 for Maya (Vol. 3)
    • Pop-Up Windows (Part 1)
    • Pop-Up Windows (Part 2)
  • November 2, 2019
    Maya Python API (Vol. 2)
    • Callbacks (Part 1)
    • Callbacks (Part 2)
    • Callbacks (Part 3)
  • October 21, 2019
    Maya Python API (Vol. 2)
    • Accessory Nodes
  • October 15, 2019
    Maya Python API (Vol. 2)
    • Attract Deformer
    • Optimizing the Attract Deformer
  • October 7, 2019
    Maya Python API (Vol. 2)
    • Blend Deformer (Part 1)
    • Blend Deformer (Part 2)
    • Blend Deformer (Part 3)
  • October 2, 2019
    Maya Python API (Vol. 2)
    • Introduction
    • Deformer Basics (Part 1)
    • Deformer Basics (Part 2)
    • Deformer Basics (Part 3)
    • Deformer Basics (Part 4)
  • September 16, 2019
    PySide2 for Maya (Vol. 3)
    • Custom Maya Overlays (Part 4)
    • Custom Maya Overlays (Part 5)
  • September 9, 2019
    PySide2 for Maya (Vol. 3)
    • Custom Maya Overlays (Part 1)
    • Custom Maya Overlays (Part 2)
    • Custom Maya Overlays (Part 3)
  • September 2, 2019
    PySide2 for Maya (Vol. 3)
    • Drag and Drop (Part 1)
    • Drag and Drop (Part 2)
    • Drag and Drop (Part 3)
    • Drag and Drop (Part 4)
  • August 19, 2019
    Python in Production
    • Automation with Sockets (Part 7)
    • Automation with Sockets (Part 8)
  • August 12, 2019
    Python in Production
    • Automation with Sockets (Part 5)
    • Automation with Sockets (Part 6)
  • August 2, 2019
    Python in Production
    • Automation with Sockets (Part 1)
    • Automation with Sockets (Part 2)
    • Automation with Sockets (Part 3)
    • Automation with Sockets (Part 4)
  • July 18, 2019
    PySide2 for Maya (Vol. 3)
    • Native Maya Widgets (Part 2)
  • July 15, 2019
    PySide2 for Maya (Vol. 3)
    • Native Maya Widgets (Part 1)
  • July 8, 2019
    PySide2 for Maya (Vol. 3)
    • Event Filtering
  • July 2, 2019
    PySide2 for Maya (Vol. 3)
    • Event Overview
    • Event Handling (Part 1)
    • Event Handling (Part 2)
    • Event Handling (Part 3)
  • June 24, 2019
    Maya Python API (Vol. 1)
    • Command Basics (Part 5)
  • June 17, 2019
    Maya Python API (Vol. 1)
    • Command Basics (Part 3)
    • Command Basics (Part 4)
  • June 10, 2019
    Maya Python API (Vol. 1)
    • Command Basics (Part 1)
    • Command Basics (Part 2)
  • June 3, 2019
    Maya Python API (Vol. 1)
    • Attribute Properties
    • Development Tips 01
    • Rolling Node
    • Development Tips 02
  • May 20, 2019
    Maya Python API (Vol. 1)
    • Custom Nodes
    • Simple Math Node (Part 1)
    • Simple Math Node (Part 2)
    • Simple Math Node (Part 3)
  • May 7, 2019
    Maya Python API (Vol. 1)
    • The Dependency Graph
    • Nodes
    • Modifying Attributes
  • May 2, 2019
    PySide2 for Maya (Vol. 3)
    • Introduction
    • Docking (Part 1)
    • Docking (Part 2)
    • Docking (Part 3)
    • Docking (Part 4)
    • Docking (Part 5)
    • Docking (Part 6)
    • Docking (Part 7)
  • April 15, 2019
    Maya Python API (Vol. 1)
    • Documentation and DevKit
    • Maya API Basics (Part 1)
    • Maya API Basics (Part 2)
  • April 8, 2019
    Maya Python API (Vol. 1)
    • Maya Plugin Template
    • HelloWorld Command
    • HelloWorld Node (Part 1)
    • HelloWorld Node (Part 2)
  • April 2, 2019
    Maya Python API (Vol. 1)
    • Introduction
    • What is the Maya API
    • Maya API vs Maya Commands
    • C++ vs Python
    • Maya Python API 2.0
    • Undo and Redo
    • Maya Plugin Basics
  • March 22, 2019
    PySide2 for Maya (Vol.2)
    • Pipeline Tips: Organizing Code
  • March 21, 2019
    PySide2 for Maya (Vol.2)
    • Light Panel Example (Part 8)
  • March 20, 2019
    PySide2 for Maya (Vol.2)
    • Light Panel Example (Part 7)
  • March 19, 2019
    PySide2 for Maya (Vol.2)
    • Light Panel Example (Part 6)
  • March 18, 2019
    PySide2 for Maya (Vol.2)
    • Maya Script Jobs
  • March 14, 2019
    PySide2 for Maya (Vol.2)
    • Light Panel Example (Part 4)
    • Light Panel Example (Part 5)
  • March 11, 2019
    PySide2 for Maya (Vol.2)
    • Light Panel Example (Part 1)
    • Light Panel Example (Part 2)
    • Light Panel Example (Part 3)
  • March 3, 2019
    PySide2 for Maya (Vol.2)
    • Embedding Maya Controls (Part 1)
    • Embedding Maya Controls (Part 2)
  • February 22, 2019
    Python in Production
    • Qt Dark Mode
  • February 18, 2019
    Python in Production
    • A Practical JSON Example (Part 1)
    • A Practical JSON Example (Part 2)
  • February 12, 2019
    Python in Production
    • JSON Overview
    • JSON in Python
  • February 4, 2019
    Python in Production
    • Introduction
    • VFX Reference Platform
    • Installing Python 3
    • Development Environment
    • Package Management
    • Virtual Environments
    • Keep It Simple
    • Qt For Python
    • Standalone Qt Application
  • January 25, 2019
    PySide2 for Maya (Vol.2)
    • Custom Color Button (Part 1)
    • Custom Color Button (Part 2)
  • January 16, 2019
    PySide2 for Maya (Vol.2)
    • Show in Folder (Part 1)
    • Show in Folder (Part 2)
  • January 14, 2019
    PySide2 for Maya (Vol.2)
    • Traversing Directories
  • January 9, 2019
    PySide2 for Maya (Vol.2)
    • Adding Images (Part 2)
  • January 7, 2019
    PySide2 for Maya (Vol.2)
    • Introduction
    • QDialog vs. QWidget
    • Adding Images (Part 1)

2018

  • December 17, 2018
    Qt Designer, PySide2 and Maya
    • Preferences Dialog (Part 1)
    • Preferences Dialog (Part 2)
  • December 10, 2018
    Qt Designer, PySide2 and Maya
    • Editing Properties
    • Signal/Slot Editing
    • Loading UI Files
    • Pipeline Tips
    • Loading Dialogs
  • December 6, 2018
    Qt Designer, PySide2 and Maya
    • Exploring the Interface
    • Qt Creator/Designer Differences
    • Layouts (Part 1)
    • Layouts (Part 2)
  • December 2, 2018
    Qt Designer, PySide2 and Maya
    • Introduction
    • Installing Qt Designer
    • Quick Start (Part 1)
    • Quick Start (Part 2)
  • November 26, 2018
    PySide2 for Maya (Vol. 1)
    • PySide Compatibility
  • November 20, 2018
    PySide2 for Maya (Vol. 1)
    • Progress Bars (Part 1)
    • Progress Bars (Part 2)
  • November 15, 2018
    PySide2 for Maya (Vol. 1)
    • Outliner Example (Part 6)
  • November 12, 2018
    PySide2 for Maya (Vol. 1)
    • Outliner Example (Part 4)
    • Outliner Example (Part 5)
  • November 7, 2018
    PySide2 for Maya (Vol. 1)
    • Outliner Example (Part 1)
    • Outliner Example (Part 2)
    • Outliner Example (Part 3)
  • October 31, 2018
    PySide2 for Maya (Vol. 1)
    • Maya's Resource Browser
    • QTreeView File Explorer
  • October 29, 2018
    PySide2 for Maya (Vol. 1)
    • QSpinBox
    • Pipeline Tips 02
  • October 16, 2018
    Maya Tools: Retiming Tool
    • PySide2 UI
    • Undo Caveat
  • October 11, 2018
    Maya Tools: Retiming Tool
    • Introduction
    • Helper Methods
    • Calculating Keyframe Times
    • Recursive Retiming
    • Move to Next
    • Native UI
  • October 2, 2018
    PySide2 for Maya (Vol. 1)
    • QTableWidgets (Part 2)
    • QTableWidgets (Part 3)
    • QTableWidgets (Part 4)
    • QTableWidgets (Part 5)
  • October 1, 2018
    PySide2 for Maya (Vol. 1)
    • QListWidget Basics
    • QListWidget Multi-Select
    • QTableWidgets (Part 1)
  • September 20, 2018
    PySide2 for Maya (Vol. 1)
    • Modal Dialogs
    • Standard Dialogs
  • September 13, 2018
    PySide2 for Maya (Vol. 1)
    • Pipeline Tips 01
  • September 6, 2018
    PySide2 for Maya (Vol. 1)
    • Open Import Dialog (Part 1)
    • Open Import Dialog (Part 2)
    • Open Import Dialog (Part 3)
    • Open Import Dialog (Part 4)
    • Open Import Dialog (Part 5)
  • September 5, 2018
    PySide2 for Maya (Vol. 1)
    • Documentation
    • Signals and Slots (Part 2)
    • Signals and Slots (Part 3)
  • September 2, 2018
    PySide2 for Maya (Vol. 1)
    • Layout Basics
    • Deleting a Dialog
    • Signals and Slots (Part 1)
  • August 27, 2018
    PySide2 for Maya (Vol. 1)
    • Introduction
    • Creating a Dialog
    • Adding Widgets