跳转到内容

简介

Rinne 是一个面向现代 Web 的交互式动画引擎,专注于极高性能和可预测的状态管理。

大多数动画库使用“状态插值”模型,即动画将属性从值 A 移动到值 B。当多个动画同时作用于同一个属性时,它们通常会产生冲突或互相覆盖。

Rinne 采用了 纯叠加架构 (Universal Additive Architecture, UAA)。动画不再产生绝对值,而是产生累加的偏移信号

Vvisual  =  Vbase  +  Δoffsets

这意味着我们可以同时在一个属性上叠加“震动”、“呼吸”和“移动”的增量,而不会产生逻辑冲突。

Rinne 的内核采用 SoA (Structure of Arrays) 布局,而非传统的 AoS (Array of Objects)。通过将属性存储在连续的 Float64Array 缓冲区中,Rinne 最大化了 CPU 缓存命中率,并完全避免了渲染循环中的对象分配。

  • 50,000+ 活跃节点:在 sub-2ms 的帧预算内稳定运行。
  • 零 GC 压力:播放期间无对象创建。
  • 单次写回:每帧仅对 DOM 或 WebGL 目标执行一次物理赋值。