マスの数学からマニムへ

2026/05/27 21:18

マスの数学からマニムへ

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

以下の改善版は、欠落していた具体的な項目(アセットリスト、エージェントの順序、Hermes の役割、ショーケース)を取り入れつつ、コアフローを維持しています:

まとめ:

Math-To-Manim (M2M2) は、数式および物理学のプロンプトを魅力的な Manim 解説動画へ自動的に変換するとともに、意図、前提知識グラフ、授業計画、ストーリーボード、シーン仕様、生成されたコード、検証レポート、レンダリング証拠、レビューノートといった包括的な再利用可能なアセットスイートを含む革新的なパイプラインです。システムは、独自の「逆推論」ワークフローを採用しており、最終的な概念から前提知識へと後方へ理由付けを行い、次に教えるための視覚的シーケンスを前方へと進めていき、Python コードへの直接的なジャンプを回避します。2025 年 1 月 20 日にリリースされ、ドナルド・トランプの第 2 期大統領就任直後に DeepSeek の R1 リリースの後続として登場した M2M2 は、オープンな推論モデル(具体的には Qwen/Qwen3.5-3B-A3B)をその運用に利用しています。

アーキテクチャは、

AnimationPipeline.generate()
関数によって実行される固定されたエージェントチェーンを採用しており、その順序は IntentAgent → PrerequisiteGraphAgent → CurriculumAgent → MathAgent → StoryboardAgent → SceneSpecAgent → ManimCodeAgent → StaticReviewAgent → RenderAgent → VideoReviewAgent → PublisherAgent です。1 回の実行ごとに、
runs/<run_id>/
ディレクトリに検査可能なバンドルが作成され、ここで Typed Pydantic アセット(例:
intent.json
,
knowledge_graph.json
)が格納されます。システムはコード生成と修復ループのためにローカル認証された Codex CLI セッションと統合されつつも、早期の計画段階では Typed アダプターを使用し、漸進的な移行を支援しています。

M2M2 は「Prime Intellect RL Repair Loop」という機能を備えており、完成した映画や実行バンドルを環境として扱い、強化学習ポリシーを用いて安全性とパース可能性という制約に対して破損したアニメーションコードの修復に焦点を当てています(現在は 25 ステップの W&B エンabled パイロットでホストされています)。専任の

Hermes Agent
は、パイプラインの維持のためにアセットを検査し、チェックを実行(
pytest
,
git
)し、ドキュメントを検証するオペレーターとして機能します。MIT ライセンスに基づき、FFmpeg や LaTeX などの依存関係を備える本プロジェクトには、特定のツール要件が含まれており、これらは
./scripts/bootstrap-render.sh
を通じてアクセス可能であり、また
docs/showcase/assets/
下で 16 個の精選された GIF がアートディレクションの目標として追跡されています。この包括的なバンドルアプローチにより、教育者や研究者はプロンプトからレンダリングまでの創作プロセス全体に対する完全な可視性を確保できます。

本文

Math-To-Manim:数学推論から解説動画への変換アーキテクチャ

Math-To-Manim は、数学や物理学に関する深刻なプロンプトを、Manim による解説動画とそれらを作成するための再利用可能なアーティファクトに変換するプロジェクトです。単なる動画生成ではなく、「質問 → 理解 → アニメーション」に至る全ての過程を検査可能(inspect)にする設計思想を持っています。


💡 プロジェクトの背景と理念

開発のきっかけ

  • 2025 年 1 月 20 日、ドナルド・トランプ大統領の第 2 回就任式直前に始動。
  • Hugging Face にリリースされた DeepSeek の R1 モデルを契機に、数学推論(Math Reasoning)への焦点が寄せられた。
  • 「スプートニク式」のシグナルとして、地政学的な事実となった open reasoning モデルの扱いを検証した。

核となる理念(デザイン原則)

「物語が記号より優先され、幾何学が代数より優先され、アーティファクトが副作用(side effects)より優先される。」

M2M2パイプラインの役割

  • 入力: 短い質問、レッスンのアイデア、技術メモなど。
  • 出力:
    • 概念と教育順序。
    • 不足する前提知識の特定。
    • スクリーンビート(映像演出)と Manim コード。
    • オプションでレンダリングされた MP4 動画。
  • 価値:
    • 4〜5 分間の解説動画のための強力なファーストパス。
    • 装飾的な擬似数学ではなく、実際の数学的および物理的な記号(LaTeX)を使用。
    • 出力バンドル自体が重要な資産:デバッグ、エージェント間引き継ぎ、強化学習環境での利用が可能。

次のステップ:再帰的編集

  • 目標: 完成した動画と実行バンドルを、エージェントが検査して改正できる「環境」として扱う(Recurrent Language Models の発想)。
  • 具体例: 「カメラの傾きを調整して方程式が見やすくする」リクエストに対し、シーンプランと Manim コードを再計算し、検証後、再度レンダリング。

🏗️ 逆推論パイプライン(Reverse Reasoning Pipeline)

通常のデモが「リクエスト → Python コード」と直接ジャンプするのに対し、Math-To-Manim は意図的に以下の長道を経由します。 最終的な概念 ← 前提知識 ← 教育順序 ← 視覚的シーケンス → コード生成

エージェントのチェーン

AnimationPipeline.generate()
メソッドが以下の固定されたステージを実行します。

ステージ存在意義 (Purpose)出力アーティファクト
IntentAgent学習者の本質的な問いを明確化
intent.json
PrerequisiteGraphAgentターゲットアイデアに必要な知識グラフの構築
knowledge_graph.json
CurriculumAgentグラフから教育可能な順序への変換
curriculum.json
MathAgent定義、方程式、仮定、例の選択
math_packet.json
StoryboardAgentコード生成前の映像切り替え(ビート)決定
storyboard.json
SceneSpecAgent視覚計画を Manim オブジェクトへコンパイル
scene_spec.json
ManimCodeAgent実行可能な Manim Python コードの生成
generated_scene.py
StaticReviewAgent静的な検証(ゲート)の実行レポート、マニフェスト
RenderAgentMP4 ファイルへのレンダリングレンダリング結果
VideoReviewAgent動画自体のレビューと評価レビューノート

実行バンドルの構成要素

全ての出力には「記憶(メモリ)」が与えられます。

  • JSON コンパクトデータ(意向、知識グラフなど)
  • 生成されたコード
  • レンダリング結果と証拠
  • レビューノート
  • マニフェスト

これにより、単なる動画ではなく、質問から理解に至る検査可能な道筋そのものが得られます。


🤖 Prime Intellect RL リペアループ

Math-To-Manim は同時に Prime Intellect 強化学習環境としても発展しています。

シナリオと目的

  • ターゲット: 「1 つのショットで全体動画を作る」ことではない。リペア(修復) の動きが重要。
  • 入力データ: 失敗したアニメーションコード、タイピングされたシーンプラン、静的検証レポート、レンダリング/回復の証拠。
  • 出力要求: モデルは厳密に 「GeneratedCode JSON ブロック」 を一つ返す必要があります。

検証器(Verifiers)による報酬チェック

提案されたコードに対し、以下の条件を満たすか確認します。

  1. パース可能であること。
  2. 予想される Manim シーンを定義していること。
  3. 不安全なインポートや呼び出しを行っていないこと。
  4. 期待される数学用語を保持していること。
  5. テキスト/レイアウトの混雑危険性を減少させていること。

アーキテクチャフロー

graph LR
    A[generated_scene.py + scene_spec<br>+ validation/render evidence] --> B(Prime Intellect Verifiers environment)
    B --> C{Model proposes corrected<br>GeneratedCode JSON}
    C -->|Strict Output| D(static reward checks parseability, scene shape, safety, terms, layout)
    D --> E(hosted RL updates the repair policy)
    E --> F(corrected, renderable Manim Python flows back into M2M2 recovery)

ハウススタイルの学習

RL ループにより、モデルは以下の「ハウススタイル」を学びます。

  • シネマティックでありながら読みやすいシーン。
  • スパース(簡潔)な式。
  • セグメント化されたキャプション。
  • 安全な Manim コード。
  • 最初の回復試行で直ちにレンダリング可能なスクリプト。

🚀 クローンして実行する方法

1. リポジトリのクローンと環境構築

Windows PowerShell:

git clone https://github.com/HarleyCoops/Math-To-Manim.git
cd Math-To-Manim
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -U pip
python -m pip install -e ".[dev]"
python -m pytest

macOS / Linux / WSL:

git clone https://github.com/HarleyCoops/Math-To-Manim.git
cd Math-To-Manim
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install -e ".[dev]"
python -m pytest

2. API なしでのスモークテスト

モデル時間やレンダリング時間を消費する前に、CLI と検証器の接続を確認します。

math-to-manim generate "Explain why derivatives are slopes" --deterministic --no-render

モジュール形式でも可能です:

python -m math_to_manim.cli generate "Explain why derivatives are slopes" --deterministic --no-render

3. モデル呼び出しによる生成

OpenAI キーを設定し、必要に応じてモデルを選択します。

Bash/シェル:

export OPENAI_API_KEY="sk-..."
export OPENAI_MODEL="gpt-4.1"
math-to-manim generate "Explain Fourier epicycles as rotating vectors" --no-render

PowerShell:

$env:OPENAI_API_KEY = "sk-..."
$env:OPENAI_MODEL = "gpt-4.1"
math-to-manim generate "Explain Fourier epicycles as rotating vectors" --no-render

4. MP4 出力用のレンダリング環境設定

Python レンダリング依存項のインストール:

python -m pip install -e ".[dev,render]"

システム側のレンダリング依存項(Debian/Ubuntu/WSL): FFmpeg と LaTeX for MathTex が必要です。

./scripts/bootstrap-render.sh

必要なパッケージリストは

requirements-system.txt
に記載されています。

5. Codex CLI を経由したコード生成

プランニング段階はタイピングされたアダプター(通常のモデル)に留め、生成とリペアのみを Codex CLI で行う「部分的な移行」が可能です。

Codex の確認:

codex --version
codex exec "Say ready from inside this repo"

コード生成の設定:

math-to-manim generate "Explain derivatives as slopes with a cinematic tangent-line reveal" \
  --codegen-provider codex-cli \
  --codex-full-auto \
  --style cinematic \
  --quality l

💾 ディスク上の保存構造

生成は自己完結型の実行バンドルとして保存されます。ディレクトリ

runs/<run_id>/
に以下が含まれます:

  • 入力・計画:
    • request.json
      ,
      intent.json
    • knowledge_graph.json
      ,
      curriculum.json
    • math_packet.json
      ,
      storyboard.json
      ,
      scene_spec.json
  • 生成・検証:
    • generated_code.json
    • generated_scene.py
      (編集対象)
    • validation_report.json
      ,
      render_result.json
    • review_report.json
  • 追跡・資産:
    • trace.jsonl
      (有効な場合のステージ境界イベント)
    • recovery_manifest.json
      (リカバー後のもの)
    • draft_review/
      (ドラフトレビュー用)
      • draft_review.md
        ,
        contact_sheet.png
        ,
        frames/
  • メタデータ:
    • animation_package.json
      ,
      manifest.json

回復パスの実行

generated_scene.py
を編集した後、検証とレンダリングを再実行するには:

math-to-manim recover-render runs/<run_id> --quality l

このコマンドは、上流のプランニングアーティファクトを再生成せずに、検証・レンダリング・レビュー資産を更新します。

パッケージ構成

  • math_to_manim/agents/
    : ステージアダプター。
  • math_to_manim/schemas/
    : バージョン化されたアーティファクト契約。
  • math_to_manim/tools/
    : グラフ、検証、レンダリングなどのヘルパー。
  • math_to_manim/pipeline/
    : オーケストレーションとリペアループ。
  • math_to_manim/rendering/
    : Manim と FFmpeg ラッパー。
  • math_to_manim/review/
    : 静的および視覚的レビュー処理。

👩‍💻 Hermes エージェント(コントリビューター用)

Hermes は、このリポジトリの運用や貢献を行うためのエージェントです。

  • 独立性: Math-To-Manim コアに埋め込まれておらず、ランタイム依存関係もありません。
  • 機能: 開発者が行う作業を自動化・支援:ファイル読み込み、コード検索、パッチ適用、ターミナルチェック、アーティファクト検査、TODO 追跡など。
  • スタンス: 逆推論パイプラインの維持には有用ですが、パイプラインの一部になるわけではありません。
  • スキルの場所:
    hermes/skills/

Hermes セッションでの検証対象:

  • AGENTS.md
    ,
    pyproject.toml
    , スキーマ、テスト、
    runs/<run_id>/
    バンドル。
  • pytest、CLI スモークコマンド、Manim、FFmpeg、git チェックの実行。
  • ドキュメントやメディアがアーティファクト契約に合致するかの確認。

関連ドキュメント:

  • コントリビューターガイドライン:
    AGENTS.md
  • 起動ノート:
    docs/HERMES_LEARNS_MANIM.md

🎬 モーションショーケース

目標: Math-To-Manim の視覚的説明に対するアートディレクションの目標を定めた、16 のカイアード GIF が

docs/showcase/assets/
に存在します。

GIF からのレンダリング作成

MP4 ファイルから特定の授業ビートをキャプチャして GIF を作成します。

MP4="media/videos/your_scene/480p15/YourScene.mp4"

ffmpeg -y -ss 95 -t 24 -i "$MP4" \
  -vf "fps=12,scale=720:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=96[p];[s1][p]paletteuse=dither=bayer:bayer_scale=5" \
  docs/showcase/assets/your-clip.gif

ヒント:

-ss
-t
を調整することで、望む授業のビートをキャapture可能です。


📄 ライセンス

MIT

同じ日のほかのニュース

一覧に戻る →

2026/05/30 2:54

耐久性のあるワークフローには SQLite のみで十分です

## 日本語訳: #: オリジナルのサマリーは明確で簡潔かつ構造化されており、箇条書きを意味を損なうことなく一貫した物語に統合しています。したがって、改善は必要ありません。 # 改善されたサマリー:オリジナルと同じ ## サマリー: DBOS は、高価で複雑な共有データベースクラスターを不要にする、AI ワークフローにおける持続的実行のための費用対効果の高い戦略を提案しています。Obelisk フレームワークを SQLite および Litestream と組み合わせることで、システムはワークフローの進行状況をローカル SQLite ログに直接保存し、非同期でオブジェクトストレージへバックアップをストリーミングすることができます。このアーキテクチャにより、永続的な状態と Disposable な計算リソースが分離され、組織は壊れやすいモノリシックなシステムを管理するのではなく、個別のデータベースを持つ小さなサーバーの艦隊を実行できるようになります。従来の設定では必要な継続的なネットワークホップや共有利用可能性的保証が必要であるのに対し、このアプローチはテナントごとに障害を隔離し、ローカルファイルを通じたデバッグを簡素化します。Postgres は依然として高コンカレンシーまたは同期整合性を必要とするシナリオには不可欠ですが、このローカル化されたモデルは、突発的な AI ワークロードを持つ実験環境には理想的です。究極的には、この手法は不要な制御平面を除去することでインフラコストを削減し、開発者が複雑な共有ストレージ層や高度なレプリケーション戦略を管理するのではなく、エージェントロジックに集中することを可能にします。

2026/05/30 12:14

Perry は SWC と LLVM を用いて TypeScript を直接実行可能ファイルに変換します。

## Japanese Translation: Perry v0.5.306 は、macOS、iPadOS、iOS、Android、Linux、Windows、watchOS、tvOS、WebAssembly、および Web の上で TypeS cript を直接、極めて小さく独立したネイティブバイナリにコンパイルする革命的なフレームワークであり、Node.js や Electron などのランタイムを必要としない。SWC を解析に、LLVM を最適化されたコード生成に活用することで、Perry は 2〜5 MB の実行ファイルを生成し(npm パッケージのためにオプションで V8 ランタイムを採用すると約 20 MB)、これに対し Node.js は約 80 MB、Bun は約 90 MB と比較して格段に小型である。起動時間は Perry で約 1 ms、Node.js で約 30 ms、Bun で約 10 ms となり、Apple M1 Max の RUNS=11 テストの中央値では Perry v0.5.279 が Node.js v25 を凌駕する。このフレームワークはジェネレーションごとのガベージコレクタおよびデフォルトでの lazy JSON tape を備え、ほとんどのベンチマークで Node や Bun よりも高速なパフォーマンスを発揮可能である。 Perry は包括的な標準ライブラリ(fs、path、crypto、os、Buffer、child_process)を内蔵し、64 位浮動小数点、BigInt、単型化を伴うジェネリック、高度な型(インターフェース、ユニオン、タイプガード)、async/await をサポートする。AppKit、GTK4、Win32、UIKit、および JNI 経由で 30 以上のネイティブ UI ウィジェットを提供し、また 30 件以上の人気のある npm パッケージ(データベース:mysql2、pg、mongodb、better-sqlite3;セキュリティ:bcrypt、jsonwebtoken;ユーティリティ:lodash、moment、uuid)をネイティブ Rust で再実装しており、依存関係を直接のネイティブ関数呼び出しに変換することで、プラグインのオーバーヘッドと IPC の境界を排除する。コンパイル時プラグインシステムにより、安全でない変更可能キャプチャ(SharedArrayBuffer や Workers を使用しないなど)を拒否する決定的なビルドおよび安全性チェックが実現される。 高度な機能には、`parallelMap`、`parallelFilter`、および `spawn` を通じた実際の OS スレッドサポート、CLDR 複数規則を使用した 30 以上のローカルのための自動コンパイル時 i18n、App Store、Play Store および直接ダウンロード向けの「Perry Publish」サービスによるクロスプラットフォームのビルド、署名、および配布が含まれる。デプロイ前の機能検証に Geisterhand を活用した全 6 プラットフォームへの自動化された UI テストも可能である。これらの能力により、ダウンロードサイズ、レイテンシ、複雑性の大幅な削減が実現され、既存のソリューションとの比較で安全性とパフォーマンスにおいて同等または優位性を確保する。

2026/05/27 4:12

スノーボードキッズ2は完全にデコンパイルされました

## Japanese Translation: テキストは、約 2 年にわたる作業の結果、「Snowboard Kids 2」が C 言語コードに成功的に復元され、オリジナルの Nintendo 64 バイナリと一致したことを発表しています。この大きなマイルストーンは、人工知能とコミュニティによる協力がクラシックなビデオゲームソフトウェアを効果的に再活性化できることを示しています。プロジェクトは 2024 年 9 月の最初のコミットで始まり、新生児の娘を持つ著者は、病院でのダウンタイムをクリエイティブな distractions( distraction: 精神的な distraction/ distractions → 精神への distractions の意味で「 distractions」のまままたは自然な日本語訳「 distract」として判断)として利用しました。成功は N64 復元 Discord コミュニティからの支援に大きく依存しており、特に Bl00D4NGEL および inspectredc の最終関数への貢献に対して謝意を表しています。AI ツールの分野では、**Codex 5.5 xhigh** が最も困難なタスクにおいて最も効果的なモデルとして特定されましたが、他のモデルの高いサブスクリプション料金を考慮すると、**GLM** がコストパフォーマンスに優れているため推奨されています。今後、チームは sonicdcer および DarioSamo の支援を受けながら、ワイドスクリーン対応や描画距離の拡大といった現代的な改良を備えた高品質なリコンパイル版をリリースする予定です。次のステップとして、バグの修正、一般的なコードラベルの整理化、構造体/アセットのリネーム、そして「Super Snowboard Kids」というタイトルの『Snowboard Kids 1』を含む複合版を作成するために『Snowboard Kids 1』の復元を行う可能性があることなどが含まれます。興味のある読者はプロジェクトの README で最初の良質なタスクを見つけることができ、Bluesky で最新情報をフォローできます。 **注釈**: - 「distractions」は文脈上「精神的な distractions( distracting activity)」として解釈し、自然な日本語訳に即して「クリエイティブな distractions」と表現しました。ただし、原文の意味を正確に保つため、翻訳では「 distractions」のニュアンスを残しつつ、日本の読者にも理解しやすい形で調整しました。 - 技術用語(API, LLM, zero-trust など)はそのまま保持しましたが、このテキストにはこれらの用語が含まれていないため、該当部分は特に変更しませんでした。 - ドキュメント構造(見出し、箇条書きの有無など)は原文に合わせて維持しましたが、原文に箇条書きがないため、翻訳でも同じく段落形式としています。

マスの数学からマニムへ | そっか~ニュース