Skip to content

Support animation blends in scene documents and editor - #340

Merged
InventivetalentDev merged 3 commits into
mainfrom
feat/scene-animation-blends
Oct 17, 2026
Merged

InventivetalentDev merged 3 commits into
mainfrom
feat/scene-animation-blends

Conversation

@InventivetalentDev

@InventivetalentDev InventivetalentDev commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Scene documents and the editor previously selected one entity animation even though the renderer supports weighted clips. Entities can now store a nonempty animation.clips list with names and optional weights, while existing animation.name documents keep working.

The editor adds clip selection, removal, sliders, and numeric weights. Weight changes preserve the shared playback clock; clip changes also preserve the live clock when asynchronous loading finishes. Pause, speed, loop, seeking, and restart apply to the blend. JSON saves and copied embeds capture the live time, and off-screen embeds restore the blend after recreating their renderer.

Weights default to 1, must be finite and nonnegative, and are not normalized. Clip names must be unique and must be the entity's own animations: names inherited from Object.prototype, such as constructor, are missing clips. The loader resolves every clip before starting a blend, and a missing clip rejects and disposes the staged document. The HTTP API also limits a blend to 32 clips and each weight to 1024. Reference and editor documentation describe the format and controls.

Validation:

  • yarn test: 804 passed. Scene and codec tests cover old and blended documents, validation including duplicate and inherited clip names, additive weights, repeated draws and layers, shared time and pause, and atomic load failure.
  • yarn test:package (11), yarn test:api (18, including the clip-count and weight limits), yarn test:embed (15) and yarn test:node (6) pass.
  • Library build, root typecheck, editor typecheck, web production build, and embed build pass.

@github-actions github-actions Bot added library Public minerender package (packages/minerender) docs Documentation site, READMEs, and docs/ branches apps Any app under apps/ web Demo and test pages (apps/web) feature New functionality (feat/ branches) labels Oct 17, 2026
@github-actions github-actions Bot added the api HTTP rendering service (apps/api) label Oct 17, 2026
@InventivetalentDev
InventivetalentDev marked this pull request as ready for review October 17, 2026 19:42
@InventivetalentDev
InventivetalentDev merged commit 47a1d50 into main Oct 17, 2026
3 checks passed
@InventivetalentDev
InventivetalentDev deleted the feat/scene-animation-blends branch October 17, 2026 19:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api HTTP rendering service (apps/api) apps Any app under apps/ docs Documentation site, READMEs, and docs/ branches feature New functionality (feat/ branches) library Public minerender package (packages/minerender) web Demo and test pages (apps/web)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant