Nathan Koch

Procedural Systems: Generative Landscapes

Wednesday, October 3rd 2018

Week 3: Deeper L-Systems Dive in 2D

I wanted to gain a more intuitive ability to drive out interesting structures and sketches with L-Systems, so I created a series of flat, black and white sketches with Houdini's L-System node. I was able to create some shapes that ranged in style from geometric to alien to organic. Week 10

Week 2: Further L-Systems Research in 3D

I created a more complex L-System in Houdini, using probability based rules to create controlled variation. Each rule sets a probability at the end of the line. With just a few rules, I was able to create some truly alien-looking vegetation.

The results are interesting, although once I get above about 16 generations it can take Houdini quite a while to cook the geometry.

Week 1: Initial L-Systems Research

I'm interested in creating landscapes in 3D software, from terrain to vegetation to animated inhabitants. My idea for this project was to create procedural trees with L-Systems in Houdini, and then instance dozens of different varieties in a real time Unity project. Aesthetically I'm aiming for something low-poly, with fairly flat colors.

I started with learning about the recursive turtle graphics behind L-Systems, and then played with a few sketches in Houdini. I haven't entirely gotten my head around it, and most of my ideas ended up with leaves in the wrong places, tons of overlapping geometry, or nothing happening in bigger generations.

This initial animation shows a dynamic forest of L-system driven trees, but because of issues I'm hitting in 2+ generations these are currently built on very simple systems. Each system uses a different random seed to drive its branch angles.

For next steps, I plan to solve some of my issues with overly simple L-Systems and explore dynamic instancing in Unity to build a forest procedurally in the editor. I'll also be experimenting with placing prefabs scattered across landscape meshes in Unity.