Re-editing an Assembled Scene¶
Assemble is not a one-way door. Once a slot's nodes exist in the Node View, OSA stops creating them and starts editing them where they are.
New and existing¶
Every component in the Inspector carries a mark that says which of the two it is:
| Mark | Means |
|---|---|
+ |
new — this node does not exist yet; Assemble will create it |
| ▪ (square) | existing — this node is in the Node View; Assemble will edit it |
| grey | the component is unticked, so nothing happens either way |
The tree paints only one of these states — existing — and leaves every other row unmarked. A mark on every row is a texture, not a signal; the Inspector is where you get the per-component answer.
It is a shape, not a colour
The marks are drawn in the label's own colour, so the reading survives a theme change and a colour-blind reader. + versus a square is the difference, not purple versus cyan.
What "edited in place" means¶
For a slot marked existing, Assemble does not create a second node and does not move the first one. It:
- renames the node if you renamed the slot,
- rewrites the attributes you changed — composite mode, alignment, blend mode, effect values, backdrop colour and title,
- leaves the node's position in the Node View alone,
- and marks the slot existing again afterwards, so the next Assemble is another update rather than a duplicate.
That last point is what makes Assemble safe to press repeatedly. It is the normal working rhythm: assemble, look at it in Harmony, come back, change something, assemble again.
A node that claims to exist but cannot say where is reported as unaddressable and left alone, because rebuilding it would give you two of them. See Assembling.
The tree is not "Top"¶
This is the part that surprises people, and it is the whole point of the previous section.
For new nodes, the root of the staging tree means Top — the top level of the Node View. That is the default, and for a scene you are building from nothing it is the only sensible reading.
For existing nodes, the root of the tree is an address. A level-0 row that came from the scene represents the root of the chain that was imported — the outermost node of what you brought in — and everything under it is that chain's real position in Harmony, not a copy of it at Top.
So the same indentation means two different things depending on where the row came from, and the mark tells you which:
| A level-0 row that is… | Sits at |
|---|---|
new (+) |
Top |
| existing (▪) | wherever its chain actually lives in the scene |
Where new children land¶
Attach something new to an existing slot and it is created inside that slot's context in Harmony — not at Top.
OSA resolves that context to an anchor, in this priority:
GROUP > PEG > COMP > DRAWING
Group comes first for a measured reason: with the peg taking priority, a new child of a P+G super node was being born outside the group. The group is the context of the children — exactly as it is on the create path, where ticking Group puts the children inside it.
So:
- add a drawing under an existing
hero=P-G-Cand it appears insidehero-G, wired intohero-C; - add an effect and it lands on that slot's chain, in the strip the Wide Bus reserved for it.
Nothing travels to Top just because the row is indented under a level-0 row in your tree.
Moving things¶
| What you move | What happens at Assemble |
|---|---|
| A new row, anywhere | it is created at its new place; nothing to reconnect |
| An existing row inside its chain | the pegs are reconnected to match the new parenting |
| The root of an imported chain | the whole chain is reconnected under its new position |
| Nothing — you only add new rows | the new nodes go to the chain's own position, wherever it is connected |
The last line is the one worth memorising: if you do not move the imported chain, adding to it does not move it either. New pieces slot into the chain where the chain already is.
The virtual path¶
The Inspector's Path field shows the address a slot resolves to, and it reads like the Node View's own paths:
Top/ParentGroup-G/SelfGroup-G/Element-C
The rule for what appears in it:
- ancestors contribute only if they are groups — a peg or a backdrop in the middle does not add a level, because neither creates one in Harmony;
- the slot itself contributes its group (if it has one), then its comp or drawing;
- pegs, backdrops and effects never appear — they are inside the level, not a level of their own.
A slot with no file behind it shows New Node (Memory) instead. That is not an error — it means this row has no address yet, because it has never been assembled.
Picking a scene back up¶
Magnetize Scene reads the existing Node View through your magnets and stages what it finds — that is how you re-open a scene you assembled yesterday, or one somebody else built, and go on editing it as slots.
Everything it brings in arrives marked existing, with its address, so the rules on this page apply from the first press.