* docs(animation): research LitMotion vs EVEngine Tween roadmap
Map Unity LitMotion's builder/bind/sequence/punch model onto the
existing animation Tween and ControlAnim stack, and outline a phased
Motion + Capability-binder plan that keeps SimulationStep and module
layering intact.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* feat(animation): add LitMotion-style Motion builder, runtime, and sinks
Introduce typed float/Vec2/Vec3 motion storage with generation-checked
handles, fluent builders, and borrowed push sinks. Animation::advance
now pumps MotionRuntime alongside Tween. Phase 1 covers bind/run,
complete/cancel, delay/loops/yoyo, and shared ease kinds.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* feat(animation): Phase 2 MotionSequence, ease extensions, and script bindings
Add LitMotion-style Append/Join/Insert/AppendInterval sequencing on MotionRuntime,
Back/Elastic/Bounce ease kinds, builder to()/takeDesc for unspawned scheduling,
and Squirrel newMotion/newMotionSequence wrappers with matching docs and tests.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* docs(animation): document Motion script bindings for Source quality gate
List cancelOnError, childCount, cursor, getMotionCount, and itemCount in
animation.md so check_bindings --strict no longer reports NEW gaps.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* docs(animation): add ownership/lifetime contracts on MotionRuntime resolvers
Document borrowed-pointer lifetime for resolveFloat/Vec2/Vec3 so the
architecture api-lifetime gate no longer flags them as undocumented.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* feat(animation): Phase 3 Punch/Shake adapters and Color/Quat motions
Add LitMotion-style Punch/Shake oscillation evaluation on float/Vec2/Vec3
motions, plus Color lerp and Quat slerp pools with builders, Animation
factories, script bindings, tests, and docs.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* feat(animation): Phase 4 motion pool ensureCapacity and free-list recycle
Pre-size float/typed motion pools with ensureCapacity, recycle completed
slots via O(1) free-lists, add FloatBufferSink for contiguous batch writes,
expose capacity queries to script, and cover with recycle/buffer/bench tests.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* ci(linux): raise Build linux debug timeout from 40m to 60m
Cold third-party + sccache misses were hitting the 40-minute step timeout
at ~94% of unit_test compile (PR #389). Job budget remains 90m.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* ci(linux): raise ASan RelWithDebInfo build timeout from 100m to 130m
Cold PR builds with sccache READ_ONLY miss hit the 100-minute step timeout
at ~94% of unit_test compile (run 34823491554). Job budget remains 270m.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* ci(macos): retry Dawn Metal configure after incomplete abseil clone
Dawn's googlesource shallow fetch can leave third_party/abseil-cpp without
CMakeLists.txt (macOS job 103997514884). Retry configure up to 3 times after
clearing the incomplete checkout; apply the same guard on the Windows Dawn
parity lane.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* ci: retrigger after transient GitHub/Vulkan download 504s
macOS passed with the Dawn abseil retry. Windows/iOS/ASan/WebGPU failed
early on versions.json / utf8proc / zstd / emdawnwebgpu HTTP 504s unrelated
to this PR; re-run permissions are unavailable so nudge CI with an empty
commit.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>