Skip to content

Animation: bake a real bow clip so the slot stops resolving to Sitting Clap #113

Description

@nirholas

What is wrong

Every agent animation slot resolves to a clip that means what the slot means, with one exception. The bow slot has no dedicated clip and falls back to sitclap (Sitting Clap), which reads as applause rather than a bow.

This is not a guess. The repo tracks it itself, in public/animations/registry.json under known_issues:

The 'bow' slot has no dedicated clip: it resolves to 'sitclap' (Sitting Clap), which reads as gratitude/applause rather than a bow.

Affected file: src/runtime/animation-slots.js

What to change

The fix is already written down in that known_issues entry, step by step:

  1. Add Mixamo Bowing (In Place, Without Skin) to animation-sources/.
  2. Register it in scripts/animations.config.json as bow.
  3. Run npm run build:animations.
  4. Point DEFAULT_ANIMATION_MAP.bow at the new clip in src/runtime/animation-slots.js.
  5. Move the bow-slot-approximation entry from known_issues to resolved_issues in public/animations/registry.json.

Check public/animations/LICENSES.md for how clip provenance is recorded and follow the same pattern for the new source.

How to prove it worked

npx vitest run tests/animation-slots.test.js
npm test

tests/animation-slots.test.js already asserts the target exists, so once the clip is baked the swap is close to a one-line change.

Then look at it. Run npm run dev, open an avatar, and play the bow slot. It should read as a bow. Post a screen recording in the PR; this is a change where the test passing and the thing looking right are two different questions.

Why it is worth doing

It is the last approximation in the slot map. Every other slot means what it says.

Comment here to claim it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions