Node Groups

../../../_images/interface_controls_nodes_groups_example.png

Example of a node group.

Grouping nodes can simplify a node tree by hiding complexity and reusing common functionality. A node group is visually identified by its green title bar.

Conceptually, node groups allow you to treat a set of nodes as a single unit. They are similar to functions in programming: reusable, composable, and parametrizable.

For example, suppose you create a “Wood” material and want to use it in multiple colors. You could duplicate the entire node setup for each color, but maintaining those duplicates would be tedious if you later decide to change the wood grain detail. Instead, you can move the nodes that generate the wood pattern into a node group. Each material can then reuse this group and supply a custom color as input. Any updates to the grain detail need to be made only once—inside the node group.

Node groups can be nested; that is, a group can contain other groups.

Note

Recursive node groups are prohibited to avoid infinite recursion. A group cannot contain itself, directly or indirectly.

Tip

Like other data-blocks, node groups with names that start with . are hidden from menus and lists and can only be accessed via search. This is useful for node asset authors who want to hide internal utility groups from end users.

Group Input and Group Output nodes are used to represent data flowing into and out of the group.

The Group Input node provides access to the group’s input sockets from within the node group. These sockets act as parameters that control the behavior of the group from the outside. You can connect them to internal nodes to drive values such as factors, colors, or geometry inputs.

Note

Input values that do not affect the output will be grayed out.

The Group Output node defines the data that is passed out of the node group. Only sockets connected to this node will be available as outputs on the group itself.

Important

Avoid using nodes output nodes such as Material Output inside node groups. These should be used on the top level node tree to improve re-usability of node groups.

Use Group Output to pass data out of a node group.

Usage

Managing Inputs/Outputs

You can add, remove, and reorder input and output sockets in the Group panel in the Sidebar. New sockets can also be created directly by dragging a link to or from the hollow socket on the Group Input or Group Output node to another socket in the node editor.

Reusing Node Groups

Reference

Menu:

Add ‣ Group

Shortcut:

Shift-A

Existing node groups can be placed again after they’re initially defined, be it in the same node tree or a different one. It’s also possible to import node groups from a different blend-file using File ‣ Link/Append.

Tip

When appending node groups from another blend-file, Blender does not distinguish between types such as material or compositing groups. To avoid confusion, it is recommended to adopt a naming convention, like using prefixes (Mat_, Comp_, Geo_, etc.), to indicate the group’s context.

Properties

Group

Reference

Panel:

Sidebar ‣ Group ‣ Group

../../../_images/interface_controls_nodes_groups_interface-group-panel.png

The Group panel.

This panel contains properties that relate the group node such as it’s name and look.

Name

The name of node as displayed in the Title.

Description

The message displayed when hovering over the Title or in add menus.

Color Tag

Color tag of the node group which influences the header color.

Node Width

The width for newly created group nodes.

(Set Default Node Width)

Set the width based on the parent group node in the current context

Show Manage Panel Geometry Nodes

Enables displaying the Manage panel in Geometry Nodes modifiers when creating a modifier from a node group asset.

Usage Geometry Nodes

This panel is only visible in the Geometry Node Editor.

Modifier

The node group is intended for use with the Geometry Nodes Modifier.

Tool

The node group is intended to be used as a tool.

The data-block menu in the header of the Geometry Node Editor only lists the node groups whose Usage matches the current Node Tree Sub-Type.

Tip

If you accidentally disable both Usages, the node group will not be accessible through the data-block menu anymore. To make it accessible again, you can add it as a node to a different node group (Add ‣ Group), select that node, and press Tab to enter it. From there, you can enable one of the Usages again.

Group Sockets

Reference

Panel:

Sidebar ‣ Group ‣ Group Sockets

../../../_images/interface_controls_nodes_groups_interface-group_sockets_panel.png

The Group Sockets panel.

This panel is used to add, remove, reorder, and edit the user interface elements of a node group. It defines how sockets appear on the group node and organizes them for clarity and usability.

Available item types include:

  • Inputs: Define input sockets for the node group.

  • Outputs: Define output sockets for the node group.

  • Panels:

    Group and organize related sockets together. Useful for structuring complex node setups. Panels always appear at the bottom of the node interface. They can be nested by dragging one panel on top of another in the interface item list.

  • Panel Toggle:

    Adds a boolean checkbox to a panel’s header, allowing control over its contents. This option is only available when a panel is selected in the interface item list.

    Panel toggles have their own options under the Panel Toggle subpanel. Note that toggle sockets are not listed directly in the interface list—panels with toggles instead show a boolean socket icon next to their name. To make the toggle socket visible again, it must be unlinked from the panel.

    Note

    A panel toggle does not automatically disable or grey out its sockets. To visually and functionally disable sockets, use a Switch Node or similar logic and disconnect the socket manually.

Interface Item List

A UI list view showing all input/output sockets and panels. Each item can be renamed and configured individually. The name appears in the node’s user interface.

Tip

Selecting a socket label on the node itself will also select that socket in the Interface Item List.

Specials

Duplicate Item

Duplicates the selected socket or panel.

Make Panel Toggle

Converts the selected boolean input into a toggle for its parent panel. Only available when a panel is selected and the active item is a boolean socket.

Sockets

The properties available for sockets depend on several factors, including whether it is an input or output socket, the data type, and the type of node tree.

Type

The type of Socket generated by this interface item.

Description

The tooltip text displayed when hovering over the socket.

Attribute Domain Geometry NodesOutputInteger Color Vector Boolean Float

The type of geometry element the attribute corresponds to. See Attribute Domains for a complete list of attribute domains.

Default Attribute Geometry NodesInteger Color Vector Boolean Float

The attribute name used by default when the node group is used as a geometry nodes modifier.

Subtype Integer Float Vector String

Specifies how the data is interpreted and displayed in the user interface. The unit or behavior often depends on the Scene Units.

Integers
None:

Standard integer values.

Percentage:

Displayed as a percentage. Typically, Min and Max values are set to 0 and 100.

Factor:

A percentage or factor between a lower and upper bound.

Floats
None:

Standard floating-point values.

Percentage:

Displayed as a percentage. Typically, Min and Max values are set to 0 and 100.

Factor:

A percentage or factor between a lower and upper bound.

Angle:

A measurement in degrees or radians, depending on scene units.

Time (Scene Relative):

Time in frames, converted to seconds based on the scene frame rate.

Time (Absolute):

Time in seconds.

Distance:

A spatial distance measurement.

Wavelength:

The distance between wave cycles, measured in millimeters (mm), micrometers (µm), nanometers (nm), or picometers (pm).

Color Temperature:

A temperature value (Kelvin) corresponding to the perceived color of a light source.

Frequency:

A rate of repetition per second (hertz).

Vectors
None:

Standard vector values.

Percentage:

Displayed as a percentage.

Factor:

A factor between a lower and upper bound.

Translation:

A displacement vector.

Direction:

A geometric direction vector.

Velocity:

Vector representing speed and direction of motion.

Acceleration:

Vector representing the change in velocity.

Euler Angles:

Euler Rotation angles.

XYZ:

Cartesian coordinates. A fourth component (W) may also be supported.

Strings:
None:

Standard text string.

File Path:

The string is interpreted as a path to a file.

Dimensions Vector

Sets the number of components for the vector socket: 2, 3, or 4. Changing the dimension affects how the socket is drawn and how data is passed through it.

  • 2D: X and Y components only.

  • 3D: X, Y, and Z components.

  • 4D: X, Y, Z, and W components.

Default

The value used when nothing is connected to the socket.

Min, Max

The minimum and maximum values for the UI control in the node interface.

Important

This does not clamp the actual data flowing through the socket. If a higher value is passed into the socket, it will still be processed unchanged.

Expanded Menu

Displays the menu in an expanded layout, showing all options at once.

  • In node editors, only the expanded menu is shown, without a label.

  • In modifier and operator panels, both the label and the expanded menu are displayed.

Default Input Geometry NodesInputInteger Vector Matrix

The value used when the socket is unconnected. Requires Hide Value to be enabled.

Optional Label Input

Indicate that the label of this socket is not necessary to understand its meaning. This may result in the label being skipped in some cases.

Hide Value

Hides the socket’s default value control, even when it is not connected.

Layer Selection Geometry NodesInputBoolean

Takes a Grease Pencil Layer or Layer Group as a selection field.

Hide in Modifier Geometry NodesInput

Hides the input value in the Geometry Nodes modifier interface. This allows the socket to be used inside the node group, but not exposed to the modifier.

Available only for Geometry Nodes input sockets.

Shape Geometry NodesInput

Specifies what kind of higher-order data the socket accepts. See Socket Shape for more information.

Auto:

Automatically detect the most appropriate shape based on how the socket is used. This is the default option and works for most cases.

Dynamic:

The socket can adapt to multiple shapes, making it flexible when used with different connections. Useful for generic node groups intended to handle various data types.

Single:

Only allows single values (constants) rather than structured data. Fields or grids cannot be connected.

Field:

The socket expects a field, meaning the value can vary depending on the geometry element or context.

Grid:

The socket expects a grid data structure, which stores values sampled across a volume or 2D space.

Panels

Description

The tooltip text displayed when hovering over the panel’s header.

Closed by Default

When enabled, the panel is collapsed by default on new nodes.

Animation

Controls animation data for node group properties, including active Actions and their assigned Slot.

See Manually Assigning Actions and Slots for more information.

Make Group

Reference

Menu:

Node ‣ Make Group

Shortcut:

Ctrl-G

Creates a new node group that contains all selected nodes.

Group Input and Group Output nodes will be created to represent connections to unselected nodes outside the group. Inputs will be routed to the Group Input and outputs routed to the Group Output.

When grouping a single node, the resulting node group will:

  • Preserve the interface of the original node, including panels and default values.

  • Inherit the name of the original node

When grouping multiple nodes, the group is created with inputs and outputs sockets generated from the connections. In this case, a generic name such as “NodeGroup”, “NodeGroup.001”, etc. is used.

Insert Into Group

Reference

Menu:

Node ‣ Insert Into Group

Moves the selected nodes into the active group node. To use, select a set of nodes, ending with the destination group node, then, running the operation will move those nodes into that group. The moved nodes are collected into a group of their own to preserve their connection context, having their own group input and output nodes. The group’s existing input and output nodes are updated with new sockets, if any, from the new nodes. The node group must be edited to contain a single Group Input and a single Group Output node.

Edit Group

Reference

Menu:

Node ‣ Edit Group

Header:

Go to Parent Node Tree

Shortcut:

Tab, Ctrl-Tab

With a node group selected, press Tab to move into it and see its content. Press Tab again (or Ctrl-Tab) to leave the group and go back to its parent, which could be the top-level node tree or another node group. You can refer to the breadcrumbs in the top left corner of the node editor to see where you are in the hierarchy.

../../../_images/render_cycles_optimizations_reducing-noise_glass-group.png

Example of an expanded node group.

Ungroup

Reference

Menu:

Node ‣ Ungroup

Shortcut:

Ctrl-Alt-G

Removes the group and places the individual nodes into your editor workspace. No internal connections are lost, and now you can link internal nodes to other nodes in your workspace.

Separate

Reference

Shortcut:

P

The Separate operator removes the selected nodes from a node group and places them in the parent node tree. This is useful when nodes need to be edited outside of a group for clarity or reuse.

Copy

Duplicates the selected nodes into the parent node tree, while keeping the originals inside the group. This is useful when you want to reuse nodes outside of the group but still preserve the group definition.

Move

Moves the selected nodes to the parent node tree, removing them from the original group. This is useful when simplifying a group or exposing its contents directly.

Join Group Inputs

Reference

Menu:

Node ‣ Join Group Inputs

Shortcut:

Ctrl-J

Merges multiple selected Group Input nodes into one consolidated Group Input node when possible. Existing links are preserved, and duplicate inputs are unified to reduce clutter and simplify the node tree.

This operation is useful for cleaning up node groups that have become disorganized or contain redundant input nodes.