Design a site like this with
Get started

Building Machine Learning Toys in Houdini

Over the last few days, I have spent a bit of time implementing some basic Machine Learning (ML) algorithms in Houdini. This is something that has been in the back of my mind for quite a while but I hadn’t had the time to seriously look into yet. Below, just a few reasons that make me think of this piece of Software as potentially quite convenient for some ML tasks in the context of AI-aided content creation:

  • Easy to do parallel computing on large amounts of information.
  • Possibility to move data between different contexts and manipulating it in different ways.
  • Great at dealing with big amounts of data datasets.
  • Easy to prototype experiments and run simulations.
  • Excels at generating synthetic data on the fly.
  • The possibility of leveraging PDG to generate or augment synthetic data, and ease the pain of the trial and error cycles inherent to building good ML models.
  • And many other reasons.

Above all, Houdini is second to none when it comes to procedural content generation and that, in itself, is the first step towards AI-assisted creative workflows, an area where I have been focusing my attention more and more.

If that did not sound good enough already, through Task Operators (which leverage PDG) it’s easier than ever to incorporate external processes into your workflows, which raises the bar yet another level. However, using external Software is not what I am after at this stage… that will come in time. What I want to do first is to implement some basic ML algorithms natively in Houdini mostly for didactic purposes which is why I don’t want to introduce any external dependencies.

Probably, my single most appreciated characteristic of Houdini is how transparent it is, especially compared to other content creation packages. This transparency empowers users to learn new things, be curious and become better content creators. It is a great platform for learning and sharing knowledge.

In line with the aforementioned principle, my aim is to create a suite of nodes to solve common ML problems and keep it transparent, self-contained, easy to use and understand. The decision of not relying on any external libraries at this point in time comes at a price: I’ve had to invest some time solving problems that you would rarely spend time thinking about if you were trying to solve them elsewhere (i.e. Matlab, PyTorch). It’s certainly keeping things entertaining… one and all it’s worth it, Houdini is excellent to quickly prototype ideas and, if careful, things should stay quite performant too.

Just a sneak peek of some toy Linear/Logistic Regression examples

I will be posting some updates here every now and then and (when things are in a more shareable state). Hopefully, those new to ML and/or Houdini will find it interesting. Feel free to reach out to me if you have any questions in the meantime! 🙂