Hierarchy & Sibling Aggregator¶
The tree you build in the Outliner isn't just an import list — it's the Harmony node network OVB writes on Apply. Pegs, groups, and composites become real nodes, wired the way a rigger would wire them.
The building blocks¶
| Node | What it becomes | |
|---|---|---|
| Drawing | a Read node with its art layers | |
| Peg | a transform handle that feeds the drawing(s) below it. Whole-drawing scale / offset ride here (the green gizmo). | |
| Group | a super-node that wraps its contents (its own MPI → distributor → composite → MPO) | |
| Composite | merges the outputs of its siblings |
Tick Peg, Group or Composite in a drawing's Inspector to emit them around it; untick Drawing for a pure container. The row's icon composes the parts that are on —
peg over drawing,
group, drawing, composite — so you read the stack off the tree. Group Order decides whether the peg sits outside the group and drives it (Parent:
) or inside it (Child:
); the full vocabulary is in the icon legend.
Nest a drawing under a peg to have the peg transform it; wrap a branch in a group to contain it; drop a composite to merge a set of siblings.
Sibling aggregation¶
When several nodes sit side by side, OVB wires them by paint order, not at random:
- Port 0 = back, port N = front. The youngest/rightmost non-bypass sibling lands on the back; the aggregator's own drawing wires last = front.
- A composite with no peg/group opens a block that consumes the normal younger siblings after it — so
[A, C(comp), B, Cc]makesCaggregateBandCc, whileAreaches the main composite on its own. - Bypass nodes (the drawing's Bypass composite box) are never consumed — they bubble straight up to the parent composite.
This is the same "Shameless family tree" model the other Octo tools use — a predictable, riggable graph rather than a flat pile.
Groups wire cleanly¶
A group is built as: an external peg (outside) → the group, and inside: Multi-Port-In → distributor → your content → internal Composite → Multi-Port-Out. OVB handles the fiddly parts so the result is correct:
- The group's input port is created before the external peg is linked, so the peg actually connects.
- The throwaway distributor peg is removed after wiring (the MPI feeds the content directly).
- The stray composite Harmony auto-creates on a moved drawing is cleaned up, so you get exactly one internal composite.
Deleting keeps children
Remove a parent node and its children are lifted to the grandparent — the graph re-organises instead of losing the branch. See Outliner.
The main composite never moves
OVB positions everything it adds above your scene's existing main composite and wires the surviving top-level outputs into it — your comp stays exactly where it is.