mcpField
K
knot-theory-educator

knot-theory-educator

github.com/curiositechクリエイティブ・メディア257172 回インストール2 日前に更新
リポジトリ

knot-theory-educator について

Knot Theory Educator は、組みひも理論とトポロジーを視覚的でインタラクティブな教材にするスキルです。教育者やコンテンツ制作者向けに、形式的な記法より先に物理的な動きを示します。

主な機能

  1. 01組みひも生成元の視覚的な説明
  2. 02段階的なアニメーションの作成
  3. 03数学用語の解説カードの設計
  4. 042本と3本の組みひもの比較
  5. 05Yang-Baxter 関係の図示
  6. 06代数を物理的な直感へ置き換え

活用シーン

  1. 01組みひも生成元の操作を教える
  2. 02組みひも関係の等価な経路を示す
  3. 03本数による複雑さの違いを説明
  4. 04組みひものインタラクティブ教材を作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/curiositech/some_claude_skills --skill knot-theory-educator

インストール後、Claude Code で/knot-theory-educatorを入力して読み込まれたか確認します。

同梱ファイル.claude-plugin/plugin.jsonreferences/knot-garden-education.md

詳細

結び目理論の学習支援

抽象的な組みひも理論や位相幾何学の概念を、直感的で視覚的かつインタラクティブな学習体験へと変換します。このスキルは、形式的な数学と真の理解の間にある隔たりを埋めます。

使用する場面

✅ 次の用途で使用してください:

  • 組みひも生成元(σ₁、σ₂など)の視覚的な説明を作成する
  • 交差の順序を示す段階的なアニメーションを作成する
  • 数学用語の解説カードを設計する
  • 群論の概念を身体的な直感に置き換える
  • 2本組みひもと3本組みひもの違いを示すインタラクティブなデモを作成する
  • ある操作が可換である(または可換でない)理由を図解する

❌ 次の用途では使用しないでください:

  • 結び目不変量(ジョーンズ多項式など)の計算のみを行う
  • 学術研究レベルの証明を行う
  • 組みひもや結び目とは無関係な一般的な数学指導を行う
  • 可視化フレームワークのソフトウェアアーキテクチャを決定する

基本原則:まず物理的な直感から

見分け方:専門家は、まず物理的な操作を通して組みひもを説明し、その後で記法を使います。

Novice approach: "σ₁ is a generator of B₃ satisfying..."
Expert approach: "Imagine holding three strings. σ₁ means 'cross the
                  left string OVER the middle one.' Now they've swapped
                  positions. σ₁⁻¹? Cross it back UNDER."

視覚表現の語彙

基本的な交差図

σ₁(左が中央の上を通る):

  1   2   3          2   1   3
  │   │   │          │   │   │
  │ ╲ │   │    →     │   │   │
  │   ╳   │          │   │   │
  │ ╱ │   │          │   │   │
  │   │   │          │   │   │

σ₂(中央が右の上を通る):

  1   2   3          1   3   2
  │   │   │          │   │   │
  │   │ ╲ │    →     │   │   │
  │   ╳   │          │   │   │
  │   │ ╱ │          │   │   │
  │   │   │          │   │   │
ヤン・バクスター関係の視覚化

σ₁σ₂σ₁ = σ₂σ₁σ₂(「組みひも関係」)

これは単なる代数ではなく、ひもを動かすことに関する物理的な事実です。

  • 左の経路:左が中央の上を通り、次に中央が右の上を通り、最後にもう一度左が中央の上を通ります
  • 右の経路:中央が右の上を通り、次に左が中央の上を通り、最後にもう一度中央が右の上を通ります
  • どちらも、最終的にひもは同じ配置になります!

両方の経路を並べて表示し、同じ結果に至るアニメーションを作成します。

解説カードのパターン

パターン:用語の定義カード

「語の問題」や「ガーサイド標準形」などの太字の用語に使用します。

<div class="explainer-card graph-paper">
  <h3>The Word Problem</h3>
  <p class="intuition">
    "Given two different-looking recipes for tangling strings,
    do they produce the same tangle?"
  </p>
  <p class="formal">
    Formally: Given braid words w₁ and w₂, determine if they
    represent the same element of Bₙ.
  </p>
  <p class="example">
    Example: Is σ₁σ₂σ₁ the same as σ₂σ₁σ₂? (Yes! Yang-Baxter)
  </p>
  <p class="complexity">
    Solved by Artin (1947) - polynomial time in word length
  </p>
</div>
パターン:段階的なアニメーションカード

「交差がどのように積み重なるか」などの過程に使用します。

// Animation sequence for σ₁σ₂σ₁⁻¹
const steps = [
  { state: 'initial', label: 'Three untangled strands: ε (identity)' },
  { state: 'after_s1', label: 'σ₁: Left crosses over middle', highlight: [0,1] },
  { state: 'after_s2', label: 'σ₂: Middle crosses over right', highlight: [1,2] },
  { state: 'after_s1_inv', label: 'σ₁⁻¹: Left crosses UNDER middle', highlight: [0,1] },
  { state: 'final', label: 'Result: Strands repositioned, complexity = 3' }
];
パターン:比較カード

「犬が3匹いる場合と2匹いる場合で根本的に何が違うのか」などに使用します。

┌─────────────────────┬─────────────────────┐
│   TWO STRANDS (B₂)  │  THREE STRANDS (B₃) │
├─────────────────────┼─────────────────────┤
│ One generator: σ₁   │ Two generators: σ₁,σ₂│
│                     │                     │
│ Abelian (order      │ NON-abelian         │
│ doesn't matter)     │ (order MATTERS!)    │
│                     │                     │
│ σ₁σ₁⁻¹ = ε always  │ σ₁σ₂ ≠ σ₂σ₁        │
│                     │                     │
│ Always untangle by  │ May need complex    │
│ counting crossings  │ algorithms to solve │
│                     │                     │
│ Like a single dial  │ Like a Rubik's cube │
└─────────────────────┴─────────────────────┘

よくあるアンチパターン

アンチパターン:直感より先に記法を示す

症状:「B₃ = ⟨σ₁, σ₂ | σ₁σ₂σ₁ = σ₂σ₁σ₂⟩」から始める

問題:群論の知識がない読者は、すぐに置いていかれます。記法自体は正しくても、教え方としては順序が逆です。

解決策:

  1. 物理的な実演から始めます(3本のひもを持ちます)
  2. 基本の動きに名前を付けます(左が中央の上を通る動き = σ₁)
  3. ある動きの順序を入れ替えられる理由を示します
  4. その後で、略記として形式的な記法を導入します
アンチパターン:動的な過程を静止図で示す

症状:組みひも操作の「前と後」を1枚の画像で示す

問題:組みひもは本質的に連続した過程です。学生には終点だけでなく、動きを見る必要があります。

解決策:

  • 段階的なアニメーションを使います
  • 中間状態を表示します
  • 前後にスクラブ再生できるようにします
  • 各時点でどのひもが動いているのかを強調します
アンチパターン:結果を伴わない複雑さ

症状:実際に何を意味するのか説明せずに「複雑さは7です」と述べる

問題:物理的な現実に結び付けられていない数字には意味がありません

解決策:

  • 「複雑さが7とは、ほどくのに少なくとも7回の交差操作が必要という意味です」
  • 「複雑さ3と7の違い:前者は5秒、後者は30秒以上かかります」
  • 「複雑さが高いほど、引っ張るときの摩擦が大きくなります(キャプスタン効果)」

可視化の手法

手法1:色分けしたひも

すべての図で、各ひもに一貫した色を割り当てます。

  • ひも1(最初に左端にあるもの):赤/ルビー
  • ひも2(最初に中央にあるもの):緑/エメラルド
  • ひも3(最初に右端にあるもの):青/サファイア

これにより、置換を直感的に追跡できます。

手法2:上を通る/下を通る部分の強調
  • 上を通る交差:実線で描き、ひもが「手前」に見えるようにします
  • 下を通る交差:後ろを通る箇所を破線で描きます
  • 2.5D 表現では、影や奥行きの手掛かりを使います
手法3:時間スライス表現

組みひもを水平な断面として表示します。

t=0:  R───G───B  (initial positions)
t=1:  G───R───B  (after σ₁: R crossed over G)
t=2:  G───B───R  (after σ₂: R crossed over B)
技法 4:物理的な類推ギャラリー

身近なものとの対応関係を作ります:

  • 「髪を編むようなものですが、どの束がどれかを追跡します」
  • 「メイポールダンスのようなものです。踊り手が束にあたります」
  • 「絡まったイヤホンコードのようなものです。同じ数学です!」

インタラクティブデモの仕様

デモ:犬 2 匹と 3 匹の違いに気づく

目的:犬 2 匹の散歩は簡単に管理できますが、3 匹になると本格的な複雑さが生じる理由を示します。

実装:

// Simplified physics demo with thick rope rendering
class BraidDemo {
  constructor(numStrands) {
    this.strands = numStrands;
    this.crossings = [];
    this.mode = 'interactive'; // or 'playback'
  }

  // Render thick ropes with clear over/under
  renderThickRope(strand, ctx) {
    ctx.lineWidth = 20;
    ctx.lineCap = 'round';
    // Draw shadow pass first (creates depth)
    // Then main strand with gradient
  }

  // Highlight the key insight
  showComplexityDifference() {
    if (this.strands === 2) {
      return "Count crossings. Apply that many σ₁⁻¹. Done.";
    } else {
      return "Must track which strand crossed which. Order matters!";
    }
  }
}
デモ:Yang-Baxter プレイグラウンド

目的:ユーザーが実験を通じて σ₁σ₂σ₁ = σ₁σ₂σ₁ を発見できるようにします。

機能:

  • 横並びの 2 つの編み込み可視化
  • それぞれに個別に操作を適用
  • 同等の状態に達したときに強調表示
  • 両方の経路が同じ結果につながる「なるほど!」の瞬間

理論ページのコンテンツ構成

上位ページ(導入部)
  • ビジュアルヒーロー:絡まった犬からほどけた犬へのアニメーション
  • 1 文で問題を説明
  • 「3 が特別な理由」の比較カード
  • 詳細なトピックへのナビゲーション
サブページ:編み込みの基礎
  • 束を操作できるインタラクティブ機能
  • アニメーションを使った生成元の紹介
  • 「編み込み語を自分で作る」プレイグラウンド
サブページ:代数
  • 横並びの証明を使った Yang-Baxter
  • 語の問題の解説
  • 物理的な意味を持つ複雑さの指標
サブページ:解法とアルゴリズム
  • 「もつれを解く戦略」に名称を変更
  • 貪欲法と最適なアプローチ
  • 物理デバイスの設計概念
  • ML ヒューリスティクスの探求
サブページ:応用
  • イラストを使ったロボティクス
  • 量子コンピューティングとのつながり
  • 手術ロボット、ケーブルドローン

使用する可視化の判断ツリー

Is the concept about static structure or dynamic process?
├── Static (e.g., "what is a braid group?")
│   └── Use: Comparison cards, diagrams with annotations
└── Dynamic (e.g., "how does σ₁ work?")
    ├── Is it a single operation?
    │   └── Use: Before/after with animation between
    └── Is it a sequence?
        └── Use: Step-wise timeline with scrubbing

物理レンダラーとの統合

デモでシミュレーションの物理エンジンを使用する場合:

  1. 拡大表示:シーン全体ではなく、リードだけに焦点を当てます
  2. 太いロープの描画:見やすさのためにロープの太さを増やします
  3. スローモーション:交差する瞬間は速度を 0.25 倍にします
  4. イベント時に一時停止:交差を検出したときに自動で一時停止します
  5. 注釈オーバーレイ:直前に発生した σ にラベルを付けます

このスキルに含まれるもの:組み紐理論の視覚的な教え方 | 解説カードのパターン | アニメーションの仕様 | 数学教育で避けるべきパターン | 物理を起点とする指導アプローチ

コメント