Nodes/BrainDead Nodes/BD Blender Planar Normals
ComfyUI Node

BD Blender Planar Normals

Give a mesh that clean flat-panel look games actually want

By BizaNator·Created 8 months ago·Updated 3 days ago· 15
BD Blender Planar Normals
  • mesh
  • mesh
  • glb_path
  • status
angle_threshold15.0
fill_holestrue
timeout300

That stylized, low-poly "flat panel" look you see in polished indie and UGC games isn't just low triangle count - it's flat shading done right, where each visible plane has one consistent normal instead of noisy interpolated ones. BD Blender Planar Normals produces exactly that: it groups faces by angle threshold, assigns each group a single flat average normal as custom split normals, and marks the sharp edges between groups. What you get is a mesh that reads as crisp, faceted geometry in Unreal, Unity, or Blender.

This is the "finish" node of the pack's stylized pipeline. Where BD BlenderMergePlanes reduces geometry, this node works on the normals - so it's the right tool when you have a high-res quad mesh and want the flat-panel aesthetic without necessarily destroying the underlying geometry. The pack's docs call out that it saves a GLB with proper custom split normals, which is the part engines actually respect on import.

The input that matters

  • angle_threshold (default 15°) - the one knob. Faces within this angle of each other get grouped into one flat panel. Lower = more groups, sharper facets (think crystal look). Higher = fewer groups, smoother. 15° is a sane stylized starting point; drop toward 5° for aggressive faceting.
  • fill_holes (default true) - closes open boundary edges before grouping. Leave it on for generated meshes, which usually have ragged borders.
  • timeout - Blender processing cap.

Outputs: the normal-fixed mesh (TRIMESH), a glb_path STRING to the saved GLB, and status.

Install and the Blender gotcha

Pack install, standard:

cd ComfyUI/custom_nodes
git clone https://github.com/BizaNator/ComfyUI-BrainDead
cd ComfyUI-BrainDead
pip install -r requirements.txt

(Or ComfyUI Manager → "BrainDead", restart.) V3 API → update ComfyUI if the nodes don't register. Blender node → a real Blender must exist: the README's "bundled in lib/" claim is about scripts, not the binary. The code checks lib/blender/blender-5.0.1-linux-x64, sibling packs (GeometryPack/UniRig), then /usr/bin/blender. No Blender, no node.

Where people get surprised: they feed in a smooth organic mesh and the flat-panel result is much harder than they imagined - that's the point, but if you wanted subtlety, raise the angle threshold rather than blaming the node. Also, if your mesh has a baked texture you care about, this node changes normals (not UVs), so textures survive; but verify in the engine, because custom split normals can interact with some tangent-space normal maps in unexpected ways. For a pure geometry pass on organic characters you'd normally want BD BlenderRemesh or BD BlenderQuadDecimate first, then this on the result.

Category🧠BrainDead/Blender

Inputs (4)

NameTypeDefaultDescription
meshTRIMESH
angle_thresholdFLOAT15.00.5–89Faces within this angle of each other are grouped into one flat panel. Lower = more groups / sharper facets. Higher = fewer groups / smoother look.
fill_holesoptBOOLEANtrueFill open boundary edges before processing
timeoutoptINT30060–1800Max Blender processing time in seconds

Outputs (3)

NameTypeDescription
meshTRIMESH
glb_pathSTRING
statusSTRING