Procedural Modular Kit Generator
A Houdini tool that takes one master modular building piece and automatically generates its entire family of resized and feature variants as correctly named, ready-to-import assets.
Overview
This tool takes a single master modular kit piece — a wall or panel module sized as a fixed multiple of a base unit — and automatically generates the entire family of smaller resized variants plus an extended set of feature pieces (door and window openings, headers, split panels), exporting each one as a correctly named, ready-to-use asset.
Challenge
Modular kit families are normally built by manually resizing and recutting a master piece into every required sub-size and feature variant, then manually naming each output file according to convention. That's slow and repetitive on its own, and any inconsistency in naming or geometry between variants could silently break downstream tooling that depends on predictable structure — a problem that often wasn't discovered until far later in the pipeline.
Design Goals
- Input is a single master piece sized as a fixed multiple of a base module unit — every generated variant must be a clean multiple of that same unit.
- Naming convention applied automatically and consistently, never hand-typed.
- Tolerate a master piece authored with a different forward-axis convention than the target DCC's default.
- Output pivots centered and normalized consistently across every generated piece.
- Triangulation left as an artist-controlled export option rather than forced, since some artists want to hand-edit kit pieces afterward.
System Design
Implementation
The tool first normalizes the master piece — applying a corrective rotation for pieces authored in a DCC with a different forward-axis convention, then aligning geometry to a consistent zero-corner origin — before any generation happens, so every downstream step can assume consistent orientation regardless of source.
From that normalized master, it procedurally slices the standard smaller widths (1x, 2x, 3x, 4x, and 6x the base unit) to produce the basic kit set automatically, then generates roughly sixteen additional named feature variants — header pieces, single/double/quad door openings, single/triple window openings, and a split-window piece — at the module widths each one requires.
Every generated piece receives its filename automatically, built from the base name, variant type, width tag, and index, and is exported with a centered pivot and an artist-controlled triangulation toggle.
Results
What was previously a time-consuming, error-prone manual authoring step now produces a full variation package in seconds from a single master piece, with naming and structural consistency guaranteed for every output — removing an entire category of downstream breakage that used to come from small inconsistencies between hand-authored variants.
Lessons Learned
Encoding the naming convention directly into the generator — rather than relying on artists to follow written documentation — is what actually guarantees downstream tooling never breaks; documentation can be skipped, a generator can't produce the wrong filename. Handling cross-DCC axis differences up front, rather than as a special case, also eliminated a recurring class of "flipped geometry" bug reports before they started.