Course overview Course overview
Create abstract effects using Houdini
Virtually every tool in Houdini can be used for abstraction. Houdini is a means to an end, but not the end in itself. This class will focus on using Houdini outside of the traditional FX pipeline. Houdini can do much more than simulations and explosions. Here, we’ll be using Houdini as a design tool, focusing on abstraction and non-traditional FX. We’ll be looking at lots of inspirational forms from nature and architecture and learning how to create procedural networks that capture the essence of them. Rather than completing one large project, we’ll be tackling small tools and concepts that you can use as building blocks for larger ideas and visions. The goal is to get you thinking procedurally, embracing the core concepts of Houdini, and pushing you into new creative territory by expanding your tool set.
Abstract FX in Houdini WHAT YOU’LL LEARN
The more you know, the better.
Abstract FX in Houdini Student gallery
fall TERM Registration
Jul 29, 2019 - Oct 14, 2019
Adam is an incredible teacher and this course far exceeded my expectations. I really appreciate his ability to teach a technical subject while keeping us engaged / grounded in the high-level theory behind it all.
Adam is a top notch instructor. He is an expert Houdini user and really put in the effort to help us find our own creative voices.
Companies that hire our students
environment design Benefits
What makes this learning experience unique?
Receive personal individual feedback on all submitted assignments from the industries best artist.
1+ Year Access
Enjoy over 365 days of full course access. This includes all lectures, feedback, and Live Q&A recordings.
Certificate of Completion
Earn a Certificate of Completion when you complete and turn in 80% of course assignments.
Learn anywhere, anytime, and at your own pace with our online courses.
Speak to an advisor
Need guidance or course recommendations? Let us help!
Show us your skills
Not sure if you have the skills, or are you proving you do? Show us.
Making a Procedural Citadel in Houdini
Interview with Nikola Damjanov
My name is Nikola Damjanov, born and raised in Belgrade, Serbia, and currently working at this incredible mobile gaming company called Nordeus, which I really consider my second home. I am a Game Artist by day and at the moment I am leading the art efforts on our latest mobile game called Heroic: Magic Duel. I also like to say I am a procedural tinkerer by night because I spend a lot of time experimenting and improving.
Tech art fits more into my nighttime activities then my daily job but I have a huge passion for it nevertheless. I had a mixed education background – tech and art – so I am always hypnotized by both worlds. My current interests are mostly along the lines of procedural generation. I’m very interested in building systems – trying to deconstruct and reverse engineer content generation is a challenging puzzle.
Citadel: Start of the Scene
After having so much fun with Substance Designer over the years I thought it would be a nice thing to expand the procedural knowledge beyond the world of texturing. Houdini was a perfect choice – I had used it before on occasions but usually just replicating stuff, and not really having a deep understanding of how it works. I wanted to start learning it with something “light” and friendly for experimentation so that is why I chose the Abstract VFX course. On top of that, I heard good things about CGMA from friends and I liked what Adam Swaab (the instructor) was doing – all the right checkboxes were ticked!
During the course, we had weekly assignments and one of them was a task to create an alien planet or an otherworldly landscape. While I was searching for inspiration I came across this nice concept from Miguel Alonso – I really liked the verticality of the composition, scale, and sense of ancient presence. I think you can clearly see my work was inspired by this concept but I wanted more depth, conflict, and extraterrestrialism.
A long time ago I saw a tutorial from Entagma (see the video below) and learned a very simple and effective technique for making crystals. I simplified the process as I had more than one of them in the scene but the core process was the same. I’ve also built three LOD levels so I can optimize the scene and rendering.
For the columns themselves, I was inspired by basalt columns of Iceland but I wanted to grow them higher and very distinct shape variation for eye rest. I actually used the same crystal shape for building the columns – took the lowest LOD, scaled it way up, deformed it to get more with at the base and turned it into a fog volume with varied density. Then I used that density parameter to generate a point cloud and drive the distribution/scale/rotation of the smaller crystals. Simple but flexible and powerful, like everything in Houdini.
My initial idea was to learn a little bit of Houdini’s terrain tools during this project. I knew that there would be a lot of crystals around, and thus minimal landscape, but I needed some underlying structure for distribution at least. I figured learning along the way would be good enough – and it was!
I’m not sure how it compares to World Machine as my experience is limited but it does feel like WM is more powerful – to be fair, it is a specialist tool. On the other hand, Houdini has its entire feature set in its corner. At any point, you can convert the terrain to polygons and unleash the power of Houdini on it, and then convert back to heightfield if needed. It really feels limitless. I’m definitely constrained by my ability at the moment and not the tool.
I used very simple Heightfield tools for this project, starting from a Worley noise with a very low scale on one axis to get the major valley shapes. Then I overlayed a couple of different noises in medium and small scales to get surface variation and details. I figured it’s important to get nice surface variation before you start eroding because you will get much nicer results. So I added some terracing but masked it only to steep slopes. In the end, I slumped the bottom of the valley to get a smoother surface for scattering crystals. I also came across a happy accident – if you convert your terrain to mesh and then use the Mountain SOP, with large height but scale only on the Y axis, you can get some very nice varied and inflated terracing. That was the final touch on the terrain.
Ground distribution was rather simple actually. After slumping and masking off the bottom part of the valley I just did a Heightfield Scatter on that part to get the seed points. Copy SOP did the rest – just enable “Transform Using Template Point Attributes” and things will magically flow over your terrain. If you want to bring it to the next level you could set up the Copy SOP to stamp the scattered objects and then you can get randomness in scale or even control it by height. It’s very fun to play with once you set it up. I’m curious how it will look in motion, it would be a nice thing to try out.
From the start, I planned not to render in Houdini. It was a very big and complex scene that depended a lot on complex shaders and refractions – my Matra knowledge was nowhere near good enough to tackle that problem. That is why I decided to use something I know – 3ds Max and V-Ray. Even though most of my work these days is real-time and engine based, V-Ray is where I feel at home and confident I can do what I want.
I exported the final scene state via Alembic, which worked effortlessly. For the lighting, I used the V-Ray sun+sky combo because I liked the simplicity of the blue/yellow light colors. What played a big part was the Vray’s aerial perspective atmospheric effect – it really helped to sell the depth of the environment. It took some trial and error finding the best angle for the sun, eventually, I placed some shadow cards off the camera to get the right light/shadow balance I wanted.
Once I got things set up, rendering is not really a big problem. I do low-resolution test while I’m working on a composition and lighting and occasionally render parts of the image in full resolution to make sure shaders work properly. When I am confident that render will be good I just send it off to a render farm – they are crazy cheap these days, especially if you are rendering single images. Rebus Farm is my choice, it has a nice automated plugin, very easy to use.
Initially, I tried to do a render in V-Ray as close as possible to my vision but I couldn’t really make a blend shader to my liking. Additionally, it was very slow to iterate this way. Eventually, I decided to render out shader passes (one for solid and one for crystal) and a bunch of masks (shadow, curvature, AO..) and assemble everything in PS. That assembly was certainly the biggest part of post-production. Other than that I mostly used Photoshop to boost up colors and frame the composition even more.
This was definitely the biggest procedural set piece I made, and I was surprised how easy it was to manage and organize everything. It’s hard for me to single out one major learning as there were so many things that I tackled.
Houdini is incredible! I just scratched its surface and already it has wowed me countless times. It’s basically an OS for 3D but at the same time, I feel like it couldn’t care less about visuals. It just wants to know what data you are giving it and what to do with data. It flipped my content production workflows upside down. I feel like I am a bit late to the party, I wish I started learning it some time ago.
Better late than never, I guess!
Finding Your Flow for Abstraction with Houdini
Interview with Akshay Tiwari
I love math and art. Both disciplines pursue questions surrounding beauty and truth in their own distinct ways – there have been ‘elegant’ mathematical proofs as well as paintings that challenge contemporary beliefs. Pigments have turned into pixels, but has our artistic inquiry evolved synonymously? With this question in mind, I am searching for these conversations between math and art that can reveal different ways to envision narratives.
In fall 2018, I joined CGMA’s Abstract Effects in Houdini training as it promised a great balance between design and technical execution under the mentorship of Adam Swaab. Since I was also studying at a college during the day, balancing that with the course’s weekly workload was very hard. I had to stretch myself, sometimes not being able to give my best for each of the assignments. But nonetheless, I attended every Q&A session with Adam, paying keen attention to the conversations about design that we had. I was confident about Houdini as a tool but confused and doubtful about how I could gain the same ‘free flow’ of sketching, sculpting, and painting in it.
Below are my key insights that may help you think more laterally and realize the potential of Houdini for design while helping you navigate it as an aspiring procedural artist.
1. Understand Proceduralism
Without diving directly into destruction simulations, understanding procedural modelling can help a lot in gaining a good understanding of what proceduralism means. The main idea is to build design-systems that build design-elements rather than a single unique object. What this implies is to understand the hierarchy of structures that make up the object and the dependencies between them.
As a simple way to understand the hierarchy of structures, observe the structure of columns as shown above. The left image breaks down the structure into more generalized parts while the right image shows unique examples of columns derived from the generalization. Assuming you decide to place a column and start designing it from the ground up, the placement of the capital depends on the height of the shaft. The placement of the architrave, in turn, depends on the height of the capital and so on. Thus, to design a column procedurally would first require having a process of ‘stacking’ these elements. Then within each element, there could be properties or parameters that change them to have a unique shape like a ‘Doric’, ‘Ionic’ and ‘Corinthian’ (which means a change in height too that can affect how other elements around it get stacked). You realize that there are cascading steps to make each element and then further steps to assemble them in relation to each other.
How is this helpful in terms of design? Since this way of designing something procedurally requires a set of rules and constraints with parameters attached to them, it is very easy to create iterations. It might happen that you wish to create a particular unique hero element and you make a procedure for it. But with the addition of PDG, Houdini can become a tool that actually collaborates with you to do the heavy lifting and show the other forms that your procedure might be capable of. PDG (Procedural dependency graphs) is a system of managing and automating relations between the procedures that you make. Instead of manually tweaking parameters and seed values continuously in the hope of getting a good form, you can outsource this to PDG which will help in outputting most permutations. It is your way of giving Houdini a ‘to-do’ list that it can keep working upon by itself. As a designer, you are not subordinating it as a push-button tool but instead coordinating with it which is a huge shift from traditional ways of digital design.
Here you can see around 2592 iterations of a procedure (inspired by sculptor David Umemoto’s process) that I had made. For automating the iterations in PDG, I referred to Entagma’s PDG for Design tutorials. This helped me understand the larger categories of silhouettes that my procedure was capable of and within each, there were minor variations to the arrangement of secondary elements. The blank spaces are not blanks but iterations that would take more than an hour to be calculated. So I can go into the PDG network to see what particular values of parameters result in those longer computation times and maybe tweak the procedure or avoid those values. You get to decide the fittest numbers for your procedure while helping it adapt and evolve by making use of certain values more frequently.
2. Define ‘Abstract’
The word ‘abstract’ is thrown around every now and then when an image does not have a human, an environment or a natural effect which kind of slips a huge amount of art history under the carpet. The first week of Adam’s class began with a primer on abstraction while covering art movements and styles like fauvism, futurism, cubism and many more. In contemporary and traditional forms, the abstraction is very much the artist’s reaction or way of challenging a particular form of thought whereas, in CG art, some pieces would come across more as ‘product demos’ or challenging a tool’s capabilities. While viewing the many reaction-diffusion-inspired ‘abstract’ artworks that I came across, I couldn’t help but think if it was Houdini’s capability that made the artist want to make it and present it as an ‘artwork’ or the artist really intended to communicate something with it. On the contrary, a Magritte or a Kandinsky piece had that weight and gravitas of the artist either proposing a question in a new manner or answering a question with his own beliefs. These artists would have created the same image in dust gathered on a windshield. It wasn’t the paint or canvas that directed their intention, these tools just enabled them. This is what led me to a question:
As much as I would pride myself to part only with the latter, in generative art it is the collaboration and balance between the medium’s (Houdini) capabilities and the artist’s intent that can create good work. This meant that I had to rid myself of a few bad Houdini habits like:
- Abusing the ‘rand($FF)’ expression – I am guilty of creating a lot of possibly seizure-inducing animations using this expression.
- Making one lonely sphere with just subdivide, polyextrude and noise displacement for getting a stylish render.
- Looking at Simon Holmedal’s work a bit too many times. It is brilliant, but I needed to realize that it isn’t the voice or the way I could think and attain right off the bat as a beginner.
I was introduced to the non-representational art of Wassily Kandinsky a few years ago by a great and unique teacher at my college. Kandinsky’s book ‘Concerning the Spiritual in Art’ contains some very valuable thoughts about abstraction like:
Observe how this quote is already hinting at a hierarchy of dependencies through metaphors to actually make a profound statement. Also, it is evident that he had a code of sorts to his visual language and was procedural in his approach towards making compositions inspired from music. He would create a correspondence between colors, shapes, and emotions, make his own laws like “circles deserve to be blue” and then use these rules to drive all his decisions towards the intended emotion for a composition. It made me understand the value of having my own rules (or axioms) that attach meaning to forms to make the ‘letters’ of my visual language which then come together in peculiar ways to form the ‘grammar’ in Houdini. With all the algorithms that you can implement in Houdini, it is easy to let scientific temper get the better of you and lose out on opportunities to communicate symbols, associations, and designs that are essential ingredients to having your own unique definition of abstraction. Also, it is quite engaging to think of what these algorithms signify – chaos, order, unity, destruction. For example, Voronoi divisions are found not only in cracked walls but also when a layer of bubbles coalesces together. It is something that can break concrete but can also build a wall of thin soap – does it symbolize integrity and destruction at the same time? Laying down these concepts as groundwork can help you build an internal logic (which might be only understood by yourself) to inform the choices you make with forms and procedures to define your own method of abstraction.
3. Fractals Beyond and Before Mandelbrot
Fractals are a popular topic in generative art and computational design but very often, the only depiction that gets the most attention is the Mandelbrot set or its 3D counterpart – the Mandelbulb. The Mandelbrot set is not a sine-wave like a graph or a curved shape, it is a set of complex numbers that satisfy a particular condition of convergence. The coloration in most images of this set signifies the rate at which a complex number escapes from the origin with consecutive iterations. These concepts can be internalized well by trying to perform the calculations for a few iterations and manually plotting the points on paper. These mathematical fractals do require an understanding of complex numbers, convergence, and divergence but there is much more to the infinite nature and history of fractal art. The rhythm of these patterns can be achieved without much mathematical rigor, provided there is a lot of intent invested in simply arranging, iterating and scaling the elements that make up the fractal-esque pattern or object. As Ron Eglash rightfully states in his book about African fractal art:
If you are to analyze African tribal art or even Indian temples’ architecture, they have the embedded notions of a fractal but are made completely manually which is their strength and not their shortcoming. Similar to my point about abstraction, Indian temples have an overarching theme of transitioning from a square that symbolizes earth and space to a circle that symbolizes time. The temple structures are a thousand ways to go from a square to a circle. All of them were designed without computers, the main reason being that the root laws are simple: repetition with intentional variation in the scale of elements – and a part being morphologically similar to the whole. Translating this into Houdini would be to have procedures and not just elements that repeat at various scales while answering these questions through techniques:
- How do the procedures and placements of elements repeat?
- Do the procedures work on the previous iteration or work on one overarching rule without the iteration number?
- When do they stop iterating?
- What amount of randomness is allowed?
- What errors can you introduce by yourself to make it imperfect?
Other people who have touched upon such concepts and more inspiring thoughts are Anders Hoff and Michael Hansmeyer. I had discussed similar thoughts with the wise artist and designer Serjan Burlakand we seemed to concur upon the opinion that there needs to be more awareness about how artists, designers understand the mathematical fractals and abstract them to suit their intention while gathering inspiration from earlier craftsmen.
4. Explore, Emulate and Distill
Until this point, there has already been the mention of an architect, a creative coder, a sculptor, and an abstract painter. Suffice to say, learning Houdini to achieve your own designs will require you to get out of its echo chamber every now and then. This will not only help improve your conceptual understanding but will also inspire you to emulate and create your own assets for different techniques.
Once you are through with getting your feet wet in Houdini by knowing the most common SOPs and a few expressions, you could explore a few more areas and applications of generative art as a larger domain (such as installation art, projection mapping, interactive art). I myself realized the need for the Solver SOP to exist when I wanted a frame by frame updating functionality like Processing. I realized there were other forms of subdivision algorithms that could be implemented in Houdini when playing around with TopMod, leading to understanding the Knife, PolyExtrude and Divide SOP in a much better way. Reading through The Book of Shaders motivated me to become more comfortable with VOPs in order to create parametric curves that I used for creating complete models. VOPs are Vex Operators and a visual way of coding in VEX. I can put nodes in VOPS in a way which is similar to how I actually read an equation while cutting through any syntax gymnastics and the inputs of every VOP are assistance too. The point of these anecdotes is that tutorials made for Houdini would rarely cover why other ways to get the same result were not used or were not as efficient. So exploring other tools which are specialized in a bit more niche ways can help you figure out what style of approach suits your use of Houdini. You need to gain that breadth and variety of experiences that will make clear why a particular node is necessary and sufficient for what is achieved. These are the moments when particular techniques just ‘click’ and form that connection in your mind.
As a designer and artist, it is also important to think of the final visual’s art direction and not being trapped in just technically elegant methods. This is where I was encouraged by Adam to study photography, lighting, learn about composition, think about shapes, understand chiaroscuro and have a method to the way I handled references. Houdini’s technically intensive requirements might overshadow these artistic considerations, but these are the decisions that will give the most technically elegant form the aesthetic care it deserves.
I am aware that this article has not been so enlightening in terms of Houdini tactics. But as a student (and I still consider myself a beginner), I feel that these points of navigation and thinking laterally while learning Houdini can save designers huge amount of time in the long run which could otherwise be wasted trying to lose bad habits formed by just learning techniques and then suddenly shifting to a new mindset for finding that authentic voice in one’s work. I myself am years away from being able to walk my talk with Houdini, but I believe it is a good start to have questions that I strongly care for to guide my journey.
Proceduralism is about making procedures that make the object, so the mentality of studying an artwork to directly replicate the final result/model is sort of at odds with the premise of Houdini (you might as well pursue that as a sculpting exercise). Try to interpret and guess the process first before jumping to any tutorials for support, try implementing your first sketchy ideas into Houdini and then refer tutorials for smaller improvements. After making this a habit, the gap between your attempt and the ‘right’ way is frequently going to be something factual (like not knowing about the Polyframe SOP’s existence). When the gap is conceptual, then you would not only learn that concept but also learn why it exists and the right times for you to use it. Pick your goals or ‘true north’ references from outside of the Houdini-based artworks while learning. This gives you newer problems to which you need to jigsaw together your own solution. Otherwise, rote learning someone’s techniques just for getting that same look can add up to your knowledge-bloat. This way you are borrowing the process and not the product itself from references which will synchronize well with how you operate in Houdini. As you repeat these practices, you will start filtering out what you really need from what you have learned as knowledge and that is where you will become wiser at Houdini- not all great ideas will need to be followed up by complex VEX wrangles!
As far as your personal portfolio projects are considered, try to centralize or derive your works from the questions that make up your curiosity. Always remember that your message is not a polygon, it is a statement of your taste that can pull a viewer into a zone of contemplation or awareness.