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¶
- 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.
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 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.