Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jphacks/ng_2501

Repository files navigation

SUDO - 数学動画ジェネレーター -

SUDO - 数学動画ジェネレーター -

製品概要

数学教育 X Tech: 生徒に数式の"動き"を伝えたい数学講師が、即座にオリジナル解説動画を作れる動画ジェネレーター

製品開発のきっかけ

塾の数学の講師をしている中で、数式の意味を教えたいのに生徒が数式の意味を丸暗記してしまい、式の意味を理解していない生徒をたくさん見てきました。

そこで私のような学校や塾で「自分らしい解説」を動画で手軽に届けたい」数学講師が簡単に副教材としてのアニメーションを作れるアプリケーションを作りたいと考えました!

課題感

代替テキスト

紹介動画

紹介動画

従来教材・動画教材の限界

  • 紙のプリントや黒板、静止画像教材では、図形の変形や関数の動きを直感的に伝えられない。

  • YouTube動画教材は生徒にとっての「その場」の疑問とずれていることもある。

    • また講師が本当に教えたい内容や重点と違う場面が多々あり、指導現場でも不適切なケースが発生しやすい。
  • また、スタディサプリの学習塾市場から撤退が示すように動画教材が「サービス自体のカスタマイズ性不足」「塾ごとの指導方針やカリキュラムに柔軟に対応できない」という課題が学習市場である。

  • 加えてSora2など現在の動画生成AIツールでは、教育用・数学専用のアニメーション、数式変形の過程や根拠を表現する細かなカスタマイズが難しく、現場の課題にフィットしない。

  • つまり 「動的な可視化」と「細やかな個別カスタマイズ」を同時に実現する"教育現場で使用できるツール"が決定的に不足している。

解決の方向性

  • 生徒が「公式や答えの暗記」で終わらないよう、教師は数式や関数・図形の"動き"や"なぜそうなるか"の根拠をアニメーション動画で直感的に伝えられるようにする。
  • 教師・塾講師が、生徒ごと・授業ごとの"その場"の疑問や理解度に合わせて、オリジナルの解説動画を簡単・即時に作れるようにする。
  • manimとAIによる自動生成・編集機能で、従来は専門知識や長時間が必要だった教材(動画)作成のハードルを劇的に下げる。
  • 動画生成・編集の工程をすべて直感的なUIで完結させ、誰でも現場のニーズに合わせた数学教材を手軽に作れる環境を提供する。

製品説明

SUDOは、数学講師が「自分らしい解説」をするための数学動画ジェネレーターです。

  • 誰のため?

    • 学校や塾の数学講師、「自分らしい解説」を動画で手軽に届けたい先生
  • 何ができる?

    • 手元の数式や板書イメージをテキストで入力すれば、×ばつmanimが解説意図に沿った理想の数学動画を即自動生成
    • 先生自身の"教えたい順序""強調したいポイント""生徒のつまずきや質問"を、自然な日本語で柔軟に動画へ反映できる
  • どう使える?

    • 授業で「説明が難しい」「紙だと伝わらない」単元を、すぐ動画でビジュアル化
    • テスト後や質問対応で、生徒ごとに「分からなかった箇所」だけピンポイントで作り直し、個別で教材作成
    • 自分だけの"補助教材"動画が何本でも作れる
  • どこが新しい?

    • 先生一人ひとりの「現場の工夫」「説明のこだわり」がそのまま"動画"という形で即反映できる
    • 従来の生成AIでは難しかった、数式や教材内容を"自然言語で指示するだけ"で、動的な数学アニメーション動画へ自動変換できる
    • 指導意図・を強調したいといった要望も満たせるので、教師主導の現場適応性が圧倒的に高い
    • 数学特化AI+manim連携というアーキテクチャにより、LaTeXや自然文・教材テキストから複雑な数式アニメ作成をで自動化
    • Sora2とは異なり、数学全般の動画に特化している。

解決できること

  • 教師は自分の教えたい通りに数学動画を即生成し、指導を効率化できる
  • 生徒はわかりにくい数式の意味や動きを、直感的な動画で理解できる

技術

独自技術

Manim動画生成AIエージェント

LangGraphベースのAIエージェントにより動画を生成しています。これはコード生成やエラー処理、実行を頂点に持ち、コードやエラー内容を状態として保持しています。
これにより、以下のManimコードの生成から実行の一連の流れの管理をしやすくしました。
manimコードの生成->linterチェック->セキュリティチェック->解像度を落とした実行チェック->実行->(成功したら終了、失敗したらエラー処理->linterチェック->・・・)
詳しくは、ベースエージェント使用しているエージェントをご覧ください。

検索機能

既存動画の説明文を埋め込みベクトル化してベクトルDBに保存し、ユーザー入力に意味的に近い動画を高速に検索できるようにしています。
あるユーザーが編集を重ねて作った分かりやすい動画は他のユーザーが見てもいい動画であることが多いので、再利用できるようにしました。
大量の動画データから、類似度が高い上位k件を高速に持ってくるために、埋め込みモデル+ベクトルDBを用いて実装しました。
詳しくは、該当ファイルをご覧ください。

コードの差分更新

編集時やエラー処理時に Unified Diff 形式の差分更新を適用し、出力トークン削減による低コスト化と高速化を実現しました。
gemini apiに対して、Unified Diff 形式での出力をさせると、行番号がずれるという問題あります。
そのため行番号はあくまで補助的に使用し、ハンクごとにコードのどこにあるものかを求めてから更新処理を適用しています。
詳しくは該当ファイルをご覧ください。

Manim専用linter

Manim 0.19.0で使用できないクラス/メソッド/引数の有無を静的解析で確認する自作のlinterを開発しました。
詳しくは該当ファイルをご覧ください。

実行前セキュリティチェック

プロンプトインジェクション対策として、Manim コード実行前に危険なコードでないかをを静的解析により確認しています。
詳しくは該当ファイルをご覧ください。

セキュリティに対する意識

HTTPS 化・Docker 利用・GitHub コードレビューの厳格化により、安全なコード実行環境を整備しました。

フレームワーク・ライブラリ・モジュール

  • Next.js: フロントエンドフレームワーク
  • manim: 数学動画生成エンジン
  • FastAPI: バックエンドAPIフレームワーク
  • langchain/LangGraph LLM エージェント
  • ast 抽象構文木作成
  • Gemini API: プロンプト生成とmanimコード自動生成のためのLLM
  • Chroma RAG用DB

About

JPHACKS2025 Innovator認定 審査員特別賞

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6

AltStyle によって変換されたページ (->オリジナル) /