Nodes/BrainDead Nodes/BD Mesh Inspector
ComfyUI Node

BD Mesh Inspector

Spin the mesh in your browser — the check before you bake, export, or commit

By BizaNator·Created 8 months ago·Updated 3 days ago· 15
BD Mesh Inspector
  • mesh
  • bundle
  • normal_map
  • emissive_map
  • alpha_map
  • diffuse_map
  • status
initial_modefull_material
mesh_path
metallic_json
roughness_json

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 - a MESH_BUNDLE (the pack's packaged mesh+textures+colors container), so you can inspect right after BD 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.

Category🧠BrainDead/Mesh

Inputs (10)

NameTypeDefaultDescription
initial_modeCOMBOfull_materialInitial view mode for the 3D viewer
meshoptTRIMESH
bundleoptMESH_BUNDLE
mesh_pathoptSTRINGPath to a mesh file (GLB, PLY, OBJ, FBX, STL, OFF, etc.)
metallic_jsonoptSTRINGJSON array of per-vertex metallic values (from BD Sample Voxelgrid PBR)
roughness_jsonoptSTRINGJSON array of per-vertex roughness values (from BD Sample Voxelgrid PBR)
normal_mapoptIMAGENormal map texture
emissive_mapoptIMAGEEmissive map texture
alpha_mapoptIMAGEAlpha/opacity map texture
diffuse_mapoptIMAGEDiffuse/albedo texture

Outputs (1)

NameTypeDescription
statusSTRING