Proof-of-Concept (Updated)

I’ll just quote my prior post and show you some new things, so you know where I’m at.

“Its late for me, and I plan to expand this post a bit later — but I’ve finally done it. Took some geometry from within Houdini, extracted what I needed from it to pipe the output into a custom python voxel writer that outputs Magica-compatible .vox files.”

“The header image you see is Houdini, with a Python shell open showing the output of some things I was keeping track of. Too exciting. Don’t know if I’ll be able to sleep well tonight knowing there’s even more possible now.”

Not perfect, but dammit — it worked. More to do and improve upon.

Houdini has always intrigued me.

I came to know about it via a circuitous route, working with various 3D programs and hearing that there was one that had an alarming deepness to it. This put me off for a while, because the last thing I needed was relearning how to make a cube or somesuch thing.

You know, that sinking feeling in your gut when you realize that in order to use a tool, you have to not only learn IT, but a bunch of principles that went into making it a tool in the first place. This bifurcating knowledge diagram always made me shy away, and frankly, that was a mistake.

Let me demonstrate how deep this rabbit hole can go, with a series of pictures.

Top level – A simple geometry node.

The picture above is a node. A simple geometry node just minding its own business in the node view of Houdini. If you are familiar with other tools that operate on 3D objects, this isn’t a foreign concept. Some game engines have built-in editors that use nodes of a type to process geometry and do other things, like Unreal Engine.

I won’t be referring to these via their “official” pathnames, (offending Houdini purists everywhere) because there is enough to learn and I just want to show you a small part of the complexity (and richness) of Houdini compared to other things. For most programs, you don’t go much deeper than this, maybe a level or so.

Down a level…

Here I’ve clicked on that node and this is what reveals itself. The official path is “/obj/geo1”, but I prefer to describe this as level two. Much like an elevator or a deep mineshaft to the core of the earth, we have much further to go. Next, I’ll click on the “Kino.mVoxelizer1” node.

Level 2 – you may feel your ears popping at this point.

Oh my, a whole bunch of other nodes! This is just two levels down, and you can click on any other one of these and be sucked into yet another level in this hierarchy. Next, I’m going to click on the “voxelize” node.

Level 3 – your heart may feel like its in your throat, hammering away.

Turn your miner’s lamp on, you’re going to need it. Here’s a bunch of other nodes that describe what this sub-node does in its entirety. That is what Houdini primarily is, a bunch of smaller functions/programs that link together and do things. Its a bit like realizing the effort that went into making a toaster – the metals, alloys and other bits that if you had to make from scratch, well, you’d be up the creek, wouldn’t you. Lets just click on one more, shall we? How about “pointsfromvolume1”? Why not…

Level 4 – We have reached total decompression, please wear your oxygen mask and take deep breaths.

This is a “built in” node, courtesy of Houdini, and it does so very much. They allow you to poke around in its innards, if you dare. But for me, its enough that this node exists. Tinkering with any of the predefined nodes in this program is akin to uttering a magic spell and hoping I don’t turn my guts inside-out.

There’s a scene in the 2010 film “Tron: Legacy” where Flynn has to do a bit of digital-genetic surgery to help Quorra recover from a severe injury. That is what this feels like, sinking down into the digital landscape as far as you want, being able to manipulate the very vertexes that polygon-based geometry is made of.

Flynn debugging Quorra’s DNA code.

I’m just on the first steps of this journey down this rabbit hole. Predictably, I had some mistakes and that manifested itself as some artifacts that I need to resolve. Point is, the main concept worked, so now I have a viable path from Houdini into voxel models.

This was previously not done, at least not that I know of — so I’m pretty proud of this.

I’ll update later with more when I have some progress to share.