The Artist's Guide to Technical Direction in Houdini: HScript by MIX Training

The Artist's Guide to Technical Direction in Houdini: HScript

Houdini is a powerful Digital Content Creation tool which boasts a flexible, procedural, node-based paradigm.

Houdini is a powerful Digital Content Creation tool which boasts a flexible, procedural, node-based paradigm.
While it has become popular due in no small part to it's fantastic pre-made work-flows for pyrotechnics and other visual effects, a large part of it's strength comes from it's sheer flexibility.
A user who knows the ins and outs of Houdini's networks can harness it to do almost anything they can think of. It should therefore come as no surprise that it sees use in not only the artistic / entertainment industries but also in the technical / scientific industries.
While there are many tutorials out there that do an excellent job of showcasing the flashier aspects of Houdini, a common shortfall of these lessons is that they spend more time focusing on how to make things pretty without taking the time to explore how things actually work.
This series instead aims to fill the niche of exploring technical direction for those who may not have a technical background and wish to become more acquainted with how scripting (specifically HScript) works in Houdini.
We'll take the time to discuss major topics such as working procedurally, ways to access and manipulate data in Houdini, and work to build a foundation that will be relevant to all future aspects of your Houdini work.
This course is in-depth and should be useful artists seeking to break into scripting.

Total duration: 7 hours and 6 minutes

About the author


Topics you will learn

By the end of this training you will learn all these topics

  • Procedural workflows
  • The difference between HScript Commands and HScript Expressions
  • Anatomy of a function
  • The various types of variables
  • How to create and manipulate various data types
  • A variety of the most commonly used functions used in a production environment
  • How to self-learn functions
  • How to work with a for-each loop


  • While instructions are included in this series for installing Houdini, artists should make an attempt to follow the Getting Started tutorials available from Side Effects at a bare minimum
  • Artists at all levels should be able to benefit from this series, however the target audience particularly includes artists who may have practical experience using other DCC tools such as Maya / 3D Studio Max, etc but are new to Houdini and thus may already be familiar with basic concepts such as UV mapping.
  • Lessons should be relevant to all versions of Houdini
  • This course was recorded on Windows. There may be some subtle differences between how things such as the command line and environment variables work in other OS that Houdini runs.

What you will be learning in each chapter

Chapter 0.00 : Welcome To The Course

Welcome to the Course!

Chapter 0.01 : What is Proceduralism?

A look at the difference between a black-box process of making changes one by one without an editable history, versus setting things up in a proceduralized workflow that can easily be scaled and tweaked.

Chapter 0.02 : Getting Houdini

In this video, we explore how to get involved in the Houdini community, the different versions of Houdini, where to get it and how to stay up-to-date.

Chapter 0.03 : Houdini As A Data Management System

It's interesting to realize, for those who grew up without using a shell, that Houdini has some Unix influence at it's core. We can navigate our scenes using /cd and /ls and we can even put down a node, look at who created it (and when), and even set permissions. While there's a lovely GUI for artists to interact with, it's important to realize that the strength of Houdini is our ability to access and manipulate all sorts of data to our advantage.

Chapter 0.04 : Simple Animation

Here we will look at basic navigation through Houdini's networks, viewport, and how to work with key-frame animation and the channel editor.

Chapter 0.05 : Simple Spiral Staircase

We will look at exploring and becoming comfortable with the Houdini node-based workflow in order to build a very basic spiral staircase model.

Chapter 0.06 : What are "Attributes"?

This lesson is spent on examining the different types of attributes that our geometry can contain.

Chapter 0.07 : What are Expressions?

Now that we understand that geometry can have arbitrary information attached to it, we will look at how we can start accessing and manipulating that data. We'll look at the textport as a way of looking up HScript expressions, at what it means to enter an HScript expression into a parameter and what the different components are. Simple math, a variable, a function and it's arguments.

Chapter 0.08 : Data Types and Variables

We'll look at the different types of data that we can look at such a string, float, and vector, and then start to break down what the different types of variables are.

Chapter 0.09 : Environment Variables

Used by the Houdini Environment. Environment Variables are essential tools used to customize the behaviour of Houdini and are essential for advanced users who will be developing a pipeline.

Chapter 0.10 : Global Variables

Related to your Houdini File, includes things such as the path your your files are saved, the name of nodes and your file, the current Frame Number and Frames Per Second.

Chapter 0.11 : Build a Timer

Let's break the tedium of learning all about data by actually putting some of our newly learned variables to use. We'll create a small electronic display countdown timer.

Chapter 0.12 : Standard and Local Variables

Unique to specific contexts, Standard and Local Variables include things such as Position, Bounding Box, Centroids, Normals, Point Numbers. They may be common to one node but not another, and are generally listed in the help cards on a node-by-node basis.

Chapter 0.13 : Custom Attributes, Variables, and Groups

Groups are an important part of Houdini, and allow us to easily perform actions on just a select piece of Geometry. We also take a look at creating not only Standard attributes which are recognized in a multitute of places in Houdini, but our own custom attributes.

Chapter 0.14 : Learning to Learn Scripting

While many artists may be used to just figuring stuff out with trial and error, an important part of technical direction is in knowing how to efficiently learn the functions you need. In this video we'll cover some of the ways that you can go about exploring functions.

Chapter 0.15 : Rounding, Trigonometry, Power and Range

In this section we explore some of the most common functions you'll need in a production environment: this video focuses on math functions.

Chapter 0.16 : Comparisons and Data Look-Up

In this section we explore some of the most common functions you'll need in a production environment: this video focuses on logic and data fetching functions.

Chapter 0.17 : Patterns, Paths, and Strings

In this section we explore some of the most common functions you'll need in a production environment: this video focuses on pattern generation, and string related functions.

Chapter 0.18 : Spiral Staircase Revisited

Now that we're more seriously equipped with a foundation on how Houdini works, we'll return the Spiral Staircase example we looked at early in this series and examine how we could build it more intelligently using a procedural workflow.

Chapter 0.19 : For-Each

There will be times when you need to operate on your networks in a recursive fashion. For-Each loops are one of the more powerful tools at our disposal and and are an essential item to be investigated once an artist has the basics down.

Chapter 0.20 : Delete by $ID

We'll build an over-the-top system for deleting particles based on their unique $ID attribute by building an expression into an attribute. Using the performance monitor, we'll see that this is for practice, but is not practical. 

Chapter 0.21 : Thanks for Watching

Thanks for watching!

What's included?

File Icon 23 files

11.5 KB
Welcome/ Overview
0.00 - TD:HScript - Welcome To The Course
0.01 - TD:HScript - What is Proceduralism?
0.02 - TD:HScript - Getting Houdini
0.03 - TD:HScript - Houdini As A Data Management System
0.04 - TD:HScript - Simple Animation
0.05 - TD:HScript - Simple Spiral Staircase
0.06 - TD:HScript - What are "Attributes"?
0.07 - TD:HScript - What are Expressions?
0.08 - TD:HScript - Data Types and Variables
0.09 - TD:HScript - Environment Variables
0.10 - TD:HScript - Global Variables
0.11 - TD:HScript - Build a Timer
0.12 - TD:HScript - Standard and Local Variables
0.13 - TD:HScript - Custom Attributes, Variables, and Groups
0.14 - TD:HScript - Learning to Learn Scripting
0.15 - TD:HScript - Rounding, Trigonometry, Power and Range
0.16 - TD:HScript - Comparisons and Data Look-Up
0.17 - TD:HScript - Patterns, Paths, and Strings
0.18 - TD:HScript - Spiral Staircase Revisited
0.19 - TD:HScript - For-Each
0.20 - TD:HScript - Delete by $ID
0.21 - TD:HScript - Thanks for Watching