Sokuou

即応エンジン · 进度驱动的空间状态解析器
面向 Rust 应用开发者的动画引擎。追求 Apple 级别的流畅与优雅,跨 Linux / Windows / macOS 三平台。
零外部依赖,纯 Rust 数学库。
Rust Zero Deps SpringAnim Progress MetroAnim MIT

三个动画原语

动画不是播放,而是空间状态的连续解析。所有动画基于 [0.0, 1.0] 空间状态值,帧率无关,可中断。

原语 用途 特性
SpringAnim 位移、缩放、面板滑动、页面切换 阻尼振荡器解析解,帧率无关,可中断
Progress 透明度、颜色渐变、定时序列 时长驱动线性插值,可中断
MetroAnim UWP Metro 风格短时过渡 11 种缓动变体 × 3 种方向
// 1. 在应用状态中持有动画实例
let mut sidebar_anim = SpringAnim::new(0.4, 0.825, 0.0); // response, damping, initial

// 2. 在事件处理器中设定目标
sidebar_anim.set_target(1.0); // 0.0=收起, 1.0=展开

// 3. 每帧更新(dt 来自渲染循环)
sidebar_anim.update(dt);
if !sidebar_anim.is_steady() { ctx.request_repaint(); }

// 4. 渲染时读取 value(),绝不修改动画状态
let width = map_range_clamped(sidebar_anim.value(), 48.0, 200.0) as f32;

Sokuou Engine Toolkit

即応エンジン・ビジュアライザー——Sokuou Engine 的官方可视化调试工具。加载任意项目的 Sokuou 源码,将每个动画 API 的数学行为绘制为 p-t 曲线图,帮助开发者直观理解、调试和比较动画参数。

参数调试

拖动 response/damping 滑块,实时看到曲线变化,不再靠直觉猜参。

API 教学

加载 Sokuou 源码即可看到每个 API 的数学行为。

回归验证

修改核心算法后,用曲线快速验证行为是否一致。

多视图

SpringAnim、Progress、Easing、map_range、UWP Metro 各视图均支持多曲线对比。

源码扫描

syn 解析 Rust 源码 → SokuouApi,引擎以 git submodule 单向同步。

文档生成

曲线截图可直接用于设计文档与 API 参考。

系统主权

合成器是唯一渲染权威。

所有动画由 Progress 原语统一驱动——非 timeline,非 keyframe,非 UI tween 库。

任意 progress 值对应唯一确定渲染结果。