工程开发
anima avatar

anima

Anima 是一个用于制作数学可视化内容的 TypeScript 动画引擎。通过仿 Manim 的流畅 API,编写几何动画、图表以及复杂的路径运动。

简介

Anima 是一个专为开发者、教育工作者与数据科学家设计的 TypeScript 动画框架,旨在创建精确的数学可视化内容。该引擎构建于 Bun 与 HTML5 Canvas 之上,通过流畅的串接式 API 来管理场景、数学对象(Mobjects)与摄像机移动。Anima 非常适合作为教学视频、技术解析或算法演示的创作工具,提供类似于 Python Manim 的开发体验,并针对 TypeScript 与 Web 生态系统进行了优化。

  • 提供丰富的几何原始对象,包括圆形、矩形、线条、多边形与弧线,并能对透明度、笔触与填充进行精细控制。

  • 内建强大的摄像机系统,支持缩放、平移、聚焦至特定对象,以及自动贴合边界框。

  • 支持超过 30 种内建缓动函数(Easing functions),包含标准的线性、二次、三次曲线,以及类似于 Manim 的 smooth、rushInto 与 thereAndBack 等速率函数。

  • 提供进阶的文字渲染功能、图论布局(树状、环状、力导向),以及用于处理复杂运动路径的多属性关键影格动画。

  • 支持 MP4、WebP、GIF 与 PNG 序列等多元输出格式,并具备片段缓存机制以加速开发迭代,CLI 工具则能协助处理生产环境的渲染任务。

  • 采用结构化的场景生命周期模型,用户可通过继承 Scene 类来精确控制初始化、帧率与动画的顺序或并行执行。

  • 引擎运行于世界坐标系统中,原点 (0,0) 位于中心且 Y 轴向上,简化了几何配置的运算过程。

  • 主要输入为 TypeScript 原始文件,输出为通过 anima render CLI 指令生成的视频或图片。

  • 建议使用 saveState 与 restore 方法来管理复杂的对象变形,并利用 VGroup 类来处理父子对象阶层与群组样式。

  • 在开发阶段应使用预览模式以提升性能,待确认动画逻辑后再进行最终的高分辨率渲染。

  • 虽然 Anima 非常适合用于数学与科学可视化,但用户需具备 TypeScript 基础以及对坐标系绘图的基本概念。

仓库统计

Star 数
4
Fork 数
0
Open Issue 数
0
主要语言
TypeScript
默认分支
main
同步状态
空闲
最近同步时间
2026年5月3日 22:05
在 GitHub 查看