INTERESTED IN THIS COURSE?

This course is closed for enrollments, submit the form to get notified early next time this course runs.

Name:Email:

Course Overview

***FINAL RUN - this is the last time Shaun will be running this incredibly popular workshop***

This run he will be incorporating live web sessions in to the course content.

It can be hard to learn your first scripting language and just as hard to make the transition from one to another. One of the hurdles you might face when making this transition is learning how to think like a Python programmer.

In this workshop, we’ll learn how to do this and begin to take advantage of the incredible tool set available to you in Python. Understanding Python opens you up to potential work in areas you might have never considered; other programs, and even other fields. Python is used in many areas other than just Autodesk’s Maya, Houdini or Nuke. In fact, Python is used extensively by companies like, NASA, Google, YouTube, New York Stock Exchange and many more.

New to this course, Shaun will be conducting regular live web classes to help trouble shoot anything that may be holding you back as the weeks progress.

Long before working in Visual FX, Shaun was a Martial Arts Instructor/ Stunt Man in his home town of Los Angeles California, teaching an ancient Korean art known as Hwa Rang Do. In 2001 Shaun left the Dojang where he lived with his Master, and began teaching himself Computer Science with a specific interest in expressing natural and unnatural phenomena. After a few years he began working on smaller projects with museums and advertising agencies as an FX Technical Director.

In 2008 Shaun landed his dream job at Weta Digital in Wellington New Zealand working on James Cameron’s Avatar. He worked in the Layout Department dressing sets, building 3D environments, and writing tools. Towards the end of the film he worked with shots and FX depts. simulating/rendering smoke and fire FX for the ground battle sequences including the Direhorse on fire shot.

Shaun continues to work as a Technical Director at Weta, where his responsibilities range from developing, implementing and supporting workflows, to troubleshooting and debugging.

“I’m really passionate about Visual FX and Python, having the opportunity to share what I have learned is a great honor.” Shaun Friedberg

"Shaun provided students with varying knowledge of python the opportunity to learn and expand their knowledge of core python concepts, but at the same time challenging us to be as creative as possible with assignments. I look forward to courses that Shaun may teach in the near future."

- student, April 2011

Shaun Friedberg

Shaun Friedberg (Pyrokinesis) is Technical Director at Weta Digital in Wellington New Zealand where he started by working on James...

During this workshop, the initial weeks will be spent getting to know Python and scripting concepts in general, using examples inside Maya. After covering the basics, you’ll hit the ground running with intermediate level concepts and implementations. You will cover topics from Parsing and writing xml files, to creating our own version of the Mel sphrand command. With Python in Maya you can build User interfaces, animate and create particle systems, manipulate geometry, create our own custom nodes and more.

Each week will begin with several video tutorials and the accompanying Python code to study. Most of your time will be spent inside Maya applying the concepts you are learning through useful examples, focusing on the types of tasks you might encounter in production. At the end of each week, you will work on a production level script with Shaun writing and discussing the theories and techniques being applied, line by line.

Shaun currently works as a Technical Director at Weta, where his responsibilities range from developing, implementing and supporting workflows, to troubleshooting and debugging.

Some of Shaun’s credits include: The Hobbit: Part 1X-Men: First ClassRise of the ApesThe Adventures of Tintin: The Secret of the UnicornGulliver's TravelsPredatorsThe A-TeamAvatar

Week One: Introduction to Python in MayaIn week one, we’ll talk s little about what Python is and what we can do with it, in and outside of Maya. We will also learn how to fish for information in the Python docs, Maya docs, and online. The majority of examples will be executed inside Maya where we will also walk through setting up a development environment.

1. Introduction to the course and what to expect

2. What Is Python and what can we do with it

3. How to run and source Python scripts from within Maya

4. Getting to know the docs for Python both in Maya and on-line

5. Helpful commands; dir(), help(), type()

6. How to Set Up an IDE (Interactive Development Environment) or Script Editor

7. Basic Maya Commands

Assignments this week - Get an IDE or script editor plugged into Maya, install software: Python, Ipython, Java (depending on your IDE) Due this week. Workload: around one hour.

Week Two: Python Anatomy 101It's important to understand a few core concepts before we get bogged down. Week two will be driven by examples inside Maya involving manipulating and creating geometry, basic file handling and more. Shaun will introduce commenting, doc strings and the importance of making your code readable, and quickly cover the Zen of Python, along with a few of my Shaun’s own words to code by.

1. Variables

2. Strings

3. Numbers

4. Lists

5. Dictionaries

6. Sets

7. Logic

8. Loops

9. Commenting and Doc Strings

10. The Zen Of Python

11. Functions

Assignments this week - We will be covering a lot of ground and learning a lot of new Maya commands in the process. For your assignment this week, use what you have learned so far to write a script which will get and store information about mesh in your scene. i.e. faces, vertices, etc. Due this week. Workload: up to three hours.

Week Three: An introduction to Maya nodes and converting Mel to PythonA great way to learn Maya commands is to get feedback from the Mel script editor and convert them to Python. In week three we will talk about how Mel and Python are integrated into Maya, and some of the benefits of using Python over Mel and vice versa.

1. How is Python implemented in Maya

2. Converting Mel to Python

3. Python vs. Mel (Why not just use Mel)

4. How to call Mel from Python and Python from Mel

Assignments this week - You will be provided with a list of commands and a function to convert from Mel to Python. Due week four. Workload: up to four hours.

Week Four and Five: Useful Maya commands, and structuring re-usable codeUp to this point we have covered isolated scripting while learning a lot of the basics. In week four you’ll learn about getting and setting attributes and making sure you are querying the right node type, and other debugging tips, while adding to your repertoire of useful commands, and building reusable functions. In Week five, you’ll build on what you learned in Week four by adding levels of complexity to your calls. You will introduce options for randomizing values, and take it a step further by writing a spherically random function.

4. Writing our own simple version of the Mel sphrand command in Python

5. Putting it all together into reusable code

Assignments this week - Write your own function to randomly edit a nodes transform attribute, either rotation, translation or scale, or randomly generate nodes in a given area. Due week five. Workload: up to five hours.

Week Six: Python and XmlThis week we will talk about using Xml to store and pass on data. We'll discuss a few concepts regarding how to format and manage your xml. We will read and write xml files as well as build an Xml file which describes a Maya scene.

1. What is Xml

2. Which Python Module to use

3. Parsing (reading) Xml

4. Writing Xml

5. Create an Xml file representing your Maya scene

Assignments this week - Write a Python script to write out an xml representation of your Maya scene. Due week seven. Workload: up to three hours.

Week Seven and Eight: GUI Building in MayaIn week seven we will review some of our options, commands and paradigms (basic design flow), and implement a few simple examples. Once we have the basics down, week eight will be about implementing more complex and production ready examples, along with some tricks of the trade.

1. What are our options for building UI’s in Maya

2. Layouts

3. Controls

4. Menus

5. Putting it all together

6. Making examples out of context, and just for fun

7. More complex and production ready examples

8. A few tricks of the trade

Assignment this week - Create a UI, however simple or complex. The emphasis on this project is the flow of your script not how fancy the functionality is. Due week eight. Workload: up to six hours.

Level of AbilityThis course is specifically geared towards beginning and intermediate level students and anyone trying to make the transition from Mel to Python. Although not neccessary, it is desirable that you have a basic knowledge of Maya or Python.

Software and Hardware RequirementsStudents will require the following:Students need a minimum 512mb RAM and a 2GHz+ CPU but as with all 3D, the more powerful the better!

Students must have access to a version of Autodesk Maya 2008 or later

Mac, PC, or Linux is suitable

Other RequirementsA broadband connection to the internet will be required to view streaming videos as well as the substantial image files for the exercises. It recommended that you have have a minimum of 1 GB of RAM and a fast processor.

Students need to be familiar with web navigation and browsing, as well as email.

Students need to be familiar with using a bulletin board system (such as CGTalk.com) as well as how to upload attachments to postings for review.

WorkloadReading & Research: 3-5 hours per week.

The CGSociety

The CGSociety is the most respected and accessible global organization for creative digital artists. The CGS supports artists at every level by offering a range of services to connect, inform, educate and promote digital artists worldwide.