Creating a Procedural Brooklyn in Houdini

Creating a Procedural Brooklyn in Houdini

Stroiny Lucian talked about the way he worked on a Brooklyn street procedurally in Houdini, Substance Painter, and Substance Designer.

Stroiny Lucian talked about the way he worked on a Brooklyn street procedurally in HoudiniSubstance Painter, and Substance Designer.


My name is Stroiny Lucian, I am self-taught and I am working as a freelancer in my spare time. I am 21 and currently a student at a Computer Science University (maybe this explains why I am learning Houdini). One of the reasons behind this project was my desire to work in the game industry as a 3D modeler after my graduation, so I started to improve my skills as an environment/technical artist.

Six months ago, I wanted to try 3D modeling from a different angle, so I started working in Houdini, which is more technical. Its unique node-based approach gave me a lot more flexibility. After one month, I found a tutorial on Udemy “Game Asset Creation with Houdini” by Richard Banks (season 2) which helped me to understand the procedural workflow of Houdini. After that, I was confident enough to start my own project.

Procedural Brooklyn in Houdini

1 of 2

Project Goal

My main goal with this project was to create a city scene in a procedural workflow, so it would be easy to make new iterations on that. I had no idea what I will do, but I love New York/ Brooklyn buildings and I thought it would be a challenge to create them procedurally. Google street view was helpful in finding inspiration, this is how I decided on city rowhouse clads (which are popularly known as brownstones).

A challenge for this project was to optimize the scene for a game engine, mainly by trying to keep low poly count and create lightmaps for each object.


Before talking in more detail about the procedural workflow, I should mention that I have some variations of the models used in the scene (such as doors/ windows/ stairs/ ornaments/ escape fire etc.) made in 3ds Max and imported in Houdini.

For example, I have 3 types of door, each with 3 different materials which were made in Substance Painter, so it was easy to make variations using Smart Materials:

I started the building with a simple rectangle, which I separated into 3 groups: front, sides, and back. Then I worked on each one individually.

An example of the workflow for the front side:

I created the facade using the front side curve and made the “holes” for the windows by subtracting from the facade using the Boolean node. After that, I added the windows, ornaments, air conditioners, and the decals.

Similar for the back side but with the added fire escape:

An example of the workflow for the back side:

Another interesting part of the project was to try to use Houdini to create street props. For example, I used Houdini for the high poly and low poly for the hydrant model, and a big advantage to working in a procedural way was that I could always go back in the network and change the parameter of a node.

I used a lot of polyextrude and boolean nodes and the VDB (a sparse voxel storage format) nodes helped me a lot with the high poly model.

After that, it was easy to create the low poly model and texture it in Substance Painter:


For the tileable materials, I used Substance Designer to create variations of materials in a short time. Substance Designer is also node-based and has a procedural workflow like Houdini so the entire project was made using similar concepts.

For the parts of the model where I used tileable materials, I created UV using the “UV Texture” node with “Texture Type” as “Face” to keep the texture continuous across multiple faces and to scale it without any distortions.

For the windows, I created an atlas for optimization purposes, with 6 columns and 4 rows. Imported window plane UV has the position of the first window from the texture (top-left). Using VEX (Houdini’s programming language) I moved randomly each UV plane on U axis and on V axis to have a different texture for each window.


At the end of the project, I had 2 types of seeds. A global seed for all the buildings from the scene:

And another seed for each building:

Or I can change each parameter of a building:


During this project, I feel like I expanded my knowledge, both as a 3D modeler and an environment/technical artist. I think that sooner or later, more and more people will get into Houdini or another procedural program, because this kind of workflow speeds up the creative process and it provides tools which make it a lot more flexible and enjoyable.

If you want to learn Houdini but you are intimidated by it, I still encourage you to give it a try. It might be difficult at first but once you get more comfortable with it, you will be pleasantly surprised by the things you can do and how much faster it is than the other 3D software choices.

Stroiny Lucian, 3D Environment Artist

Interview conducted by Kirill Tokarev

Join discussion

Comments 5

  • Lucian Stroiny

    @John Bacile thank you for your comment. I used unreal engine for this project. I think unity it could be good too for that. These building don't have LODs or texture atlases, but if they have,the scene would be very good optimized for majority of the new PCs.( i ran this project on a I5, with a GTX 750, and i had ~40fps in 1080p)


    Lucian Stroiny

    ·4 years ago·
  • John Bacile

    Great work I'm from nyc so all the fine detail (of gum on the sidewalk) is very crisp What game engine did you use and what game engine might you say is the best for Houdini optimization to games.


    John Bacile

    ·4 years ago·
  • doe

    Ok but all buildings look the same.



    ·4 years ago·
  • Lucian Stroiny

    @Leonardo Luz it took me about 6 months, but during this project I have learnt a lot, so in general, it would take less, maybe 3-4 months.


    Lucian Stroiny

    ·4 years ago·
  • Leonardo Luz

    How much time did it take you to execute the project?


    Leonardo Luz

    ·4 years ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more