v2 трек 7: физика тела — AABB против вокселей + гравитация
...
- physics/body.ts: SolidWorld (точечная выборка get), makeBody/stepBody
(полунеявный Эйлер), collides (AABB по воксельным диапазонам, касание
грани — не столкновение), ось-раздельное разрешение X→Z→Y с зажимом
к граням вокселей, сабстепы против туннелирования
- 10 юнит-тестов: падение на грань, покой, сход с уступа, стена,
туннелирование (50 вокс/с при dt=0.1), угол, потолок, число гравитации
- Демка: тело-манекен с walk-анимацией и поворотом по движению; мост
bodySpawn/bodyStep/bodyInfo/bodyRemove (фиксированный dt — детерминизм)
- Гейт physics.mjs 7 проверок: падение на землю, стена останавливает
по грани, фаза ходьбы растёт, кадр меняется, манекен рисуется
- Грабли в v2/CLAUDE.md: VoxelWorld(n) — высота чанка, не число чанков
(set вне границ молча false); Vec3 readonly — физика на обычных
кортежах; спавн тела проверять на пересечение AABB с миром
101 юнит-тест; гейты: render 13, turntable 5, anim 8, physics 7 — зелёные.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
2 days ago