Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】I built a handwritten notes compiler because AI kept giving me walls of text

2026年11月05日に「Dev.to」が公開したITニュース「I built a handwritten notes compiler because AI kept giving me walls of text」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

AIの長文出力に不満を感じた開発者が、手書きノートのような学習ツール「ScriptForge」を開発した。これは、テキストや数式、記述型図形から、手書き風のノートページを生成し、PDFやPNGで出力する。ブラウザで完結し、オフラインでも利用できる。手書きの表現力を再現し、より効率的な学習を支援する。

ITニュース解説

近年、人工知能(AI)の進化は目覚ましいものがあるが、時にその出力形式が人間の学習スタイルに合わないという課題も浮上している。多くの学習者は、特定の概念を理解する際に、単なる大量のテキストではなく、図や数式、簡潔なメモが組み合わされた「ページ」から学ぶことを得意とする。しかし、AIに説明を求めると「テキストの壁」のような長文が返ってきたり、図を要求しても学習には不向きなブロック状の図ばかりが生成されたりすることが少なくない。手書きのノートは、テキストと図、数式、補足説明を密接に配置することで、一つのアイデアを効率的に「圧縮」して表現できる。例えば、ある数学の導出の隣にそれを説明する図を置き、さらに余白に注意点を書き加えるといった形で、人間は情報を複合的に捉えて理解を深める。このような学習に適した「ページ」をAIが提供してくれないという課題に応える形で開発されたのが、「ScriptForge」という新しいツールだ。

ScriptForgeは、ウェブブラウザ上で動作する「コンパイラ」だ。コンパイラとは、人間が書いた特定の形式の記述を、コンピューターが理解して実行できる形、あるいは指定された別の形式に変換するソフトウェアを指す。このScriptForgeの場合、ユーザーが記述するのは、プレーンなテキスト、LaTeX(ラテフ)という数式記述によく使われる形式に似た数式、そして「宣言的」な記述方法で書かれたシンプルな図形ブロックだ。これらの入力を受け取ると、ScriptForgeはそれを「決定論的」な手書き風のページとしてレンダリングする。決定論的とは、同じ入力を与えれば常に同じ出力が得られるという意味で、再現性が高い。そして、そのページは実際のノートのように美しくレイアウトされ、最終的には複数ページのPDFファイルやPNG画像として出力できる。このツールの大きな特徴は、専用のドローイングタブレットやクラウドサービス、ユーザーアカウント、さらには開発によく用いられる「ビルドステップ」(コードを実行可能な形に変換する準備作業)が一切不要で、すべてブラウザ内で完結するという点だ。

なぜ手書き風の見た目にこだわるのか。多くのノート作成ツールが手書きを「フォント」の一つとして扱うのに対し、ScriptForgeは手書きを「バリエーションを持つ幾何学」として捉えている。つまり、同じ「A」という文字であっても、本物の手書きのようにわずかに異なる形、傾き、筆圧のニュアンスを加えて描画するのだ。これにより、単調なフォントとは異なり、まるで本当に手書きされたかのような自然な見た目を実現する。この細かな表現が可能なのは、手書きが単なる装飾ではなく、情報をコンパクトに伝えるための「視覚言語」として機能するからだ。先述したように、導出の隣に図を置いたり、波形とタイミング表を並べたり、余白のメモが特定のステップを指し示したりすることで、ページ全体が一体となり、情報が効率的に伝わる。ScriptForgeが目指すのは、テキストを手書き風に見せること自体ではなく、そのような「学習しやすいページ」を作り出すことにある。

ScriptForgeがその手書き風のリアルさを実現し、機能を提供するための仕組みは、いくつかの独自のエンジンによって構成されている。まず、「allography engine(字形エンジン)」が、各文字に微妙な歪み、ベースラインのずれ、傾き、筆圧といった手書き特有のバリエーションを、ある規則性を持って与える。これにより、同じ文字が繰り返されてもまるで異なる手書き文字のように見える。このバリエーションは「シード値」と呼ばれる特定の値によって制御されるため、いつでも全く同じページを再現できる。次に、「2D math renderer(2D数式レンダラ)」は、LaTeX風に記述された数式を解析し、手書き風の分数、根号、積分記号などをレイアウトして描画する。これは完全なTeXエンジンではないが、学習ノートに必要な数式表現に特化して最適化されている。そして、ScriptForgeの「ページを役立つものにする」中心的な要素が、「sketch engine(スケッチエンジン)」だ。ユーザーが簡単な記述で指示するだけで、物理の自由体図、コンピューターサイエンスの連結リストやBツリー、化学の分子構造など、多岐にわたる図を生成する。このエンジンは、図の配置、テキストの折り返し、要素同士の衝突回避までを自動で行い、図と文章が同じページ内で自然に共存できるように調整する。さらに、「Pagination and layout(ページネーションとレイアウト)」機能が、A4やA3といった様々な用紙サイズに対応し、コンテンツが図の周りを適切に回り込み、数式や図がページの途中で分断されないように配慮してページを構成する。そして、最も開発者のこだわりが強い部分が「PDF writer(PDFライタ)」だ。通常の開発では既存のPDFライブラリを利用することが多いが、ScriptForgeではこれをゼロから自作している。これにより、外部への依存性を排除し、すべての処理をローカルで完結させ、生成されるPDFファイルを完全に制御可能にしている。

開発者は、シンプルさと自律性を非常に重視しており、一般的なウェブ開発で多用されるフレームワーク、npm(Node.jsのパッケージマネージャー)の依存関係、ビルドステップなどを意図的に排除している。クラウドでのレンダリングやアカウント登録も不要で、AIモデルがレンダリング時に介入することもない。このように徹底的に依存関係を排することで、ツールはより高速に、そして安定して動作し、ユーザーは常に自分のデバイス上で、予測可能な結果を得ることができる。

もちろん、このような設計には「トレードオフ」、つまり何かを得るために何かを諦めるという選択が伴う。例えば、LaTeXのサポートは限定的で、TeXエンジンの全機能を持つわけではない。また、図の文法は表現力があるものの、すべてを自在に記述できるわけではなく、一部の複雑な図の表現は難しい場合がある。レイアウトの調整、特にテキストが図の周りを回り込む際の衝突回避は、常に予期せぬ視覚的なバグを引き起こしやすい難題だ。そして、生成されるPDF内のテキストは、JPEG画像として埋め込まれるため、選択や検索ができないという制約があり、ファイルサイズも大きくなる傾向にある。これらの課題は認識しつつも、開発者は「小さくても信頼性の高い言語」が「常に問題を起こす大きな言語」よりも学習ツールとして有用であるという判断のもと、現在の設計を選択した。

興味深いことに、ScriptForgeはAIそのものをレンダリング時には用いないものの、そのノート形式は「AIネイティブ」でもある。ローカルで動作するMCPサーバーとコマンドラインインターフェース(CLI)を通じて、AIエージェントがノートを生成したり、その内容を検証したり、ページをレンダリングしたりすることが可能だ。これは「AIがすべてノートを書く」ことが目的ではなく、人間とAIエージェントが同じページ形式を共有し、協力して学習コンテンツを作成できる可能性を示唆している。ScriptForgeは、AIの限界を補完し、より人間中心の学習体験を追求するための革新的なアプローチを提供していると言えるだろう。

関連コンテンツ

関連IT用語

関連ITニュース