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