3d artist Anastasia Opara shared some of the tips on building incredible realistic 3d environments with procedural tools.
Anastasia Opara is a young woman, who does extraordinary things with procedural technology. Coming from a family of artists, she mastered the art of Houdini and created a new powerful workflow, which allows her to generate countless realistic architectural elements for AAA-projects. Needless to say, she works in games industry.
UPD: Anastasia has amazing tutorial series on creating procedural lake houses in Houdini all the way from generating the main silhouette to creating the final shaders and placing setdressing. Start doing extraordinary things on your own!
Start
Introduction
Hi! My name is Anastasia. I grew up in a quite unique artistic environment: since 4 years old, I was an active participant of an educational creative programme “Artfor”, created by my parents, contemporary media artists Vladimir and Maya Opara. When I was only 5, a Russian newspaper “Versts” (“Версты”) wrote about me as a youngest participant of the IV annual international exhibition-festival FACOM-2000 in Noviy Manezh (“Новый Манеж”). By the age of 16, with my photographs, photographics and short movies, I have taken part in exhibitions in Russia, Germany, Czech Republic, Poland, Belgium, and Hungary; I was a participant of the annual international exhibition of contemporary art “OSRTALE’10” in Dresden, the I Moscow International Biennale of Young Art, and had my personal exhibition in the state exhibition hall“A3 Gallery” in the center of Moscow.
Back then joining game industry never crossed my mind, until I discovered a game that was exhibited along with a more “traditional” contemporary art media. It was such a novel and immersive experience that I instantly recognized that 3D Computer Graphics is the future. I finished Foundation Degree in British Higher School of Art and Design, and in 2013 I joined NHTV International Game Architecture and Design (IGAD) Bachelor Programme (now known as “Creative Media and Game Technologies”) in Netherlands with a specialty of 3D Visual Arts. I gained a lot of knowledge thanks to the wonderful teaching staff there. The fantastic modeling course by Andrew Paquette gave me a solid understanding of the fundamentals, which helped me greatly in my first acquaintance with Houdini.
I was introduced to Houdini during the “Introduction to Procedural Modeling” course by Kim Goossens, whose enthusiasm and passion combined with the power and flexibility of Houdini absolutely blew me away. My love for experimentation thrived within the new workflow: being able to easily connect seemingly unrelated elements such as vertex position and sound was the kind of freedom that made me fall in love with Houdini. I felt like a child who was told she can learn how to do magic, and my immediate reaction was to go and acquire a wand.
Currently, I’m in my last 4th year of the study at IGAD, when students are encouraged to gain experience in a real work environment, and I’m very excited be a part of the very talented EA Ghost Games team as a Technical Artist Intern in Gothenburg, Sweden.
Using Houdini
Proceduralism quickly transformed into my passion. Seeing objects as a set of rules and patterns fascinates me and I find pleasure in this way of thinking. Every task becomes an absorbing puzzle when rendered through such a workflow. However, I can see that adopting a new mindset could be a point of struggle for some people.
When working in Houdini, I feel like I have a dialogue, rather than a monologue, and that process is really addicting. The ability to track my thinking and capture it inside of a program by “teaching” it to “think” in the similar way I do mesmerizes me. Houdini gives you results based solely on your input rules, whereas we often process information with the knowledge we do not realise we are applying. The collaboration with Houdini can be a lot of fun because of that factor and an inspiration to many creative ways of solving a problem.
There were plenty of things I had to learn, however, I wouldn’t necessarily label any of them as “hard”, but rather “fun”. I guess, there is a fine line between those: when the challenge suits your level, it brings lots of joy and satisfaction, in the opposite case it can end in frustration. I think, it is important to approach it step by step and “level up” according to the challenges you face and Houdini and its community are very good at being friendly at any stage of your learning journey.
Unreal 4 Building Tool
In 2014, I was making my very first small, but satisfying steps in learning Houdini, where I was allocating almost all of my free time that was rather limited having many other courses in the university. To make it more balanced, I was trying to find any opportunity to use Houdini within the briefs of the given classes, which was a great educational experience on its own. All of that was combined with tight deadlines and multiple projects running at the same time. But I had a mindset that any assignment is an opportunity to use Houdini and this approach showed me that a burning desire to learn will always find a way to bloom in any type of constraints.
A World Building class, where we had to create a production quality level in UE4, was a perfect chance to put my skills to a test and deepen my knowledge of Houdini. I was lucky to have teammates, who trusted in my ability to make a building generation tool and allowed me to almost exclusively focus on that task. It was a risky decision, as this type of workflow was new and there were no guarantees it’s going to work, but my mind was set on achieving a positive outcome, thus filtering out any doubts and just hammering through all the challenges the project was presenting.
The Houdini Building Tool was my first serious procedural modeling project. Since I wasn’t familiar with vex or python back then, I built it with just basic nodes and simple h-script I knew, which already shows how much you can do with Houdini without really knowing programming. I started with building the main body, which included walls, corners, doors and windows. The process totally engrossed me and soon after I started adding more and more modules on top of it: roofs, balconies, stuff on the balconies, supports, ads, lamps and so on. The layering of those elements allowed for a visually interesting result despite the very simplicity of underlying technical solutions and rules.
Hierarchy
There is a certain hierarchy within the modules: for example, once a window is placed, it allows an overhang and a window frame to be put on top of it; or when a balcony is positioned, it allows a drying rack placement, and that one introduces the clothes. So, the taxonomy of the object you are building is very important. That is why research and understanding of dependencies plays a huge role when approaching procedural modeling. You probably wouldn’t want a chimney to drive the placement of the whole building. After the main relationships were in place, I introduced random offsets and rotation of the modules from their initial positions, which brought some additional life into the generated outcome.
As human beings, we are very sensitive to patterns and repetitions, because we face those on daily basis and our brain is trained in processing those almost instantly, without our conscious effort. That is why understanding and analyzing plays a key role in producing a believable procedural model.
Integration
Houdini Engine was announced at the very late stages of the development, so the integration wouldn’t be possible without a python script by a very talented IGAD graduate, Jan Pijpers. He was extremely kind to quickly edit the script for us to work with UE4. Unfortunately, the edited version didn’t work perfectly, and it introduced some technical constraints, but it was still very powerful and allowed us to have the generated buildings inside of UE4. Already later, for another IGAD project, I wrote my own Houdini-UE4 exporter, which eliminated that technical issue.
Procedural Lake Village
My goal was to explore more complex relationship in a building than a simple box and push the boundaries of the rule set that would allow for a creative arrangement in a context of this new challenge. Learning python and vex really “lifted the ceiling” for me and allowed to make the building generation on a completely new level. In fact, it allowed for so many new solutions and ideas, that I can’t imagine building Procedural Lake Houses without vex. The whole project in general was targeted to see how far I can go and featured great amount of new techniques compared to The Houdini Building Tool, such as combining pre-made and generated geometry, material building, modules’ spatial awareness and numerous custom algorithms. Obviously, it is incomparably more complex than my first project, however, in its core idea, it is the same: it is about strict hierarchy and adding sprinkle on top of that in a form of controlled randomness.
The most satisfying part was, when generating the final lake houses, the network would give me unexpected, but very creative results that I simply didn’t anticipate or take into account when writing the rules. And those outcomes still had all the rights to exist and, in fact, looked extremely curious. If that was a person, who built the house, I would praise him for originality! Does it mean that the systems can be creative within the constraints that we give them? I like to think of Houdini as a student, and you are a teacher, who can put any information in a student’s head and it will be perceived with 100% accuracy (for the worse or the better). And, as many teachers know, students have a tendency to really surprise you with the things they come up with
Striking for a Natural-looking Result
Most people probably do not directly register it, but we are great pattern recognition machines, and to make procedural generation believable the patterns we face on daily basis should be present. When striking for a natural-looking result, the rules for a procedural network are still simple abstractions of the real world environment, and that is perfectly fine as long as the imitation accounts for the necessary level of detail.
For me, this process resembles painting: first, you make very wide and general brush strokes and only then, when you are satisfied with that stage, you start refining and adding specifics. And, of course, a “resolution for details” has to be taken into consideration as you probably don’t want to add nails to a house you will never see so close. However, analyzing what makes the house or anything else “normal” to your brain is essential as a slightest offset from the stereotype that was carefully constructed by your mind based on years and years of experience will result in a model looking artificial or “computer-made”.
Seeing the world through the “patterns and rules” glasses is pretty fascinating. For example, when I walk outside and see a piece of a rusty can, it mesmerizes me how many conditions have triggered to make this tiny piece be placed there. Man-made structures and phenomena are usually easier to perceive, but the nature really keeps me astounded every time when I just scratch on the surface of some absolutely beautifully crafted rules it has evolved throughout the thousands of years. We live in such a beautiful world and, as artists, we perform a unique role of “beauty recording”.
Anastasia Opara, Procedural Artist
Make to sure to check out Anastasia’s Gumroad page.