Procedural Content Creation F.A.Q. - Project Aero, Houdini and Beyond

I’ve finally found the time to put together a long-requested video demo for Project Aero and would like to use this opportunity and answer some of the questions I’m often hearing in its regard.

Procedural Aircraft Design Demo from Denis Kozlov on Vimeo.

What is Project Aero?

Project Aero is the software I’ve developed for rapid design of aircraft concepts. The video above demonstrates its main features.

 What does “procedural” mean?

In a wider sense it means “automated” - created algorithmically by a computer (rather than manually by a human operator or sampled like a scan or a photograph). Here are the good places to learn more:

Project Aero in particular is an example of a computer-aided design system, where the creative work is done by an artist while computer “fills the gaps” - constructs numerous details to turn the artist’s quick sketch into the finished model according to predefined rules and interactively set parameters. “Procedural” here also refers to every single element (like a rivet geometry or a paint texture) being generated from scratch for each aircraft design, not utilizing any photo textures or library models.

Did you create this software from scratch? Is it a standalone product?

Project Aero is a set of tools for SideFX Houdini. Houdini is a 3D animation package (like Maya, 3DSMax, C4D or Blender) and a visual programming environment at the same time. It’s been around for over 20 years and is highly regarded within the film visual effects industry – these days there is hardly a blockbuster released without its use; and of course there are tons of info available online like at the od|force forum.

So one needs Houdini to use Project Aero tools, but in fact these can be made to run within almost any other host like Unreal, Maya, Unity, C4D or even a proprietary app with the Houdini Engine technology – see for example the ProTrack video further below.

How does it work?

Here’s a quick recording of a sample session to give an idea of how it looks from the user’s perspective. The nodes marked with a blue A letter are Project Aero tools, the others are native Houdini tools.

Project Aero - fast and very dirty interaction demo from Denis Kozlov on Vimeo.

If we take a look inside the Aero tools, we can see that while possibly sophisticated, they are actually made of standard Houdini nodes – so my job as the developer was more or less to arrange those tiny boxes into something like this:

But a typical aircraft designed with Project Aero would look more like this to the artist (end user):

More technical details can be found in the original article On Wings, Tails and Procedural Modeling.

Can a particular feature be added?

This usually refers to what can or cannot be done within Houdini in general. Whether it is LOD generation, texture baking, additional details, options, outputs or whatever, the default answer is yes – but the real question is how much hassle it would take. Project Aero does this or that not so much because of some strict external limitations, but largely because it’s been designed this way. And so it will gladly provide whatever extra functionality would be added to it. In other words: if you clearly see the algorithm – you can implement it; it’s mostly about how much effort you are willing to invest into that, which in turn is largely connected to what you design for.

So if you need LODs – you plan your system in a way that it can naturally generate these LODs, if you need a diverse library of settings – you design to have it modular where needed from the start, if require a particular topology – generate geometry in a way that guarantees that. In this sense developing for Houdini is just like any other software development, and it’s not so much about some magic that Houdini supports or doesn’t – it’s what you implement or not implement, what you plan for or not. On the purely technological side, Houdini provides a pretty good support for contemporary CG techniques and approaches.

Is Project Aero publicly available?

Project Aero has been developed as an internal tool and is not available for sharing or distribution. And while I’m interested in collaboration on development of procedural content creation systems, I have to restrict these opportunities to commercial projects only.

Is it production-ready?

Surprisingly, yes. In time since the initial publication I had a chance to use Aero for still semi-secret Flight Immunity – an art project involving over 50 aircraft designs in a timeframe hardly possible with any other production technique. Things were happening along the way: host version changed, bugs got found and fixed, features added – texture baking, extra detail types and custom AOVs to name a few; and I’m having difficulties to recall a time when such a change would cause sensible trouble or delay – in general, things went smoother than I expected.

What else can be created this way?

Pretty much anything. Seriously. At least pretty much anything that can be algorithmized. And the truth is that with enough understanding and experience it is possible to algorithmize much if not most of the commercial artists’ work already today. Here are some examples:

ProTrack by IndiePro Tools – procedural racing track system for Unity.

GDC2015 | PROTRACK by IndiePro from Go Procedural on Vimeo.

Creature Integration/Advanced AOVs Demo from Denis Kozlov on Vimeo.

Although made for a different purpose, the video above showcases the snail that has been created completely procedurally as a proof of concept. It can be parametrically adjusted in any designed aspect and, with few months invested, could even be turned into a full-scale creature generator.

And following are few stills from another yet unannounced project of mine. Unlike the examples seen so far, these are the true generators or interactive evolution systems – the images are created by an algorithm with minimum to none of human involvement.

Could the same be done without Houdini?

Absolutely. If we take Project Aero, the techniques that make it up have been out there for years – I just saw the way to put them together to reach a particular goal. The same functionality can be achieved with most programming languages.

Yet at the same time Houdini has saved me few years of learning C++ or the expenses of hiring a skilled programmer – instead it allowed to directly convert my already existing knowledge of computer graphics into the ready-to-use software. This is not a small saving given the amount of extra knowledge a project of this kind requires: graphics and coding aside, one has to dive into the subject-related disciplines. You read up on geomorphology to create good terrain tools; comparative anatomy and evo-devo for creature generation; vehicle packaging, styling and aerodynamics for a transportation project and so forth. Getting slightly off-topic, my top 3 useful books for Aero are:

D. Raymer – “Aircraft Design: A Conceptual Approach”
T. Talay – “Introduction to the Aerodynamics of Flight”
P. Bowers – “Unconventional Aircraft”

And then again, the possibility to easily port tools to different platforms with Houdini Engine looks quite appealing.

Is this the future?

I believe so. Procedural content creation looks just a natural next step in the evolution of artistic tools. 40 years ago it required serious coding and engineering skills to create a basic 3D model; 15 years ago the prerequisites still included thorough understanding of software and topology; nowadays digital sculpting allows anyone to create 3D models just as easy as drawing – one can still use the lower level techniques when needed, but the faster, easier and more convenient approach goes first. And this is exactly what procedural tools provide – faster, easier and more convenient content creation methods, while you can still do manual adjustments when required.

Another futuristic aspect is software being developed by users themselves, not only dedicated programmers and coders. Programming as an activity keeps crawling into our daily lives inch by inch, without us even noticing. I surely see this as a good thing, and I can clearly envision the future where an artist making his own tools looks as usual as a driver setting up the GPS navigator.

With Project Aero I wanted to show that all this is possible already now, and the future is already here in a sense. Something I’ve been trying to prove in countless pub talks for years.

Talking practical aspects, game developers seem to be the first logical beneficiaries, and in fact they’ve been using procedural generation in one form or another for decades. Tabletop RPG games and regular toy manufacturers can be a less obvious category. But imagine designing a 3D-printed character for a D&D party, or the whole one-of-a-kind fantastic zoo in just few clicks, with a posh high-end look and yet no special technical skills required.

This detaching of artist’s technical skills and making them available to anyone seems the most valuable outcome to me – even more than the associated productivity gain. And providing pro-grade artistic tools and capabilities to the fan communities is only the tip of the iceberg.


No comments:

Post a Comment