2026年7月12日(日)掲載 2,537本日 0
HN455

直感操作で代数を解く!オープンソースの数学エンジン「Wyrm」をリリースしました

Show HN: Wyrm – Solve algebra by touch, built on an open-source soundness engine

dicroce2日前

議論

5
0dicroceスレ主452日前

「DragonBox」というモバイルゲームをご存知でしょうか?このゲームは、パズル的な操作を通じて、いつの間にか代数をマスターさせてしまうという魔法のような仕組みを持っています。抽象的なルールから始まり、徐々に現実の数式を解くステップへ導いてくれるその体験が大好きで、自分の子供たちに代数を教えるのにも役立ちました。何より、とにかく楽しいんです。長年、私は「DragonBoxのように、直感的なジェスチャーで項をドラッグして消去・分配を行い、かつ自分の好きな問題を解ける代数計算機があればいいのに」と考えていました。DragonBoxよりも対応範囲が広く、もっと自由な計算機を。そう思い立ち、ついに自分で作ることにしました。プロジェクトページはこちらです: https://dicroce.github.io/wyrm/home.html 実際の操作感はこちらの動画から確認できます: https://www.youtube.com/watch?v=_STbS4zvIlU ブラウザで試せる限定デモ版(エンジンは本物で、いくつかのサンプル方程式を収録しています)も公開中です: https://dicroce.github.io/wyrm/home.html アプリ版はiOS (https://apps.apple.com/us/app/wyrm-math/id6782342042) および、今週からGoogle Play (https://play.google.com/store/apps/details?id=com.dicroce.wyrm) でも入手可能です。また、他の開発者がこのエンジンを活用できるよう、中核となる数学エンジンをオープンソース化しました: https://github.com/dicroce/wyrm_math 将来的には、微積分まで対応させることを目標としています。マネタイズは至ってシンプルです。エンジン自体はMITライセンスで無料公開し、洗練されたUIを備えたアプリ版は4.99ドルの買い切り制としました。サブスクや広告、アカウント登録、トラッキングは一切ありません。エンジンの設計について、CAS(数式処理システム)や証明支援系の開発経験がある方からのフィードバックをぜひお待ちしています。DragonBoxが好きで、もっと先に進みたいと思っていた方にはきっと刺さるはずです!

1bobajeff約21時間前

動画見たよ。最近ちょうどこういうものを求めてた気がするけど、この手のツールに決まった名前ってないよね。

それに関連して、自分でもステップバイステップのソルバー兼計算機を作ってるんだ。sympy (pyodide経由) と mathlive を使ってるんだけど、ブラウザでPythonを動かすことの限界を感じ始めてて、そろそろJSライブラリに目を向けようかと思ってる。

2senkora約20時間前

これ最高だね。リリースおめでとう!

一番近いものだとWolfram Alphaのステップバイステップ解法があるけど、あれだと学生が「次へ」ボタンを連打するだけで何も学ばないんじゃないかっていう懸念が常にあるんだよね。

代数を「問題」じゃなくて「パズル」として捉える構成にしてるのがすごくいいと思う :)

Wolframの件: https://www.wolframalpha.com/examples/pro-features/step-by-step-solutions

特にこれ: https://www.wolframalpha.com/input?i=find+t+for+t%5E2+%2B+3t+%2B+2+%3D+0

3siraben約19時間前

すごく面白いね!定理証明や等式推論のためのバージョンも見てみたいよ。関数型プログラムの推論やその性質の証明は、結局のところ多くのケースで「ルールの適用」に過ぎないと思うんだ。でも、みんな数式を眺めたり、いきなり定理証明器に飛びついたりしがちだよね。ビジュアルなインターフェースがあれば、そのハードルがかなり下がるんじゃないかな。

4dharmatech約18時間前

すごくいいね!

連立方程式から変数をインタラクティブに消去するライブラリのデモを貼っておくね。

https://youtu.be/7ysUdxTfKhU?is=lE5o9Besk1XNnggP

ソース:

https://github.com/dharmatech/combine-equations.py

インタラクティブなGUI部分は4分8秒から始まるよ。それ以前はセットアップと例の背景説明。

もし連立方程式のサポートや変数の分離といった方向に進むなら、このライブラリでやってるみたいに、既知の値と未知の値を色分けすることを検討してみるといいかも。

自分はこのライブラリを大学物理(運動、等加速度運動、放物運動、ニュートンの法則など)の演習問題でテストしてるんだ。これらは連立方程式を扱って変数を消去し、既知の値で式を表現する必要があるからね。

上記のデモはJupyterLiteノートブックを使ってるから、すべてブラウザのクライアントサイドで動くよ。サーバー側のカーネルは不要だ。

君のインタラクティブで滑らかなスタイルをこのライブラリに応用するなら、ユーザーがまずその変数を分離して、消去したい変数を別の式の変数にドラッグする感じかな。つまり、「この変数をこの式で置き換える」という操作を直感的に行えるわけだ。