INTERESTED IN THIS COURSE?

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

Thank you for your interest, you will be notified next time this course runs.

Oops, something went wrong:

Manage subscriptions
  • Difficulty Level:

    workshop-level-a A
    advanced
  • Keywords: DYNAMIC FX| PROGRAMMING| 3D

COURSE OVERVIEW

Shawn Lipowski currently works for Psyop in New York as a FX Artist having just completed a seven year term working through the ranks at Look Effects in New York to become a Senior TD. So spend eight weeks exploring the fastest, most powerful programming language to ever be embedded in 3D software: VEX. It’s the multi-threaded code at the core of Houdini’s unparalleled procedural visual effects workflow and, much like XSI’s brilliant ICE workflow, the code can be generated visually via a node graph.

So why write code, when you can plug and play? "We’ll answer that with examples expressed more succinctly and beautifully in pure code," says Shawn."But more than just teaching you the library of functions in some exhaustive exercise of rote memorization, I want to walk you through the implementation of real algorithms culled from papers and vfx projects alike."

The first week is an intro to VEX, followed by two weeks of broad strokes coverage, then we will launch into actual projects, one per week.

Some of what you’ll Learn:

Querying data via point clouds & volume functions

Inline vops, wrangles, VEX otls, and external code

Volume advection in Sops and Mantra

Hydraulic terrain erosion

Reaction diffusion

Delayed load magic

Rapid geometry creation in CVEX

Space colonization algorithms for organic effects

Flocking and fuzzy boid brains

Troubleshooting: “Y u no compile?”

Shawn's personal workflow for coding VEX, useful tools.

Weekly Units 8

Videos 51
Total Video Duration 25 hours
Resource Downloads - weekly 

Classroom Access Policy

CGMA policy states that all students will have access to classroom content for the duration of the class plus 4 weeks to review content. After this time is up classroom content will no longer be available.

For those classes with live Q&As, Q&A recordings as well as feedback recordings will be available for up to 6 months after the class is complete.

Certificate of Completion Policy

CGMA policy allows students to miss up to 2 assignments per class before they become ineligible to receive their Certificate of Completion.

What You'll Learn

Within the first week you’ll be coding simple vex snippets in the new wrangle nodes. As you advance, you’ll be making more sophisticated tools which leverage the latest features of VEX like geometry creation.


By the end of the course you’ll be implementing state of the art algorithms in multiple Houdini contexts from surfaces to simulations, shaders and even procedural volumes. I then leave you with the Uncle Ben speech “with great power comes great responsibility.”

WEEK BY WEEK OUTLINE

Week 1 - VEXing Questions Answered

We’ll kick off by talking about how VEX is different than your mom/dad’s C-based language.We’ll look at how VOPs compile into VEX code, examine VEX’s strengths and weaknesses, and we’ll untangle the mess that is inline vops, wrangles, otls, and external vex. There will be a quick overview of useful VEX functions, types, casting, macros, and pragmas (again, if you’re comfortable with c-like syntax, this will be a breeze). If your head isn’t spinning too much, we’ll finish with a some simple examples.

Bonus video: VEX coding with SublimeText, vcc compilation checking and vexexec for simple testing. It’s not required that you use SublimeText, but if you already do use ST or would like to try it out, I’ll walk you through the very painless setup I use.

Week 2 - Sop-land VEX: TRONing day begins

This week we’re pushing points in parallel, querying point clouds for all our spatial needs, and creating geometry in the CVEX context. Noise functions are covered in detail, including how VOPs like Anti-Aliased Noise generate their code. We’ll start to get heavy into iteration and branching: tasks that could be done visually in VOPS, but which will be expressed more succinctly in code. We’ll take this knowledge and craft some impressive generative art and yes, we’ll explore the visual style of interfaces in movies like Tron.

Week 3 - Shop-land VEX: That good ol’ render-time magic

Shaders, volumes, and procedurals, oh my! We leverage mantra and CVEX to generate rendertime detail. We’ll use these techniques again, especially in week seven. This is the last week we do broad coverage and in week four we’ll move to a project-per-week model.

Week 4 - Reaction-Diffusion: Emergent complexity visualized with VEX

Reaction-diffusion is a stunningly simple two-step chemical reaction model where one substance affects another, the result of which is diffused (blurred). With a few modifications we can have our own laboratory in VEX using the work of Jonathan McCabe: “Cyclic Symmetric Multi-Scale Turing Patterns”.

Week 5 - Fuzzy Flocking: A new twist on Craig Reynold’s boids

Boids, the most common flocking system model, have been around since the 80’s and are now a built in feature of many 3d packages. Houdini even comes with built in particle forces which emulate the most important behaviors between flocking particles: alignment and attraction. The way most packages implement this is, however, very precise, mathematical, and in no way like what a bird or other flocking animal thinks when it’s part of a swarm. We’ll explore another way of doing this quickly in VEX based on the paper “Boids with a Fuzzy Way of Thinking.”

Week 6 - Space Colonization Algorithms: VEX geometry creation for realistic growth

A unique approach to growing geometry which leverages what VEX is best at: fast point cloud queries. We’ll generate our points and branches with the new attribute wrangle sop. We’ll explore this technique as it relates to natural phenomena like plants, coral, lightning and other fractal structures. We’ll compare this with a traditional procedural model. Examples based on the work “Modeling Trees with a Space Colonization Algorithm.”

Week 7 - Gridless Advection: Cloudy with a chance of VEX

Upres-ed volume sims are now an indispensable part of visual effects. We’ll take a look at how this is done in SOPs and at render time for both static (clouds) and dynamic volumes (smoke sims). Based on the work by Rythm & Hues Studio “I Love It When A Cloud Comes Together 

Week 8 - Hydraulic and Thermal Erosion: Uncanny-valleys become natural-valleys

We’ll use VEX to turn those uncanny-valleys into natural looking valleys. Eroding almost any terrain gives an immediate improvement in realism- even geometric height maps become interesting after a small custom VEX sim. Adopted from “Fast Hydraulic and Thermal Erosion on the GPU.”

WHAT YOU'LL NEED

Ability

Professional or student, you must be comfortable working in Houdini in a TD capacity, this includes working in the Sop/Shop/VOP contexts, and you must have one C-like language under your belt already (C, C++, MEL, RSL, Java).

I recommend having a working knowledge of Python as it is often used to prep data for processing with VEX. It’s also at the core of many Houdini digital assets and visual effects pipelines.

This is not an intro to programing class and assumes knowledge of the principles common to any programming language: functions, variables, iteration, and so on. Most of learning VEX is learning the library of built-in functions and the contexts which make them available.

Additionally, a small amount of math will be required: vectors and matrices will be tossed about, but I’ll try to explain concepts visually when possible and not through exhaustive proofs laden with intimidating symbols. We’ll keep it fun!

That said, a basic linear algebra book or Khan Academy’s linear algebra videos would make for a great refresher. See Vectors and Spaces or Matrices and Transforms:

Houdini's Apprentice education edition software is available as a free download and is feature complete for our purposes. You’ll also require a good programmer’s text editor like VIM or my personal favorite, SublimeText.