> For the complete documentation index, see [llms.txt](https://docs.tempoweave.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tempoweave.com/help-by-menu-tabs/design-menu/section-assembly.md).

# Section Assembly

### What It Does

Section Assembly is a hierarchical composition tool that lets you build complex, multi-section designs from the sections you've marked with Section Markers. Instead of manually threading and treadling hundreds or thousands of threads, you organize your sections into a tree structure with repeat counts, and TempoWeave generates the complete expanded draft for you.

Think of it as a recipe builder for your design: "Start with the border (repeat 1), then the pattern (repeat 6), then the center (repeat 1), then the pattern again (repeat 6), then the border (repeat 1)." Section Assembly turns that recipe into a full draft with all the threading, treadling, and colors expanded.

***

### Location

* **Ribbon**: Design tab > Section Assembly group > Section Assembly button (toggle)

The Section Assembly panel opens as a dockable tool window on the side of your workspace.

***

### The Panel

#### Tabs

The panel has tabs for **Warp Assembly**, **Weft Assembly**, and optionally **Color Assembly**.

Each assembly tab has two panes:

#### Available Sections (Top Pane)

A read-only list of all sections you've marked using Section Markers. Each entry shows:

* **Name** — The section name you assigned
* **Range** — The thread/pick range (e.g., "1–24")
* **Threads** — The number of threads in the section

Right-click options:

* **Add to Assembly** — Adds the section to the assembly tree below
* **Rename Section** — Change the section name, range, density override, or notes
* **Delete Section** — Remove the section
* **Duplicate Section…** — Open the Section Editor prefilled from the selected section. Change the starting thread; the ending thread auto-tracks to keep the source's thread count (you can override the end manually). The source's density override and notes are copied to the new section. Faster than copy/paste-ing a range on the canvas when you need a second section of the same length elsewhere.

#### Assembly Tree (Bottom Pane)

The hierarchical tree where you build your design structure. This is where the composition happens. The tree can contain two types of nodes:

**Groups** — Folder-like containers that can hold sections or other groups. Each group has a repeat count — the entire group (all its children) repeats that many times.

**Sections** — References to your available sections, each with its own repeat count and thread range.

Columns shown:

* **Name** — Section or group name. This column auto-sizes to fill the panel so nested group names stay readable; the narrower columns remember any width you set.
* **Repeat** — How many times this node repeats
* **Order** — The node's position among its siblings. Type a number to move the node to that position; the siblings renumber automatically.
* **Location** — Thread range (for sections)
* **Threads** / **Picks** — Total thread count including all repeats. Every group row — including the top-level group — totals its children.
* **Width** / **Length** — Finished width or length of the node, computed from its thread count and the project's EPI/PPI.

#### Toolbar

* **Add Group** — Create a new group node (prompts for name and repeat count)
* **Add Section** — Add a section from the available list
* **Move Up / Move Down** — Reorder nodes within the tree
* **Delete** — Remove the selected node
* **Refresh** — Update the display
* **Generate** — Create the expanded draft from the assembly
* **Print** — Print the assembly structure as a report

***

### Building an Assembly

#### Adding Groups

Click **Add Group** to create a container. Give it a name (like "Full Pattern" or "Border Set") and a repeat count. Groups can be nested inside other groups for multi-level organization.

#### Adding Sections

Select a section from Available Sections and click **Add to Assembly** (or use the Add Section toolbar button). Each section added to the tree includes:

* **Name** — From the available section
* **Location** — The thread range to copy from (editable — you can adjust the range)
* **Repeat** — How many times to repeat this section (default 1)

#### Editing Nodes

Right-click any node in the tree (or double-click) to edit:

* **Name** — Change the display name
* **Repeat** — Change the repeat count (1–1,000+)
* **Location** — For sections, change the source thread range

#### Organizing

Use **Move Up** and **Move Down** to reorder nodes, or type a new position in the **Order** column. To copy or rearrange whole groups, right-click a node:

* **Copy** then **Paste** — duplicate a group or section anywhere in the tree. Paste drops *inside* the selected group, or as a sibling of a selected section.
* **Cut** then **Paste** — move a group or section to a new spot (re-parent it).
* **Duplicate** — make an in-place copy of the selected node and everything inside it.

The clipboard carries across all four tabs, so you can copy a group from Warp to Weft (or Warp Color to Weft Color), and pasting a group brings its whole sub-tree along.

#### Mirroring

The Assembly tree supports per-reference mirroring so you can collapse symmetric border patterns (Davison's *Squares with Borders* — Norse Kitchen, etc.) to a single source section + a mirrored copy. Right-click any entry to:

* **Toggle Mirror** — Flip the mirror flag on the selected entry in place.
* **Insert Mirrored Copy Below** — Clone the selected entry as the next sibling with the mirror flag forced on.

A `↔` glyph and a `(mirrored)` suffix on the row name make mirrored entries visible at a glance. The underlying Available Section is unchanged, so the same source can appear forward and mirrored in the same assembly (edit the source once, both copies update).

**Pivot suppression.** A mirrored leaf emits its source's threads in reverse and drops the last thread — the fold-line pivot. So `1,2,3,4` mirrored emits `3,2,1`, matching the warp Mirror Selection tool. Forward + mirror back-to-back produces `1,2,3,4,3,2,1` (pivot 4 appears once at the fold).

**Group mirror semantics.** When a group is mirrored, the engine walks the children in **reverse order** AND **skips the first one after reversal** — that's the last child in forward order and acts as the group's fold-line pivot. Each surviving child still applies its own mirror flag through XOR with the parent's, so wrapping a group once and dropping it forward + mirrored gives a textbook-correct symmetric layout without duplicating the centerpiece. Worked example for Norse Kitchen:

```
Selvage + Border + Corner Block + Repeat × 10 + mirror( Corner Block + Border + Selvage )
                                                  ↑
                                                  Corner Block is the pivot — skipped
                                                  in the mirrored group, then Border and
                                                  Selvage emit reversed with their own
                                                  pivots dropped.
```

The mirror flag round-trips through TWA save/reload. Older versions of TempoWeave read newer TWAs cleanly — they just ignore the mirror flag and render every entry forward.

> **Mirror works in all three trees** — Warp, Weft, and Color Assembly. The same per-reference reverse rule applies (the order of color blocks reverses inside a mirrored group).

***

### Color Assembly (Optional)

The Color Assembly tab lets you define a separate color structure that overrides the colors from the source sections during generation. This is useful when you want the same structural sections but with different color arrangements.

* **Add Color** — Pick a color from the palette and set a repeat count
* **Add Color Group** — Create a group for organizing color sequences
* **Copy Structure** — Copies the warp or weft assembly tree structure into the color tree as a starting template

If the Color Assembly is populated, it overrides section colors during generation. If left empty, the source section colors are used as-is.

***

### Generating the Draft

The **Generate** button is where everything comes together. It reads your assembly trees and creates a new expanded draft:

#### What Happens During Generation

1. **Flatten the tree** — Groups are expanded by repeating their children according to repeat counts. Nested groups multiply: a group repeated 3× containing a section repeated 2× produces 6 copies of that section.
2. **Build the threading** — For each warp section in the flattened list, the threading from the source range is copied to the output, tiled according to the repeat count.
3. **Build the treadling** — Same process for weft sections — each section's treadling is copied and repeated.
4. **Copy the tie-up** — The tie-up from your current draft is used unchanged.
5. **Apply colors** — Either from the Color Assembly (if populated) or from the source sections.
6. **Create the output** — A new temporary WIF file is created and opened as an unsaved preview. You can review, edit, and save it.

A notification shows the result: "Generated: XXX warp × YYY weft threads."

***

### How to Use It

1. **Mark your sections** using Section Markers (press M)
2. Open **Section Assembly** from the Design tab
3. Switch to the **Warp Assembly** tab
4. Build your warp structure:
   * Add groups for organizational levels
   * Add sections from the Available list
   * Set repeat counts
5. Switch to the **Weft Assembly** tab and build the weft structure
6. (Optional) Set up Color Assembly for custom color overrides
7. Click **Generate**
8. Review the generated draft
9. Save if satisfied

***

### Step-by-Step Example: Assembling a Table Runner

You have a draft with marked sections: "Selvedge" (threads 1–6), "Border" (threads 7–20), "Pattern" (threads 21–40):

**Warp Assembly:**

1. Add Section: "Selvedge" (repeat 1)
2. Add Group: "Body" (repeat 1)
   * Add Section: "Border" (repeat 1)
   * Add Section: "Pattern" (repeat 3)
   * Add Section: "Border" (repeat 1)
3. Add Section: "Selvedge" (repeat 1)

**Weft Assembly:**

1. Add Section: "Header" (repeat 1)
2. Add Group: "Pattern Repeat" (repeat 8)
   * Add Section: "Pattern Unit" (repeat 1)
3. Add Section: "Footer" (repeat 1)

Click **Generate** — the result is a complete table runner draft with the border repeated on both sides of 3 pattern repeats, 8 treadling repeats, and selvedge threads on each edge.

### Step-by-Step Example: Quick Pattern Variations

You want to try different numbers of pattern repeats without re-threading:

1. Set up your assembly with sections and groups
2. Generate with Pattern repeat set to 4 — review the result
3. Go back to the assembly, change Pattern repeat to 6 — generate again
4. Compare the two drafts to decide which proportion looks best
5. Save the version you prefer

***

### Tips

* **Mark sections first** — You must have sections marked before you can assemble them. Plan your section boundaries carefully.
* **Groups multiply** — A group with repeat 3 containing a section with repeat 2 produces 6 total copies. Repeats at every level compound.
* **Edit locations** — You can change a section's thread range in the assembly without changing the original section marker. This lets you reference different portions of the same section.
* **Generate creates a preview** — The generated file opens as unsaved, so you can review before committing. If you don't like the result, just close it and adjust your assembly.
* **Print for documentation** — The Print button creates a readable report of your assembly structure with thread counts — useful for project records.
* **Color Assembly is optional** — Only set up Color Assembly if you need different colors than what's in your source sections. Most of the time, the section colors work fine.
* **Thread limits apply** — The generated draft is subject to the same limits as any draft (3,500 warp threads, 40,000 weft picks). The Threads column in the tree shows running totals so you can plan accordingly.
* **Edits are tracked** — Changes made in Section Assembly mark the draft as modified, so you'll get the usual save prompt before closing instead of losing the work.

***

### Quick Reference

| Action             | How                                                             |
| ------------------ | --------------------------------------------------------------- |
| Open panel         | Design tab > Section Assembly (toggle)                          |
| Add Group          | Toolbar button or right-click                                   |
| Add Section        | Select from Available, add to tree                              |
| Edit node          | Right-click > Edit (or double-click)                            |
| Reorder            | Move Up / Move Down, or type a position in the Order column     |
| Copy / Cut / Paste | Right-click > Copy or Cut, select a target, right-click > Paste |
| Duplicate node     | Right-click > Duplicate                                         |
| Generate           | Toolbar Generate button                                         |
| Print              | Toolbar Print button                                            |

| Tree Node Type | Purpose                                                    |
| -------------- | ---------------------------------------------------------- |
| Group          | Container with repeat count — holds sections or sub-groups |
| Section        | Reference to a marked section with repeat count and range  |

| Assembly Tab   | Controls                                |
| -------------- | --------------------------------------- |
| Warp Assembly  | Warp section organization and repeats   |
| Weft Assembly  | Weft section organization and repeats   |
| Color Assembly | Optional color overrides for generation |


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tempoweave.com/help-by-menu-tabs/design-menu/section-assembly.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
