Procedural Assets Creation

Personal Exploration on HDA Tool for Immersive Experience Development
This work involves an independent investigation into the capabilities, workflows, and creative applications of the Houdini Digital Asset (HDA) toolset, with a specific focus on developing and optimizing assets for Virtual Reality (VR) experiences. The exploration centers on how HDAs can streamline procedural content creation while addressing the unique performance constraints of VR environments, such as polygon count, texture resolution, and real-time interactivity. By experimenting with custom parameter setups, asset encapsulation, and intuitive interface design, the goal is to create flexible tools that allow rapid iteration of VR-ready environments and props.

Sci Fi Electrical Box Generator


The Backbone Idea


Starting with a simple input cube, the tool allows customization of the size in X, Y, Z.
During the first step of defining general dimension, the user customizes corner’s beveling and irregularity from slightly booleaning the initial cube input. 
The tool then takes the primitive facing in Z+ direction as the source to spawn random points on its surface. The user then controls how many points they would like to have on this electrical box.
These points will be used to create smaller components inside the final assets. To control which “kind” or “species” of the smaller components, point attributes are assign to each point by user’s input probability.
For example, out of 10 points, user can define: 0.4 (40%) to be a “Switch” kind, 0.2 (20%) to have “CircuitBox” kind, and so on. 
These information will be used to populate premade smaller assets into the box. Next, dynamic modeling details like wires and cables are generated based on these smaller component models.
 The tool is set in the way that, for each “Switch” model, on the higest primitive surface, there will be a point with “start” attribute for the wire.
Similarly, for each “CircuitBox” highest primitive surface, there will be a point with “end” attribute. The “start” and “end” attribute for the pairing points then form into a line.
These lines are used to simulate the cables with the rest of the models inside the box act as collision objects. 
Once smaller objects are placed, the user also has an option to define “empty area.” This can casually acts as negative space in the overall design, or they can use this area to place hero objects or the models they want to emphasize manually.

Completed, Customized, Optimized 
Design Leads Proceduralism Run

Modeling

Assets Customization from simple upperstream node-based commands




Texturing

Material and Shader Parameters, driven by baked map from Houdini COP network

Combined Technical Passes on the Gun
Green Channel Controlling Dirt Along Curvature
Blue Channel Giving Gradient Color Based on Z Position
Red Channel Controlling Metal Edges Worn

Procedural Texturing


Procedural texturing starts after the modeling process. The final goal of this process is to acheive mainly 3 texture maps: Color diffuse, Occlusion/Roughness/Metallic, and Normal, to be later used in game. Other maps like Emissive and Height can be acheived if needed as well. Starting with the model, we then bake interesting features like AO (ambient occlusion), curvature, position, and edge normal. Once these technical map is extracted, we can then use random noise like Simplex/Perlin/etc. to multiply with them. First, we take AO multiplying with noise to create an interesting look mimicking dirt, that frequently occur in the hollow gaps between objects. Second, Curvature and Edging information combined with similar randomized noise can create metallic worn edges. Third, this is optional but I frequently used Position map to create a slight gradient based on object world position.  Once completing these 3 maps, each map then stored in each R, G, B channel, packed into a single ORM map. 


Optimized UV Layout and Texture Maps
More Generations from the Workflow
Click to Play the video
MinigunThis asset went through additional modeling, optimization, and texturing passes to prepare it for real-time use. The model includes multiple LODs, with the highest level capped at 15k vertices and the lowest around 3k vertices.

I also implemented a small script that animates certain components to spin when the weapon starts or stops firing. Inspired by Star Wars–style energy weapons, the tip of the gun heats up during firing, creating a visual feedback effect.

The heat effect is driven purely by emissive values controlled by a script attached to the prefab. The system includes adjustable parameters for intensity, timing, and spinning speed. If the effect isn’t needed, it

Laser Drone
The goal was for the drone to feel like a “junior” unit deployed from the mech, sharing the same design language.  Matching textures and decals were added, using the same shader setup as the mech for easy customization, with emissive elements separated for optional use.

The model was imported as separate parts with decals added in the prefab for easier in-engine adjustments. The mesh was also optimized to ~12k vertices, similar to the weapon assets created earlier.
Delivery DroneUse a “hacked” drone to deliver special weapons to players. The drone could fly above the player with a weapon attached underneath, then drop it for the player to pick up. This could create a clear visual moment in gameplay where players see the drone arriving and deploying the weapon.

The model is built with modular parts that can be easily mixed and matched within prefabs, similar to the drone setup. The mesh is optimized to around 8k vertices (including some duplicated elements for modularity). Materials are organized into separate slots with adjustable parameters for color, dirt, metallic, and emissive values.

This setup makes it easy to add or remove geometry and customize variations directly in-game. A simple script was also added to rotate wing blades, using a textured plane to simulate spinning blades efficiently.

Flamethrower
Designed the assets mechanic pieces to prevent it from collapsing into the top portion during movement. I also added true depth to the firing cannon, allowing flame or VFX to spawn from inside the barrel. Additional LODs were created to further optimize the model.

The asset uses MeshRenderers with simple parent-child hierarchy instead of joints. Parts intended for animation are clearly named (e.g., Base-00, Part-01, etc.) within the prefab for easier control.

Pivots are positioned at the center of each rotating component, and all rotations are zeroed out, making the turret ready for animation or repositioning. The setup also allows the turret joints to be folded or adjusted to create different visual configurations if needed.
Laser ScannerCreated a more boxy shape, closer to the reference design. Textures were also added, along with a Shader Graph setup that allows color variations across different parts of the model. The shader includes adjustable parameters for details such as edge dirt and scratches, making it easier to tweak the look directly within Unity.

For the scanner component, I added extruded details to the sphere so it doesn’t appear too empty while rotating, improving visual interest during motion.

Procedural Workflow with Character

Not only for static assets such as environments and props, procedural workflows also streamline the character creation process. For this giant mech character, the process begins by defining the skeleton using polygon curves. This approach allows us to freely adjust armatures and joints without early-stage constraints. The curve data is then used as a set of blocking forms for geometry creation.

With procedural modeling, parameters such as length, angles, and directional data along the curves are used to generate geometry accordingly. This combination enables a non-linear workflow in which modeling, rigging, and animation can be revisited and adjusted at any time while remaining in sync. This workflow proves especially effective for iterative production environments such as games and immersive experiences, providing flexibility to refine and optimize assets for both artists and developers.

Procedural Modeling Based on Rigging Skeleton
Inverse Kinematic Rig 

2025 Chatrin Samanchuen
All rights reserved
Chatrinsamanchuen@gmail.com
Bangkok, Thailand