工程開發
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日 下午10:05
在 GitHub 查看