Lecture 1 Introduction to Python

Some Basic Python

Lab 2 Some Unix tools

The aim of this lab is to look at methods of batch processing data (scene files) using both built in Unix / Linux tools as well as python. Standard unix tools for finding things Unix has a number of tools to allow searching and locating files.

Lecture 1 Introduction

Slides Links and Resources Pipeline Patterns Pixar’s USD

Lab 1 Python Setup

The aim of this lab is to setup our python environment in the lab and give you the ability to setup something similar at home. I will video it live and upload afterwards as this will mainly be an interactive session.

Lecture 2 The structure of a DCC

Slides Links and Resources

Lecture 2 Python Control Structures

Basic python control structures

Lecture 3 Test Driven Development

Introduction to TDD

Lab 3 Some Python Topics

The aim of this lab is to introduce some core Python (3) concepts and ideas. Whilst some of these may seem unconnected I use many of these techniques and ideas day to day and will generally form part of a larger python ecosystems and deployment.

Lecture 3 Why Python

Slides References

Lecture 3 Python I/O and Classes

File processing, stand alone programs and Basic OO

Lecture 4 Databases and SQL


Lecture 4 Testing and TDD

Using Unit tests in python

Lecture 5 Devops


Lecture 6 Systems Programming


Lecture 7 GUI's and HCI


Lecture 8 Multithreading


Lecture 9 Multithreading


Lecture 10 Documentation and Deployment


Installing Python Modules

How to install local python modules in the Linux Labs

Install and Setup of PyEnv

PyEnv can be installed by downloading from here or if using a mac use brew install pyenv If downloading from github do the following git clone ~/.pyenv cd ~/.

MayaPY not working

When running the following code in a mayapy session import maya.standalone maya.standalone.initialize(name='python') The interpreter never returns for the next line of code. TL;DR was an issue with my where I use cmds.

Databases and SQL

Databases and SQL


Why do I need it? Life is too short to tidy up code by hand. Black is an opinionated python formatter. By using it, you agree to cede control over minutiae of hand-formatting.


Why do I need it? numpy is “The fundamental package for scientific computing with Python”. In particular it gives us fast and efficient array types which can be used with C/C++ types as well.

Rich & Textual

Why do I need it? These two co-related modules will make your command line tools better. “Rich is a Python library for rich text and beautiful formatting in the terminal”, “Textual is a TUI (Text User Interface) framework for Python inspired by modern web development.

Generating unit-test data with Julia

Using Julia to generate unit test data for my Matrix classes in python

Many ways to build a Vec3

We look at diffent ways of building a simple Vec3 class in python

Dmitrii Shevchenko

This project presents a modular rigging pipeline that enables user to create rigs using either Python API directly or via node-based interface. The system aims to be extensible, allowing rigger to add new custom rig components or extend already existing ones. In order to be tool-oriented this pipeline utilizes metadata concept and component to Python class bindings which leads to consistent functionality for any additional tools.

Edward Barnes

This project did .......

How to install Renderman Pro-Server

How to setup and run renderman and python.

Lecture 3 Lighting in Maya

An introduction to lightin in Maya

Using USD with python

some basic instructions for using Pixar's USD in the labs

Renderman Plugin guide

This page lists the rib and python syntax for all of the current renderman plugins.

Renderman Plugin guide

This page lists the rib and python syntax for all of the current renderman plugins.


Online Renderman hekp

Lecture 2 Geometry in Renderman

An introduction to the different geometry types in renderman

Introduction to Renderman and Python

An introduction to renderman and the python api

Lecture 3 Lighting in Renderman

Lighting in renderman

Eimear Crotty

Vulkan is a low-level graphics and compute API which aims to provide users with faster draw speeds by removing overhead from the driver. The user is expected to explicitly provide the details previously generated by the driver. The resulting extra code can be difficult to understand and taxing to write for beginners, leading to the need for a helper library.

Lecture 2 Maya and Python.

Using Python and PyMel