
I’ve been building a panelling generator for hard-surface work and it’s finally at the point where showing it isn’t embarrassing.
The rule I set myself was not cutting the source mesh. First attempt recursed subdivide_edges over the faces. Every check I had came back green: 456 panels, zero non-manifold edges, 25,120 tris. Rendered it, and got spikes shooting into space, geometry shattered all over the place etc.. N-gons subdivide unpredictably, and if you move a vertex that two faces share you drag the neighbour along with it.
So I binned it and started again.
Every panel is now its own prism, extruded in the plane of the face it sits on, so nothing touches the topology underneath. Vents, recesses, risers and fins are the same primitive with a different 2D outline, which kept the code small.
Two things caught me out while getting it to look right.
Detail has to clump. Greebles scattered evenly looked procedural, however nice each individual bit is. There’s a density field now, so some regions end up packed with vents and others stay as bare plate. That did more for believability than anything else tbh.
The second one took me ages. Plating on its own can’t change a silhouette. I kept improving the surface and couldn’t work out why the thing still read as a cube with texture on it. Panels sit flush, so the outline never moves. It only started looking built once I added risers and fins standing proud of the hull.
Before and after below is one hull, one seed: 262 plates, 74 vents, 28 fins, 50 greebles, 11,388 tris.
Runs on 3.6.23, 4.2.23, 4.5.12, 5.0.1 and 5.2.0. I put the whole matrix through on every change, because addons round here tend to die quietly when the author stops keeping up with releases.
Still weak: curved surfaces. And there’s no wear or edge damage, since it only generates geometry and leaves materials to you.
Free tools I’ve put out, if any use: https://github.com/tristanmuzzu/blender-tools
PanelForge: https://tristaneer2.gumroad.com/l/panelforge?src=blenderartists