Symbols, not timelines; no symbol is special
Everything that holds nodes is a symbol (domain/timeline -> domain/symbol, :timelines -> :symbols) and a node that places one is :kind :instance. The reserved :main root is gone: which symbol is on screen is editor state ([:ui :open]), every domain function that needs a symbol is told which, and a document opens on the longest symbol nothing else places. Saved projects move to schema 2 through migration 0007, which rewrites leaf paths, instance kinds and the feature :symbol key; the client refuses a schema it does not read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
179770d7d4
commit
5dff490162
61 changed files with 1587 additions and 1431 deletions
|
|
@ -415,9 +415,11 @@ different rules:
|
|||
*not* to the plate, which is the whole point of it — so the offset genuinely
|
||||
belongs at the node, not the clip.
|
||||
|
||||
## Timelines, and why a scene is one
|
||||
## Symbols, and why a scene is one
|
||||
|
||||
A **timeline** is an ordered bag of nodes in its own frame space:
|
||||
A **symbol** is an ordered bag of nodes in its own frame space. (Earlier drafts
|
||||
and code called this a *timeline*; that word now means only the UI pane that
|
||||
shows one.)
|
||||
|
||||
```clojure
|
||||
{:frames 91
|
||||
|
|
@ -427,9 +429,10 @@ A **timeline** is an ordered bag of nodes in its own frame space:
|
|||
|
||||
That is the whole type, and **everything that holds nodes is one of these**:
|
||||
|
||||
- a clip's **scene** is its root timeline,
|
||||
- a **symbol** in the library is a timeline,
|
||||
- a node with `:kind :symbol` is an **instance** of one.
|
||||
- what a document opens on is a symbol, and **no symbol is reserved** — a new
|
||||
document's is called `main` only because it has to be called something,
|
||||
- anything placed inside another symbol is a symbol,
|
||||
- a node with `:kind :instance` is an **instance** of one.
|
||||
|
||||
An earlier draft of this document had a scene and a `:kind :timeline` symbol as
|
||||
two structures with the same fields and never said they were the same thing.
|
||||
|
|
@ -474,7 +477,7 @@ for all three is the same — **their own**:
|
|||
|
||||
### Instances
|
||||
|
||||
A node with `:kind :symbol` and `:of :sym/blink` places one. Its own channels
|
||||
A node with `:kind :instance` and `:of :sym/blink` places one. Its own channels
|
||||
compose *over* the symbol's, so one definition is placed many times and tinted,
|
||||
offset or retimed at each placement — that is how a three-frame blink is reused
|
||||
at frames 40, 88 and 200 without copying it.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue