> For the complete documentation index, see [llms.txt](https://docs.vex-nx.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vex-nx.com/labs/design-mode.md).

# Design mode

![Design mode node palette](https://1807546539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhgHCHWL3861o2DBW53aA%2Fuploads%2FhhPuZuWVVIpTZHnqeyWA%2Fve20261112v5-tutorial-palette.png?alt=media)

GUI-guided tutorial for placing devices, connecting ports, and using the Node Inspector. Workspace chrome: Toolbars and More menu. Links: [Link inspector and impairment](/labs/link-inspector-and-impairment.md).

## Goal

Build the physical topology - nodes, links, and inspector fields - before you Start in Operate.

## Why Design exists

Topology is the source of truth. Wrong links mean the wrong lab forever. Design is where you build before you burn CPU on Start.

For Cisco CSR1000v / C8000v, keep **Gi1 as management** and put lab data on **Gi2+** - see CSR and multi-NIC interfaces.

## GUI tutorial

### Step 1 - Open Design

1. Open a lab
2. Click **Design** on the workspace bar (Design | Operate | Visualize)

|                  |                               |
| ---------------- | ----------------------------- |
| **What you see** | Design tools and canvas       |
| **Expected**     | Mode button highlights Design |

### Step 2 - Open the node palette

![Node palette](https://1807546539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhgHCHWL3861o2DBW53aA%2Fuploads%2FhhPuZuWVVIpTZHnqeyWA%2Fve20261112v5-tutorial-palette.png?alt=media)

1. Expand the **palette** / templates drawer if collapsed
2. Filter or search for a template (FRR, Alpine, IOSv, ...)
3. Keep the canvas visible - do not cover it with unrelated chrome

|                  |                              |
| ---------------- | ---------------------------- |
| **What you see** | Template list ready to place |
| **Expected**     | You can pick a device type   |

### Step 3 - Place a device

![Nodes on canvas](https://1807546539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhgHCHWL3861o2DBW53aA%2Fuploads%2FWx1otnVqAjiA69Aslt1G%2Fve20261112v5-tutorial-drop-node.png?alt=media)

1. Drag a template onto the canvas **or** click Add / place from the picker
2. Double-click the label under the icon to rename
3. Use **More -> Device name size** on a projector if names wrap

|                  |                                                  |
| ---------------- | ------------------------------------------------ |
| **What you see** | Node icon on the canvas                          |
| **Expected**     | Node appears in the lab model (Save if prompted) |

### Step 4 - Connect ports

![Connected topology](https://1807546539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhgHCHWL3861o2DBW53aA%2Fuploads%2FHYTisRTZfWZw6CJStLCS%2Fve20261112v5-tutorial-connect.png?alt=media)

1. Stay on **Select** (not Hand / pan)
2. Hover a node -> drag from a **port** to another port or cloud
3. Use Management / NAT / Bridge clouds for external reachability ([Networks and clouds](/getting-started/networks-and-clouds.md))

**Example:** Two Alpine or FRR nodes linked on data ports.

|                  |                                                                                          |
| ---------------- | ---------------------------------------------------------------------------------------- |
| **What you see** | Edge between nodes                                                                       |
| **Expected**     | Link exists; click it later for [Link inspector](/labs/link-inspector-and-impairment.md) |

### Step 5 - Node Inspector

![Node Inspector](https://1807546539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhgHCHWL3861o2DBW53aA%2Fuploads%2F7Jc2qonbiSkyVXuZJkX1%2Fve20261112v5-tutorial-node-inspector.png?alt=media)

1. Click a node
2. Open inspector tabs: **Overview**, **Interfaces**, Config, Console, Files, Metrics (as offered)
3. Confirm name, template, interfaces, and allocations match what you intended

|                  |                                                            |
| ---------------- | ---------------------------------------------------------- |
| **What you see** | Selection-driven inspector                                 |
| **Expected**     | Fields come from the node model - not hard-coded demo text |

### Step 6 - ScriptPad / Config tip

1. Select a node -> **ScriptPad** or Config
2. Activate the profile that should boot
3. Apply on Wipe + Start in Operate - details in [Operate and consoles](/labs/operate-and-consoles.md)

### Step 7 - Hand off

* Ready to boot -> [Operate and consoles](/labs/operate-and-consoles.md)
* Demo traffic -> [Traffic Lens](/labs/traffic-lens.md)
* Edge quality -> [Link inspector and impairment](/labs/link-inspector-and-impairment.md)

## Recipe: ScriptPad startup config (detail)

1. Select a node -> open **ScriptPad** (or Config from the context menu)
2. Choose or create a profile (`default`, `imported`, `assist`, ...)
3. Mark the **active** profile - that text injects at boot on supported platforms

**Why profiles matter:** Wipe and Assist can write different versions. Active is what boots.

## Recipe: zones and notes

Use Design tools for zones, text, and shapes when teaching. Keep labels readable; prefer interface labels via the Labels control on the workspace bar.

## Expected result

* Palette, place, connect, and inspector all work without leaving Design
* Physical topology is ready for Operate Start

## If it fails

* Cannot place -> open palette; check licence / template catalog (Images)
* Cannot link -> use Select tool; drag from port handles
* Inspector empty -> click the node body; wait for load

## Related

* [First lab walkthrough](/labs/first-lab-walkthrough.md)
* CSR and multi-NIC interfaces
* [Link inspector and impairment](/labs/link-inspector-and-impairment.md)
* Visual Feature Atlas - Design


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.vex-nx.com/labs/design-mode.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
