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.
“Anvils of Time” was selected for the ‘The Art of Creative Composition’ gallery show by CGMA.
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 modeling 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.
Diagram from Designing Buildings Wiki.
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, it 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, 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:
“You will because you can, or you can because you will.”
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:
“Color is the keyboard, the eyes are the hammers, the soul is the piano with its many chords. The artist is the hand that, by touching this or that key, sets the soul vibrating automatically.”
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. Still, 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:
“Fractals produced by unconscious activity, or as the unintentional by-product from some other purpose, cannot be attributed to indigenous concepts. But some artistic activities, such as the creation of stylized representations of nature or purely aesthetic designs, do show intentional activity focused on fractals. Such examples may be restricted in terms of geometric thinking- the artisans may only report that the design suddenly came to them in a flash of intuition – but these are clearly distinguished from those which are unconscious or accidental.”
A very simple way of repeating, scaling, and arranging a curve to make forms while keeping the placement procedural.
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 Burlak, and we seemed to concur upon the opinion that there needs to be more awareness about how artists and designers understand the mathematical fractals and abstract them to suit their intention while gathering inspiration from earlier craftsmen.
“Y=kx^(1-kx)”. This image was inspired by a synesthetic interpretation of the same equation.
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.
The same design was given different artistic treatments. The one on right has a more textbook yet high contrast dynamic feel to it which is absent in the left images.
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 a 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 to 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!
Structures inspired by the concept of ‘quantization’.
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.