manimgl-best-practices
ユーザーが「manimgl」「ManimGL」「3b1b manim」に言及した場合、コードに`from manimlib import *`が含まれる場合、`manimgl` CLIコマンドを実行する場合、またはInteractiveScene・self.frame・self.embed()・ShowCreation()などのManimGL固有のパターンを使用する場合にトリガーされます。Grant Sanderson(3Blue1Brown)が開発したOpenGLベースのアニメーションエンジン「ManimGL」のベストプラクティスを提供し、InteractiveScene・t2cを用いたTeX・カメラフレーム制御・インタラクティブモード(-seフラグ)・3Dレンダリング・checkpoint_paste()ワークフローをカバーします。なお、`manim`のimportおよびCLIを使用するManim Community Editionには対応していません。
description の原文を見る
| Trigger when: (1) User mentions "manimgl" or "ManimGL" or "3b1b manim", (2) Code contains `from manimlib import *`, (3) User runs `manimgl` CLI commands, (4) Working with InteractiveScene, self.frame, self.embed(), ShowCreation(), or ManimGL-specific patterns. Best practices for ManimGL (Grant Sanderson's 3Blue1Brown version) - OpenGL-based animation engine with interactive development. Covers InteractiveScene, Tex with t2c, camera frame control, interactive mode (-se flag), 3D rendering, and checkpoint_paste() workflow. NOT for Manim Community Edition (which uses `manim` imports and `manim` CLI).
SKILL.md 本文
使い方
各ルールファイルで詳細な説明とコード例を確認してください:
コアコンセプト
rules/scenes.md- InteractiveScene、シーンタイプ、construct メソッドrules/mobjects.md- Mobject タイプ、VMobject、Groups、配置rules/animations.md- Animation クラス、アニメーション再生、タイミング
作成と変換
rules/creation-animations.md- ShowCreation、Write、FadeIn、DrawBorderThenFillrules/transform-animations.md- Transform、ReplacementTransform、TransformMatchingTexrules/animation-groups.md- LaggedStart、Succession、AnimationGroup
テキストと数式
rules/tex.md- Tex クラス、生文字列 R"..."、LaTeX レンダリングrules/text.md- Text mobjects、フォント、スタイリングrules/t2c.md- tex_to_color_map(t2c)による数式の色付け
スタイリングと外観
rules/colors.md- カラー定数、グラデーション、RGB、16進数、GLSL 色付けrules/styling.md- フィル、ストローク、不透明度、バックストローク、グロス、シャドウ
3D とカメラ
rules/3d.md- 3D オブジェクト、サーフェス、Sphere、Torus、パラメトリック曲面、ライティングrules/camera.md- frame.reorient()、オイラー角、fix_in_frame()、カメラアニメーション
対話的開発
rules/interactive.md- -se フラグを使用した対話モード、checkpoint_paste()rules/frame.md- self.frame、カメラ制御、reorient、ズームrules/embedding.md- IPython デバッグ用の self.embed()、touch() モード
設定と CLI
rules/cli.md- manimgl コマンド、フラグ(-w、-o、-se、-l、-h)、レンダリングオプションrules/config.md- custom_config.yml、ディレクトリ、カメラ設定、品質プリセット
実装例
一般的なパターンを実演する完全でテスト済みのサンプルファイル:
examples/basic_animations.py- 基本的な図形、テキスト、アニメーションexamples/math_visualization.py- LaTeX 方程式と数学コンテンツexamples/graph_plotting.py- 軸、関数、グラフexamples/3d_visualization.py- カメラ制御とサーフェスを使用した 3D シーンexamples/updater_patterns.py- Updater による動的アニメーション
シーンテンプレート
これらのテンプレートをコピーして修正し、新しいプロジェクトを開始してください:
templates/basic_scene.py- 標準的な 2D シーンテンプレートtemplates/interactive_scene.py- self.embed() を使用した InteractiveScenetemplates/3d_scene.py- frame.reorient() を使用した 3D シーンtemplates/math_scene.py- 数学的導出と方程式
クイックリファレンス
基本的なシーン構造
from manimlib import *
class MyScene(InteractiveScene):
def construct(self):
# Mobject を作成
circle = Circle()
# シーンに追加(静的)
self.add(circle)
# または アニメーション化
self.play(ShowCreation(circle)) # 注:Create ではなく ShowCreation
# 待機
self.wait(1)
レンダリングコマンド
# レンダリングしてプレビュー
manimgl scene.py MyScene
# 対話モード - 15 行目でシェルに入る
manimgl scene.py MyScene -se 15
# ファイルに書き込み
manimgl scene.py MyScene -w
# テスト用低品質
manimgl scene.py MyScene -l
Manim Community Edition との主な違い
| 機能 | ManimGL(3b1b) | Manim Community |
|---|---|---|
| インポート | from manimlib import * | from manim import * |
| CLI | manimgl | manim |
| 数式テキスト | Tex(R"\pi") | MathTex(r"\pi") |
| シーン | InteractiveScene | Scene |
| 作成アニメ | ShowCreation | Create |
| カメラ | self.frame | self.camera.frame |
| フレーム内修正 | mob.fix_in_frame() | self.add_fixed_in_frame_mobjects(mob) |
| パッケージ | manimgl(PyPI) | manim(PyPI) |
対話的開発ワークフロー
ManimGL の最大の特徴は対話的開発です:
# 20 行目から開始し、状態を保持
manimgl scene.py MyScene -se 20
対話モード内で:
# コードをクリップボードにコピーしてから実行:
checkpoint_paste() # アニメーション付きで実行
checkpoint_paste(skip=True) # 即座に実行(アニメーションなし)
checkpoint_paste(record=True) # 実行中に記録
カメラ制御(self.frame)
# カメラフレームを取得
frame = self.frame
# 3D で再調整(phi、theta、gamma、center、height)
frame.reorient(45, -30, 0, ORIGIN, 8)
# カメラ移動をアニメーション化
self.play(frame.animate.reorient(60, -45, 0))
# 3D 移動中に画面空間に留まるように Mobject を修正
title.fix_in_frame()
Tex クラスを使用した LaTeX
# 大文字 R を使用した生文字列を使用
formula = Tex(R"\int_0^1 x^2 \, dx = \frac{1}{3}")
# t2c による色マッピング
equation = Tex(
R"E = mc^2",
t2c={"E": BLUE, "m": GREEN, "c": YELLOW}
)
# アニメーション用に部分文字列を分離
formula = Tex(R"\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}")
formula.set_color_by_tex("n", BLUE)
よくあるパターン
デバッグのための埋め込み
def construct(self):
circle = Circle()
self.play(ShowCreation(circle))
self.embed() # ここで IPython シェルに入る
3D の床平面を設定
self.set_floor_plane("xz") # xy を表示平面にする
テキスト読みやすさのためのバックストローク
text = Text("Label")
text.set_backstroke(BLACK, 5) # テキストの後ろに黒いアウトラインを追加
インストール
# ManimGL をインストール
pip install manimgl
# インストールを確認
manimgl --version
避けるべき一般的な落とし穴
- バージョン混乱 -
manim(コミュニティ版)ではなくmanimglを使用していることを確認 - ShowCreation と Create - ManimGL は
CreateではなくShowCreationを使用 - Tex と MathTex - ManimGL は大文字 R の生文字列を使用した
Texを使用 - self.frame と self.camera.frame - ManimGL は直接
self.frameを使用 - fix_in_frame() - シーンではなく mobject に対して呼び出す
- 対話モード - 対話的開発には
-seフラグを使用
ライセンスと表記
このスキルには、Grant Sanderson による 3Blue1Brown のビデオリポジトリ から採用されたコード例が含まれています。
ライセンス: CC BY-NC-SA 4.0
- 表記が必須 - 3Blue1Brown とアダプターの両方にクレジット表記してください
- 非商用 - 商用使用は禁止です
- 同じライセンスで共有 - 派生物は同じライセンスを使用する必要があります
詳細は LICENSE.txt を参照してください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- adithya-s-k
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/adithya-s-k/manim_skill / ライセンス: MIT
関連スキル
nano-banana-2
inference.sh CLIを通じてGoogle Gemini 3.1 Flash Image Preview(Nano Banana 2)で画像を生成します。テキストから画像を生成する機能、画像編集、最大14枚の複数画像入力、Google Searchグラウンディング機能に対応しています。トリガーワード:「nano banana 2」「nanobanana 2」「gemini 3.1 flash image」「gemini 3 1 flash image preview」「google image generation」
octocode-slides
洗練されたマルチファイル形式のHTMLプレゼンテーションを生成します。6段階のフロー(概要 → リサーチ → アウトライン → デザイン → 実装 → レビュー)で構成されています。各スライドは独立したHTMLファイルとなり、iframeで読み込まれます。「スライドを作成してほしい」「プレゼンテーションを作ってほしい」「HTMLスライドを生成してほしい」「デックを構築してほしい」といった依頼や、ノート・ドキュメント・コードを洗練されたプレゼンテーションに変換する際に使用できます。
gpt-image2-ppt
OpenAIのgpt-image-2を使用して、視覚的に優れたPPTスライドを生成します。Spatial Glass、Tech Blue、Editorial Monoなど10種類のキュレーション済みスタイルに対応し、ユーザーが提供したPPTXファイルを模倣するテンプレートクローンモードも搭載しています。HTMLビューアと16:9形式のPPTXファイルを出力します。プレゼンテーション、スライド、ピッチデック、投資家向けPPT、雑誌風PPTの作成依頼などで活用してください。
nano-banana
Nano Banana PRO(Gemini 3 Pro Image)およびNano Banana(Gemini 2.5 Flash Image)を使用したAI画像生成機能です。以下の場合に活用できます:(1)テキストプロンプトからの画像生成、(2)既存画像の編集、(3)インフォグラフィックス、ロゴ、商品写真、ステッカーなどのプロフェッショナルなビジュアルアセット制作、(4)複数画像での人物キャラクターの一貫性保持、(5)正確なテキスト描画を含む画像生成、(6)AI生成ビジュアルが必要なあらゆるタスク。「画像を生成」「画像を作成」「写真を作る」「ロゴをデザイン」「インフォグラフィックスを作成」「AI画像」「nano banana」またはその他の画像生成リクエストをトリガーとして機能します。
oiloil-ui-ux-guide
モダンでクリーンなUI/UXガイダンス・レビュースキルです。新機能や既存システム(Webアプリ)に対して、実行可能なUI/UX改善提案、デザイン原則、デザインレビューチェックリストが必要な場合に活用できます。CRAP(コントラスト・反復・配置・近接)をベースに、タスクファーストなUX、情報設計、フィードバック・システムステータス、一貫性、affordances、エラー防止・復旧、認知負荷を重視します。モダンミニマルスタイル(クリーン・余白・タイポグラフィ主導)を強制し、不要なテキストを削減、アイコンとしての絵文字を禁止し、統一されたアイコンセットから直感的で洗練されたアイコンを推奨します。
axiom-hig-ref
Apple Human Interface Guidelines リファレンス — 色(セマンティックカラー、カスタムカラー、パターン)、背景(マテリアル階層、ダイナミック背景)、タイポグラフィ(標準スタイル、カスタムフォント、Dynamic Type)、SF Symbols(レンダリングモード、色、多言語対応)、ダークモード、アクセシビリティ、プラットフォーム固有の考慮事項を網羅したガイドラインです。