BD Mesh Inspector
Spin the mesh in your browser — the check before you bake, export, or commit
- mesh
- bundle
- normal_map
- emissive_map
- alpha_map
- diffuse_map
- status
BD Mesh Inspector is an interactive 3D viewer that lives inside the node. You feed it a mesh and it shows you the thing - in the ComfyUI UI, rotatable, zoomable, with a switch to view different PBR channels. It's the "look at what you made before you ship it" node, and in a pipeline full of export and bake nodes, that's not optional. The 3D-generation essay in the KB makes the case better than anyone: the geometry that comes out of image-to-3D models looks good at a glance and is often terrible underneath. This is the glance - but with the tools to check underneath too.
The pack already has a thumbnail renderer (BD Mesh Preview) for quick contact sheets. This is the deeper version: same family, more inspection. Where the preview answers "does it look right from the front?", the inspector answers "what's the actual state of this mesh?"
What it takes in
Three ways to get a mesh in front of it, and you can mix them:
mesh- a TRIMESH directly from any BD node (load, CubePart part, OVoxel bake output, simplify...).bundle- aMESH_BUNDLE(the pack's packaged mesh+textures+colors container), so you can inspect right afterBD Pack Bundle.mesh_path- a file path (GLB, PLY, OBJ, FBX, STL, OFF...), which is handy for checking something on disk without rebuilding the graph.
Plus the optional maps: diffuse_map, normal_map, emissive_map, alpha_map, and metallic_json/roughness_json (per-vertex JSON arrays from BD Sample Voxelgrid PBR). Wire those in and you can verify the full material stack, not just the geometry.
What it shows
initial_mode (default full_material) picks the first view, and from there you can switch between channels in the viewer: UVs, vertex colors, normals, metallic, roughness, alpha, emissive, diffuse. That channel switching is the real feature - it's how you catch the classic fails before they reach a game engine:
- UVs look like a knot → your unwrap needs work before texturing.
- Vertex colors are missing → a COLOR_0 consumer downstream will silently ship white.
- Normal map inverts in one channel → the tangent-space bake is wrong.
Each of those is a 30-second eyeball check in this node versus an engine import + a "why is it black?" investigation later.
It's an output node - the only output is a status string - so it goes at the end of a branch (or a temporary dead-end branch you delete after checking). Nothing downstream can consume a viewer, which is correct: it's a tool for you, not for the graph.
Installing
Same as the whole BrainDead pack - ComfyUI Manager search "BrainDead" or clone + pip install -r requirements.txt, restart. It needs trimesh (the pack's mesh type foundation) and works on the V3 API, so keep ComfyUI current.
One workflow tip: after any bake or export step, throw a Mesh Inspector on the result once. The pack's own bake pipeline (BD OVoxel Bake → export) is where things look perfect in preview and break in-engine - the inspector is the cheapest insurance you'll add to that chain.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| initial_mode | COMBO | full_material | Initial view mode for the 3D viewer |
| meshopt | TRIMESH | — | |
| bundleopt | MESH_BUNDLE | — | |
| mesh_pathopt | STRING | Path to a mesh file (GLB, PLY, OBJ, FBX, STL, OFF, etc.) | |
| metallic_jsonopt | STRING | JSON array of per-vertex metallic values (from BD Sample Voxelgrid PBR) | |
| roughness_jsonopt | STRING | JSON array of per-vertex roughness values (from BD Sample Voxelgrid PBR) | |
| normal_mapopt | IMAGE | Normal map texture | |
| emissive_mapopt | IMAGE | Emissive map texture | |
| alpha_mapopt | IMAGE | Alpha/opacity map texture | |
| diffuse_mapopt | IMAGE | Diffuse/albedo texture |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| status | STRING | — |