> ## Documentation Index
> Fetch the complete documentation index at: https://docs.speckle.systems/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> These docs contain multiple Speckle product experiences. For Speckle 2026.9, prefer /next/ pages for the topics and changes they cover. The navigation label Current does not override this version-specific precedence.
> Coverage under /next/ is incremental. Use Current documentation for unchanged topics and when a /next/ page says coverage is unavailable or explicitly refers you to Current. Do not infer a feature was removed from a missing page.
> Read the page-specific documentation status, applicability, affected guidance and replacement links in agent-only content. Impacted, changed and superseded apply only to the stated scope; they do not mean the entire feature is deprecated. Historical connector guides apply only to the legacy connector described.
> Match guidance to the customer's deployment version, model data format and connector. Respect plan, permission and compatibility restrictions. If an unknown version or data format changes the answer, ask a focused clarification; do not infer deployment version from the date alone.

# Grasshopper in 2026.9

> Node names, Explore, and extra objects in the 2026.9 Grasshopper connector.

Documentation set: Speckle 2026.9. Status: current. Authority: canonical for this version and the coverage on this page.

Applies to version 2026.9, from 2026-09; this is not a rollout date for every deployment.

Authoritative Speckle 2026.9 documentation for the topic covered here. For Speckle 2026.9, prefer this page over conflicting earlier guidance. Follow the linked pages in the other documentation version for unchanged topics and where this page says coverage is not yet available. Respect data-format, deployment, plan, permission, and compatibility limitations stated in the page.

<Note>
  This is 2026.9 documentation. Coverage here is incremental: a page exists only where 2026.9
  differs or is newly documented. For any other topic, switch to **Current** (2026.8 and earlier) in
  the version selector.
</Note>

In 2026.9 the Grasshopper connector keeps existing scripts working. Nodes already on your canvas are
renamed and hidden from the ribbon. They are not deleted, and no wires break.

This page covers only what changed. For publish and load today, see
[How to use Speckle for Grasshopper](/connectors/grasshopper/grasshopper). For the step-by-step
script upgrade, see [Upgrade Grasshopper to 2026.9](/next/connectors/grasshopper/upgrading).

## What changed

* **Load** and **Publish** in the ribbon are the current nodes. Nodes you already placed are renamed
  **Load (legacy)** and **Publish (legacy)**. They still run. The same rename applies to **(Sync)
  Load** and **(Sync) Publish**.
* **Speckle Data Object** is renamed **Speckle Object**. It is the same node with the same ports.
  Existing scripts keep working. Its **Geometries** input does not accept Block Instances, because
  a Block Instance is already its own object.
* The current **Speckle Geometry** node has no Name or Properties inputs. Name and properties live
  on the **Speckle Object** that contains the geometry. Geometry nodes already on your canvas keep
  those inputs and are renamed **Speckle Geometry (legacy)**.

Existing scripts keep working on the renamed nodes. You only need the current Load node if you want
Explore, or if you are loading a version a teammate published with the current Publish node.

## Publish

Versions from the current **Publish** node need an upgraded connector to read. **Publish (legacy)**
can still be read by older connectors. Confirm collaborators have upgraded before you switch. The
two nodes are independent of Load.

## Load

The current Load node can return more objects than before, including property-only elements such as
Revit rooms, levels, and areas. Materials and colours arrive on each object. The **Proxies** output
is not on the current Load node. Model-wide properties such as project information arrive on a
**Properties** output. The current Publish node has a matching optional **Properties** input.

Name and properties live on the **Speckle Object**, not on geometry. A wall is one thing with one
name and one set of properties, even when it has three meshes. If each mesh carried its own copy,
summing a volume across the model would count that wall three times. To set a name or properties,
wire geometry into a **Speckle Object**.

**Explore** is a new node. After you load a 2026.9 version with the current Load node, it surfaces
relationships such as level, room, host, and block definition. See [Explore what an object is
connected to](/next/connectors/grasshopper/explore).

Plug in a Speckle Object, Speckle Geometry, Block Instance, or Collection. Explore creates an output
for each relationship the model records for that object. The set of outputs changes with what you
plug in.

Explore does not repeat what the object already carries. Material, colour, and Collection path are
already set on the object when it loads.

<Note>
  Explore supports versions published with 2026.9 onwards, loaded with the current Load node.
  Versions published before then do not record these connections, so there is nothing for Explore to
  show. Objects loaded with **Load (legacy)** also produce no Explore outputs. If Explore reports
  that nothing is cached for a model that loaded correctly earlier, reload the model.
</Note>

## FAQ

<AccordionGroup>
  <Accordion title="Can I create objects for other applications like Revit?">
    Wrap your geometry in a **Speckle Object** and set the properties there. If you assign a
    **builtInCategory** property, Revit loads it as a generic model with that category. There is
    currently no way to create elements that load as native walls or beams in BIM or structural
    applications.
  </Accordion>

  <Accordion title="Will my saved scripts break?">
    No. Nodes are matched by identity, not by name, so renaming them has no effect on your files. No
    node turns into a placeholder and no wire is dropped.
  </Accordion>

  <Accordion title="Why does Explore produce no outputs?">
    The usual cause is a version published before 2026.9, or a **Load (legacy)** node. Republish
    with the current Publish node, then load with the current Load node.
  </Accordion>

  <Accordion title="Why does my Speckle Geometry node have fewer inputs?">
    It does not. The node in your script is **Speckle Geometry (legacy)** and keeps all of its
    inputs. The **Speckle Geometry** in the ribbon is a new node without Name and Properties.
  </Accordion>

  <Accordion title="Why do my coloured meshes show as grey in the viewer?">
    This is a known issue in the 2026.9 viewer. Mesh colours and colours set with the **Color**
    input are published correctly, but the viewer does not draw them yet. Loading the model back
    into Grasshopper or Rhino keeps the colours. See [3D viewer in
    2026.9](/next/3d-viewer/introduction#open-a-model).
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.