What is the difference between "Mesh" and "Geometry" in Geometry Nodes (or in general)?

I'm a programmer new to Blender and solely interested in Geometry Nodes. Here I do not understand the difference between "Geometry" and "Mesh" ports. They seem to be interchangeable, but not quite.

Take this Node graph for example:

For instance, if I connect the graph to the Group Output node's "Mesh" socket nothing gets displayed, it only works when connecting to "Geometry". So what uses are there for the separate "Mesh" socket in Group Output?

I understand most of the time Mesh and Geometry are convertible, or only modify the geometry of a Mesh like Transform only changes the vertex locations.

Is it safe to say in OOP terms that "a Mesh contains Geometry"? Or is it even simpler, where Geometry simply is another term for "Vertices"?

PS: Links to the respective classes in the Blender source code welcome!

• this has nothing to do with geometry or mesh, the output of GN can only take ONE (object/geometry/mesh) not more. That's a restriction. Commented Aug 9, 2022 at 11:26
• Referring to the Group Output sockets? If I connect a Cube directly to the Mesh socket of Group Output it still doesn't display anything. Commented Aug 9, 2022 at 11:35
• As @Chris said, the Group output can only output one geometry. To combine several separate geometries created inside the nodetree you have to join them in the Join Geometry node. Commented Aug 9, 2022 at 11:40
• And for the terms, to put it simple a geometry can be everything in GN which contains some kind of shape, points, curves, instances, vertices, edges and faces etc. everything that's not just a value or transformation node and these kinds of things. Mesh however refers to something (like outside GN) that gives a geometry which is visible in renders (at least if there are faces, technically a mesh can contain vertices and edges without faces), whereas other geometry like curves or points can only be made visible if they are converted into mesh by profile curves or instances for example. Commented Aug 9, 2022 at 11:42

You are confused about a lot of things, let me explain step by step:

1. Name in group output doesn't matter. You can name output as you like, and it will work:

Name can be changed in Properties panel N, Group tab:

1. So the only thing that matters is type. So green output is geometry even if it has some other name:

1. The first output goes to output geometry. If you set something different, Blender will point that:

1. the only reason to use secondary outputs is to store some data:

then you may store it in the attribute:

And use in the material:

1. In the same time Geometry may be in the different types: Mesh, curve, volume, instances, or any combination of them, so that you can separate and join any types of geometry:

• "you messed up" doesn't sound so nice my friend XD Commented Aug 9, 2022 at 11:45
• @HarryMcKenzie Sorry for that, I'm not a native speaker. How you would say that? Commented Aug 9, 2022 at 11:47
• @Crantisz Well, if someone says he is new to Blender and says he wants to understand the difference, just say nothing at all about messing up or pointing out what he did wrong, simply explain the differences and how it works ;) Commented Aug 9, 2022 at 11:49
• Haven't I done it? But then there are a lot of things that they interpreted in the wrong way, I should point on that, it is important, isn't it. But I don't want to be rude or something Commented Aug 9, 2022 at 11:56
• I don't mind meshing things up. :) That was a nice explanation! +1 is recorded, thanks! (not enough rep yet) Commented Aug 9, 2022 at 12:00

The difference is that a Geometry Node input can accept Mesh or Volume data, while a mesh input only accepts the former.

• Ah nice. So in game engine terms (ie Unity) Geometry is substitutable for Mesh. Commented Aug 9, 2022 at 12:04
• @SteffenItterheim I don't know about Unity, but in GN the term Geometry is not only mesh or volume, but also curves, distributed points etc (see point 5 in Crantisz' answer). Commented Aug 9, 2022 at 14:12

What is the difference between "Mesh" and "Geometry" in Geometry Nodes (or in general)?

In short and (very) simplified terms:

A Mesh, as the name suggests, quite explicitly denotes a conglomerate of points, edges and faces (but not necessarily all of them).

A Geometry, on the other hand, is basically anything that contains elements captured with positions in some form. This can also be a mesh, curves (and their curve points/handles), instances, volumes, or in some form a construct that contains certain things at certain positions.