Universal Mesh Conditioning Pipeline
A Houdini-to-Unreal mesh conditioning tool built for artists: automates validation, remeshing, UVs, LODs, and clean import into the correct Unreal folder via a right-click menu.

This tool came out of working on a project where models were coming into Unreal in all kinds of inconsistent states: missing UVs, no LODs, non-uniform scale, weird naming. Artists were spending more time fixing assets than actually using them. I figured: this should be a button.
It’s built in Houdini but connects directly to Unreal. You right-click on a folder in the Content Browser, select “Import with Universal Pipeline”, and it opens a UI where you pick your mesh and which steps to apply (validation, remesh, UVs, LODs). Once it runs, it automatically imports clean .uasset files into the selected folder in Unreal with consistent naming, no leftovers, and no extra setup required.
1. Validation
Every mesh goes through a check for common issues: non-manifold geometry, flipped normals, open edges, bad scale. It auto-fixes what it can, and preps the mesh for downstream steps. This makes sure garbage data doesn’t make it past the first step.
2. Optional Remeshing
Some assets were overly dense or had awful topology. I added an optional remeshing step using Houdini’s VDB tools to clean things up. It’s great for environment props and background assets that need to look clean but don’t need sculpted detail.
3. UV Generation
UVs were often missing or broken, so I included a Houdini UV layout stage with world-stable packing and shell island visualization. This gives you clean UVs without artists needing to open another DCC.
4. Automatic LODs
You can generate multiple LODs with a slider to control how many to create. It uses polyreduce on the clean version of the mesh and exports each as a separate FBX with consistent naming (e.g., SM_Chair_LOD1, SM_Chair_LOD2, etc).
5. Clean Import to Unreal
This was the part I cared most about: the final .fbx files go into a temporary folder, and a Python script launches Unreal in command-line mode to import them directly into the folder the artist originally selected. Nothing gets dumped into /Game/, no folders need to be browsed manually. It just shows up, clean and named properly.
6. Portable + No Hardcoding
Everything is relative-path safe, temp-folder safe, and uses sys.argv to pass the target export directory. You can zip it and run it on any machine with Houdini installed. There are no hardcoded user paths or Unreal dependencies.
In the end, it’s just a bridge. One that saves artists from repetitive steps and keeps things clean. I didn’t try to build some huge asset manager (that's another project), just something light, direct, and dependable. I’d love to eventually track how often artists use it or how much time it saves per asset. But for now, I’m happy it does one thing well: make importing less of a headache.
Built with:
Python 3.11, Houdini hou module, Unreal Engine 5, PyQt








