Nodes/ComfyUI libigl/Create Primitive
ComfyUI Node

Create Primitive

The fastest way to get a mesh into your graph

By PozzettiAndrea·Created 10 months ago·Updated 4 days ago· 218
Create Primitive
    • mesh
    shapecube
    size1.0
    subdivisions2

    Sometimes you don't want to load a mesh from disk - you want a box, a sphere, or a plane to build on. That's Create Primitive. It's the pack's little bootstrap node: no file, no model, no download, just three shapes with a size slider and a subdivisions knob, and a TRIMESH comes out the other end. Boring in the best possible way.

    What it gives you

    • shape - cube, sphere, or plane.
    • size (0.01–100, default 1) - the cube's edge length, or the sphere's diameter (the source builds it with radius = size/2), or the plane's side length. Worth knowing so your sphere isn't half the size you expected.
    • subdivisions (0–5, default 2) - resolution. Only affects the sphere and plane; for a cube it does nothing. The sphere uses an icosphere (triangles, evenly distributed), the plane is a subdivided grid of quads-split-into-triangles.

    Output: a single mesh (TRIMESH). No info string, no fuss. Wire it into Preview Mesh, Save Meshes to Folder, or the boolean and distance nodes.

    What you'd actually use it for

    This is the "ground truth" generator. The pack's distance nodes (point-to-mesh, mesh-to-mesh) need a reference surface - a plane or box makes a clean one. Boolean operations need two closed meshes to carve with; a cube primitive is a perfect cutting tool. And for testing any workflow, a primitive is a zero-setup input that always works. If you're experimenting with the pack and tired of hunting for test files, this is your starting line.

    Installing it

    It's the lightest possible surface of a heavy pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/PozzettiAndrea/ComfyUI-GeometryPack.git
    cd ComfyUI-GeometryPack
    pip install -r requirements.txt --upgrade
    python install.py
    

    Or ComfyUI Manager → GeometryPack → Install, restart, done. Primitives are built with trimesh's creation functions in the main environment, so no Blender or CGAL needed for this node - but you'll install the whole pack regardless, and that first launch still pulls the isolated environments.

    Where people get burned

    The radius-versus-size thing catches everyone once. And "subdivisions don't make my cube smoother" - they don't, that's not what a cube needs. If you want a smooth sphere, that's what the icosphere is already; higher subdivisions just add density for when you're testing decimation or remeshing and want more geometry to chew on. Also note the sphere is an icosphere, not a UV sphere - fine for geometry work, but if you need poles-and-rings topology for UV mapping, that's a different shape than this node makes. Small node, small gotchas, worth having.

    Categorygeompack/primitives

    Inputs (3)

    NameTypeDefaultDescription
    shapeCOMBOcube3 options: cube, sphere, plane
    sizeFLOAT1.00.01–100
    subdivisionsoptINT20–5

    Outputs (1)

    NameTypeDescription
    meshTRIMESH