diff --git a/Animations.md b/Animations.md index 0ab0682..deeef1f 100644 --- a/Animations.md +++ b/Animations.md @@ -61,7 +61,15 @@ would. Under the preview lies the **timeline**: a row per target and property, a top. **Double-click** a cell to set a key with the value that holds there (then edit the value in the inspector while the key is selected); click a key to pick it, drag a band to pick several, drag keys to move them (one landing on another replaces it), `Delete` removes the picked keys — -or the whole row when its header is picked. Click or drag the ruler to scrub. The wheel zooms the +or the whole row when its header is picked. `Ctrl`+drag duplicates keys: the originals stay, the +copies land where the pointer lets go. `Ctrl+C` copies the picked keys and `Ctrl+V` pastes them +with the earliest one on the playhead's frame, keeping their distances: into the rows they came +from, or — for keys of a single row — into the row picked now, if it is of the same kind. In +another animation each row finds the row animating the same property; rows without one are left +out. A pasted key replaces one on its frame. **Right-click** the timeline for *Copy*, *Paste*, +*Insert frames…* and *Remove frames…*: both ask for a count and work at the playhead over every +row — inserting moves every key from the playhead's frame on later, removing drops the keys in +the removed frames and pulls the rest earlier. Each is one undo step. Click or drag the ruler to scrub. The wheel zooms the frames about the pointer, `Shift`+wheel scrolls, the middle button (or `Shift`+drag) pans. Rows are not collapsed or reordered. **Play, stop, pause.** `Play animation` starts an animation on an object (both are ports: the diff --git a/Development.md b/Development.md index 211957b..627703a 100644 --- a/Development.md +++ b/Development.md @@ -12,7 +12,7 @@ npm run check # typecheck + lint + format:check + tests, the gate CI runs # code is lost (tail's is reported), so a red run reads as green npm run build # writes dist/ and regenerates index.html ./build.sh # the same under `set -o pipefail`, for callers that pipe the output -node tools/seed-e2e.mjs && node tools/e2e.mjs # 943 editor checks, screenshots in /tmp/gm-e2e-*.png +node tools/seed-e2e.mjs && node tools/e2e.mjs # 948 editor checks, screenshots in /tmp/gm-e2e-*.png GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step ./e2e.sh start [GM_STEPS] # the same run detached, see below ./e2e.sh status # live progress, or the last run's result @@ -232,4 +232,4 @@ widths to find click points. The **render device is not in this repo** — `/dev and a 1 GB `/dev/shm` come from `container.options` in the runner's own `config.yaml`, which applies to every job on that runner. Without them chromium falls back to llvmpipe, which gets WebGL 1.0 only. Measured in the job container: `ANGLE (Intel, Vulkan 1.3.230, HD Graphics 630)`, -WebGL 2.0, and the same 943 checks as here. +WebGL 2.0, and the same 948 checks as here. diff --git a/Keyboard.md b/Keyboard.md index 480a1de..3ed2f36 100644 --- a/Keyboard.md +++ b/Keyboard.md @@ -2,7 +2,9 @@ `Backspace` remove the selection (objects, nodes, frames, keys or a row of the Animation tab, a graph group or comment — the box only, its nodes stay, and a band that caught boxes and nodes together removes both in one step; an asset asks first) · `Ctrl+G` create container from the selection · `Ctrl+Enter` play, and pause/resume while playing · `Esc` stop · `Ctrl+V` import an image from -the clipboard as a texture (ignored while a text field has focus) · `Tab` / `Shift+Tab` cycle fields · lists: `↑`/`↓` move, +the clipboard as a texture (ignored while a text field has focus) · Animation tab: `Ctrl+C` copy +the picked keys, `Ctrl+V` paste them at the playhead (while keys are copied this takes `Ctrl+V` +there, so an image is pasted from another tab), `Ctrl`+drag duplicate keys · `Tab` / `Shift+Tab` cycle fields · lists: `↑`/`↓` move, `←`/`→` fold, `Enter` activates · number fields: drag to scrub (`Shift` x10, `Alt` x0.1, snapping to the grid of that increment, so a step-1 field lands on whole numbers), `↑`/`↓` step, shown with three decimals (`ui/math.ts`,