v2 трек 6: рига/анимация — «анимация = данные» + walk-цикл манекена
- animation/mat.ts: аффинная математика без three (Affine, порядок
  Эйлера X→Y→Z, rotateAround) — чистая, тестируется без рендера.
- animation/rig.ts: рига (кости: имя/родитель/pivot в связочном
  пространстве), привязка вокселей — явная у генератора или bindNearest;
  validateRig (родители раньше детей, согласованность привязки);
  poseVoxels — жёсткая деформация по цепочкам костей.
- animation/clip.ts: клипы — ключи {t, кость: rot/pos}, линейный
  семплинг с заворотом t, validateClip (монотонность, замкнутость
  цикла «первый = последний»), footMinY (контакт стопы).
- animation/locomotion.ts: walkClip(params) — ноги в противофазе, руки
  против одноимённой ноги, корень приседает дважды за цикл и качается.
- models/mannequin.ts: эталонный манекен 5×11×3 с ригой (5 костей,
  явная привязка — Voronoi по pivot отнёс бы торс к рукам).
- render: addVoxelCloud — InstancedMesh для деформированных вокселей,
  обновление позы без пересборки геометрии.
- Демка: anim.html/anim.ts — аним-лист 8 кадров цикла (4×2); мост
  poseStats(i)/clipCheck()/setModels. Гейт anim.mjs: 8 проверок —
  картинка (ячейки видны, фазы различаются) + числа через мост
  (клип замкнут, противофазы, контакт стоп, качание корня).
- Попутно: turntable sheetInfo отдавал viewSize 30 при камере 32 —
  исправлено на реальное значение (гейт проходил за счёт запаса).
- 91 юнит-тест; гейты: render 13/13, turntable 5/5, anim 8/8.

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent e77ce09 commit c13f4d7125104f91fe419ed6afe4283634b60d3d
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 2 days ago
Showing 18 changed files
View
docs/plan.md
View
v2/CLAUDE.md
View
v2/apps/demo/anim.html 0 → 100644
View
v2/apps/demo/src/anim.ts 0 → 100644
View
v2/apps/demo/src/turntable.ts
View
v2/apps/demo/tools/checks/anim.mjs 0 → 100644
View
v2/packages/engine/src/animation/__tests__/clip.test.ts 0 → 100644
View
v2/packages/engine/src/animation/__tests__/locomotion.test.ts 0 → 100644
View
v2/packages/engine/src/animation/__tests__/mat.test.ts 0 → 100644
View
v2/packages/engine/src/animation/__tests__/rig.test.ts 0 → 100644
View
v2/packages/engine/src/animation/clip.ts 0 → 100644
View
v2/packages/engine/src/animation/locomotion.ts 0 → 100644
View
v2/packages/engine/src/animation/mat.ts 0 → 100644
View
v2/packages/engine/src/animation/rig.ts 0 → 100644
View
v2/packages/engine/src/index.ts
View
v2/packages/engine/src/models/__tests__/mannequin.test.ts 0 → 100644
View
v2/packages/engine/src/models/mannequin.ts 0 → 100644
View
v2/packages/engine/src/render/voxelRenderer.ts