Create Primitive
The fastest way to get a mesh into your graph
- mesh
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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| shape | COMBO | cube | 3 options: cube, sphere, plane |
| size | FLOAT | 1.00.01–100 | — |
| subdivisionsopt | INT | 20–5 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| mesh | TRIMESH | — |