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 Basic Python

An introduction to the basic python language syntax

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

Lecture 3 Files and Data

This lectures introduces the concept of file I/O and data processing

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 Introduction to OO in Python

This lecture will introduce Object Oriented concepts and Classes in python

Lecture 4 Databases and SQL


Lecture 4 Testing and TDD

Using Unit tests in python

Lecture 5 Test Driven Development

This lecture will demonstrate the use of Test Driven development and design in python

Lecture 5 GUI's and HCI


Lecture 6 Systems Programming


Lecture 7 Devops


Lecture 8 Multithreading


Lecture 9 Multithreading


Lecture 10 Documentation and Deployment


Installing Python Modules

How to install local python modules in the Linux Labs

Lab 1 Python Setup and Install

Aims The aim of this lab is to help setup and install python and various other tools Using PyEnv for installation of python versions Using Pip to install packages Setup VSCode to edit and run python files Why do I need PyEnv?

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 ~/.

Lab 2 Functions and Modules

Aims The aim of this lab is to setup a simple python project using the Turtle module and experiment with writing code and functions. By the end of the Lab we should be able to

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.

Lab 3 Test Driven Development

Aims The aim of this lab is to introduce the process of test driven development (TDD) and develop some simple tests, we will use the following steps. Project Setup Test Setup Test Driven Design of a Simple RGBA class using Version control Storing Pixels It is common to store image pixel data using a single unsigned int32_t data type.

Computational Thinking

What is Computational Thinking? The idea of computational thinking is allow us to look at problems and determine the best way for a computer to solve this (and related problems).

Databases and SQL

Databases and SQL

Setup Python for Machine Learning and AI

Introduction In Lab1 we introduced the PyEnv tool to allow us to install various versions of python either locally or globally. In the following examples we will explore how we can setup and install specific ML libraries into a Virtual Environment using the global PyEnv python.

Type Hints

Aims We will investigate some modern python features and concepts by developing some small programs. Type Hinting Type hints were added to python 3.5 as a way of adding support for linters and 3rd party tools to check code for possible errors.


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.


A portable asset datatbase for DCC tools

Aslan Saparov

This thesis report documents the terrain generation, the research on different methods and techniques possible to generate a terrain as well as the implementation of it in this project.

Yiyang Huang

This project aimed to build a artist-friendly tool which could edit details of toon shading.

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