
Building a Procedural Shipping Yard in Houdini
Initial Container Setup
The initial setup for the container, and the basis for its overall scale, is based off a single box node, which means everything downstream will change with the shape of that box, letting you make it as big or small as you want. The concept was to create something that looked visually real from a medium and far distance, ensuring the most key details of the container were visible.

Sheet Metal
Each major length of the container was extracted as a line, then offset with a small VEX wrangle: on every pair of points, if the pair index is odd, the point is pushed along Y by a signed amplitude, alternating the ridge direction on each side of the container. Once that was dialed in, it could be applied to every side of the container, then optimized, cleaned up, and packed. Each container was built from 3,700 primitives.

Instancing the Containers
Because the scene needed an entire shipping yard, I needed a lightweight setup that stayed as cheap as possible. The approach that worked best was building a proxy bounding-box geometry and distributing it across a point array, with a wrangle node representing each row of containers and a set of functions that make every row fully customizable.

Customizable Row Density
Each row has its own minimum and maximum container count, randomly generated between those two numbers, plus a density curve you can raise or lower to override specific areas of the yard to be denser or sparser.

Final Layout
Once everything is laid out, the final scene renders in about two minutes, and unpacked would contain over 20 million polygons.
