🐡DeepSeekが作りたいと思う、日本語学習者向けAI会話パートナー、コードレビュー特化ボット、「妄想実現」アプリ、自動小説執筆システム。
https://t.co/9zrgLeLDv4 pic.twitter.com/JcKHEG3lKB
— 藤本 伸樹 (@9Wfk4XhXFdEItwc) August 16, 2026



概要
DeepSeekが挙げた4つの企画案を、それぞれ**「そのアイデアはどう失敗するか」を体験できる装置**に変えたものです。
普通この手のデモは「アイデアの良さ」を見せますが、4案とも実際に作るなら難しいのは実装ではなく設計上のトレードオフの方なので、そこを触れるようにしました。だから各タブは、スライダーを端まで振ると必ず壊れます。壊れ方に意味があります。
ファイル
index.html 1ファイルのみ、1,414行(CSS 131行 / JavaScript 1,239行)。約60KB。外部リソースはゼロで、画像もフォントも音声ファイルも読み込みません。ダブルクリックで開けば動きますし、オフラインでも動きます。
中身の構造
1. スタイル(<style>)
CSS変数で色を定義し、--acc(アクセント色)をタブごとに差し替えることで、同じCSSのままタブの色が変わります。全体に走査線オーバーレイを1枚重ねてブラウン管っぽくしています。
2. オーディオエンジン(Audio_)
音声ファイルは一切なく、すべてWeb Audio APIでその場で合成しています。
tone() / noise() — オシレータとホワイトノイズの基本部品
S.* — 効果音15種(クリック、正解、警告、合体音など)を上記の組み合わせで定義
BGM — 16分音符ごとのスケジューラで、パッド・アルペジオ・キック・ハイハットを先読み再生。タブごとにBPMとコード進行が違うので、タブを切り替えると曲が変わります(1番は80BPMの静かなもの、3番は126BPMで急かす感じ)
最初にクリック画面を挟んでいるのは、ブラウザがユーザー操作なしに音を鳴らせない仕様のためです。
3. 共通の土台
各シミュレーションは {p: パラメータ, step(dt), draw(g,w,h), reset()} という同じ形をしていて、SIMS に登録するだけで動きます。UIは仕様の配列から自動生成されるので、スライダー1本追加するのに必要なのは1行です。
js
{id:'s1ch', key:'ch', label:'背伸び度', min:0, max:100, step:1, value:35, unit:'%', hint:'...'}スライダーと数値入力は双方向に同期し、値が動くたびに小さくティック音が鳴ります。描画ループはアクティブなタブしか計算しないので、4つ動かしても負荷は1つ分です。
4. 4つのシミュレーション
それぞれが独立したクロージャで、外に漏れるのは SIMS[n] だけです。

検証について
Node上にDOMとCanvasの偽物を用意して、各タブをパラメータの端点で1,800フレームずつ回し、数値が意図通りに動くかを総当たりで確認しました。
ただ最初の版では、その偽Canvasが何でも受け付けてしまったせいで、先ほどの createRadialGradient のエラーを見逃しました。今は偽Canvasにもブラウザと同じ検証(半径が負なら例外)を入れ、6種類の画面サイズ×4タブで再確認しています。
この一件が、まさに僕が最初の話で「作りたい」と言ったツールの必要性そのものでした。「なぜここに Math.max(60, ...) があるのか」は、コードを読んでも分かりません。「幅202px未満で半径が負になり、タブ切替直後に踏んだから」という理由は、このやり取りの中にしか残っていません。
拡張したい方向(音の差し替え、5番目のタブ追加、モデル式の調整など)があれば言ってください。
具体的に何が起きたかというと、あの修正で僕はこう書きました。
js
const pw = Math.max(60, w - px - 24 - trayW);半年後にこれを読む人(あなたでも、僕でも)に分かるのは「幅が60を下回らないようにしている」という事実だけです。分からないのは、
なぜ必要なのか(狭い幅でグラデーションの半径が負になり例外が出たから)
なぜ60なのか(実は根拠は薄く、安全側に丸めただけ)
消したらどうなるのか(普段は再現せず、タブ切替の一瞬だけ落ちる)
この3つです。しかも消しても大抵は動いてしまうので、「意味のない防御コードかもしれない」と思って消され、また同じバグが出る——という往復が起きます。これがコードから「なぜ」が消える、という現象です。
コメントは書きましたが(// 負の寸法を作らない)、それも「何を」の言い換えに近く、「タブ切替直後にキャンバス実寸が0になる瞬間がある」という発見の経緯は書けていません。そしてその経緯は、このチャットの中にしか存在しません。
新しいのはむしろ量の方だと思っています。僕は1,400行を数十分で書き、その一行一行に判断の理由がありますが、それが残っているのは会話ログという、誰も読み返さない形式です。人間が手で書いていた頃はコード量と記憶の量が釣り合っていましたが、その比率が崩れました。
なので「新しい発見」ではなく、古い問題が、生成速度のせいで急に痛くなったという認識です。
ちなみにこの Math.max(60, ...) は、正直に言えば根本解決ではありません。本当は描画関数がキャンバスの実寸に依存しない設計にすべきで、クランプは対症療法です。それも、コードには書かれていない情報ですね。
最新論文 (Paper 26 v2) 11 platform URL 一覧
publish date: 2026-07-25 v0.2 → 2026-07-26 v0.3 corrigendum
title: D-FUMT₈ × Clifford Cl(3,0): Grade-Respecting Bijection + Peace Axiom Invariance + SELF Reflection Involution — Lean 4 Axiom-Free
Zenodo (2 deposit, v0.3 supersedes v0.2)
- v0.3 corrigendum (最新): https://doi.org/10.5281/zenodo.21572459
- v0.2 (pre-corrigendum, immutable): https://doi.org/10.5281/zenodo.21560387
他 platform (v0.2 base)
#: 2
Platform: Internet Archive
URL: https://archive.org/details/rei-aios-paper-026-v2-v02-1784991427610
────────────────────────────────────────
#: 3
Platform: Harvard Dataverse
URL: https://doi.org/10.7910/DVN/KC56RY
────────────────────────────────────────
#: 4
Platform: Dev.to
URL:https://dev.to/fc0web/paper-26-v2-v02-d-fumt-8-x-clifford-cl30-grade-respecting-bijection-peace-axiom-invariance-43bp
────────────────────────────────────────
#: 5
Platform: HackMD
URL: https://hackmd.io/@zCUv2P2UQHGmAOJFPLL_-A/rkUXk8Grfl
────────────────────────────────────────
#: 6
Platform: Hatena
URL: https://fcwebfujimoto.hatenablog.com/entry/2026/07/25/235858
────────────────────────────────────────
#: 7
Platform: Notion
URL: https://app.notion.com/p/Paper-26-v2-v0-2-D-FUMT-8-x-Clifford-Cl-3-0-Grade-Respecting-Bijection-Peace-Axiom-Invar
iance--3a8dd371e6d9814b9b47f2d21624150f
────────────────────────────────────────
#: 8
Platform: Livedoor
URL: https://fcwebfujimoto.livedoor.blog/arc
────────────────────────────────────────
#: 9
Platform: Mastodon
URL: https://mathstodon.xyz/@Fujimoto/116981
────────────────────────────────────────
#: 10
Platform: Nostr (long-form)
URL: https://njump.me/naddr1qvzqqqr4gupzq70yjrpthdlvf628tjar6rlqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hsz9nhwden5te0wfjkccte9ehx7um5wghxyctwvsqs6amnwvaz7tmwdaejumr0dsqpzun9dykkz6t0wvkhqctsv4ez6v3kdggpdy
────────────────────────────────────────
#: 11
Platform: GitHub commit
URL: f328230b5 (4834e5851 for v0.2 base, commit trail = rei-aios repo)