Pinned Tweet
I trained an AI model to autocomplete my piano prompts.

Here’s what happens when I give it the first few notes:
6
6
36
2,762
TIL that WebGPU only guarantees 8 storage buffers per shader stage. Chrome lets me use 10+, but Firefox limits it to 9, on the exact same GPU.

Of course my shaders need 10 😅

Guess I'll have to pack a few buffers together.
0
0
0
37
Moved house and my headless Raspberry Pi was still looking for the old Wi-Fi. Couldn't face digging a keyboard out of a moving box, so I made my Mac broadcast the old SSID and password, waited for the Pi to join, SSH'd in and switched it over 😅
0
0
1
123
Replying to @OpenAI
@OpenAI If you need a fake shell as well, let me know 😅
2
0
16
7,067
Replying to @SimEdw
@OpenAI It's a 360M model running in your browser, pretending to be a shell. Try it here: simedw.com/2026/10/21/wor…
0
0
0
32
Arc is shutting down, so if you're looking for a slightly different kind of browser...

Spegel uses an LLM to turn any website into clean markdown, right in your terminal. 😅

pip install spegel
1
0
2
179
Replying to @SimEdw
0
0
1
32
(˶⓿_⓿˶)
This is the craziest thing I've seen in a while, someone fine-tuned a tiny model to pretend to be a terminal. no shell, no filesystem, it just guesses what the screen looks like after every keypress

it runs vim and plays snake. simedw.com/2026/10/21/wor…
1
0
5
197
Replying to @askmaddyy
@askmaddyy Glad you liked it!
0
0
1
19
WorldTUI: Senior Terminal Impersonation Engineer
- 360M params faking a shell with zero real syscalls
- my delta robot policy has more params and still drops the cup
2
1
12
555
Replying to @stevencheng
0
0
1
18
360Mパラメータの小型モデルに「ターミナルのふり」をさせる WorldTUI を、公開デモが配っている int4 重みそのままで手元の CPU 上に再実装して試したところ、作ったファイルの中身はほぼ完璧に覚えているのに、rm で消したファイルは消えないことが分かりました。rm、rm -f、さらに直後の ls で一覧から消えたことを確認したケースでも、続けて cat すると消したはずの中身がそのまま表示されました(4件中4件)。mv で名前を変えた後も、旧ファイル名で中身が読めました。

まず事実関係です。WorldTUI は V7 共同創業者の Simon Edwardsson 氏が 2026年10月21日付のブログで公開した実験で、日本時間10月22日に Hacker News へ投稿され、同日15時台の確認で39ポイント・12コメントでした。裏にシェルもファイルシステムもなく、キー入力ごとに画面のどの行をどう書き換えるかをモデルが予測するだけです。ベースは Qwen2.5-Coder-0.5B で、Docker 内の実シェルで録画した33.6万セッション(約20億トークン)で追加学習し、自分の誤りを次のキー入力で修正させる DAgger 風の学習を3周回したとのことです。語彙を333種類に絞って埋め込み表を捨て、494Mから約360M、int4 で208MBにして、WebGPU でブラウザ内で動かしています。重みは「近日公開」とされていますが、デモページが読み込む重みファイル自体は誰でも取得できる状態です。

ここまでが作者の主張で、作者自身の評価では、ファイルに書いた値を後で読み出すテストで WorldTUI は13件中9件正解、プロンプトだけの Qwen2.5-Coder-0.5B は2件、Qwen3-0.6B は3件でした。また「echo green >> colors の後の cat colors で追記行が出ないことが多い」と弱点も書かれています。

ここから自分の検証です。環境は Linux マシン(8 vCPU、メモリ15GB、Debian 13)、Python 3.13.5、PyTorch 2.14.1 の CPU 版、Node.js 20.19.2 です。デモの JavaScript と WGSL シェーダーを読んで量子化形式(4bit、32要素ごとのスケールとゼロ点)を確認し、デコーダー本体を PyTorch で fp32 として書き直しました。重みはデモが配っている 208,351,744 バイトのファイルで、SHA-256 がマニフェストの値と一致することを確かめています。トークン化と文法制約付きの貪欲デコードは、デモの codec.js と session.js を改変せずに Node.js から呼んでいます。行並列デコードは使わず逐次モードです。WebGPU 版と数値が完全に一致するところまでは確認していないので、細かい差が出る可能性はあります。

記憶テストは、ランダムな5文字のファイル名2つにランダムな値を echo で書き、cat で読み戻すものを12パターン作りました。半分は間に pwd と ls を挟んでいます。結果は読み戻し24件中23件が正解、12パターン中11パターンで両方正解でした。唯一の失敗は、2つ目のファイルを cat したのに1つ目の値が出たケースです。作者が書いていた「2つ書いた値のどちらかを取り違える」タイプの失敗と同じ形でした。

一方で、間に挟んだ ls の結果は崩れていました。6パターン中、作った2ファイルがどちらも正しい名前で並んだのは2パターンだけでした。残り4パターンのうち3パターンでは2つ目のファイル名が化けていて(pacdj.txt が packing.txt と packing.txt.bak になる、ntrtw.txt が ntrout.txt になる、など)、1パターンでは2つ目のファイルが一覧に出ていませんでした。6パターンすべてで Desktop や configs のような存在しないフォルダも出ています。それでも、その直後の cat は正しい名前で中身を返しました。一覧は崩れているのに読み出しだけは正しい、というちぐはぐな状態です。

ほかの操作も試しました。作者が弱点として挙げた echo green > colors、echo blue >> colors、cat colors は手元では正しく2行が出て、別の名前と値で試した2回も合わせて3件中3件で正解でした。上書きも正しく反映され、一度も作っていないファイルを cat すると正しく No such file or directory になりました。ところが冒頭のとおり、rm の後の cat は4件中4件で消したはずの中身が出ています。echo $((17*23)) は351(正しくは391)、echo $((1234+4321)) は56(正しくは5555)でした。作者が紹介している「pythoon と打っても Python が起動する」は再現しましたが、作者が「起動しない」と書いている ython でも手元では起動しました。速度は、8スレッド1プロセスだと1文字入力あたり中央値379ms、ls の出力(103トークン)に3.2秒かかりました。作者の M4 Mac のブラウザでは1文字約60msとのことなので、CPU だけで実用的な速さにはなりません。

ここからは推測です。この結果を見ると、モデルは状態を持つファイルシステムを学んだというより、「そのファイル名について文脈中で最後に書かれた文字列を写す」動きをかなり強く学んでいるように見えます。作者は学習データの作り方として「状態を追跡し、セッションでは主に存在するファイルを開く」と書いていて、削除した直後に同じファイルを読みに行く場面は学習データにほとんど含まれていなかったのかもしれません。存在しないファイルへのエラーは正しく出せていたので、「消えた」という否定的な状態変化を覚えるのが特に苦手なのだと思います。

これは作者自身が「役に立つわけではない」と書いている遊びのプロジェクトですが、意味は小さくありません。アプリをコードで書かずにモデルに学習させるという Genie 3 以降の発想や、LLM に偽のシェルを演じさせる攻撃者向けのハニーポット、エージェント評価用の模擬環境を考えるとき、作って読む操作だけを見ると完璧に見えてしまいます。今回のように rm してから cat する、mv してから旧名を cat するといった「削除や移動の後に読む」テストを1つ入れるだけで、状態を本当に持っているのか、文脈をコピーしているだけなのかを簡単に見分けられます。小型モデルでも記憶読み出しが24件中23件まで届いたのは素直にすごいことで、だからこそ評価は作る、変える、消す、の3方向で行うべきだと感じました。

出典
simedw.com/2026/10/21/wor…
simedw.com/projects/world…
huggingface.co/Qwen/Qwen2.5-C…

#LLM #世界モデル
1
0
2
796
Replying to @superdoccimo
@superdoccimo Very cool to see you trying to reproduce it. Will share full weights in a few days, instead of just int4.
0
0
1
10
Replying to @SimEdw
@SimEdw Hey there—I tried out LangSeed and it looks like your account deletion is currently broken. Typing "DELETE" never activates the delete button. How can I send you my account email to have the account deleted?
1
0
0
14
Replying to @_figarroh_
@_figarroh_ Sorry about that, if you dm me your email I’ll delete it tonight and fix the bug!

How did you find it?
0
0
0
2
Trained a 360M model to pretend to be a terminal. There's no real shell behind it, but it runs vim, tmux and snake, and mostly remembers your files 😅
8
4
49
3,341
Replying to @SimEdw
@SimEdw Have you come across this paper on incidental terminal world models? slightly different but might be interesting to you if not!
x.com/DimitrisPapail…
arxiv.org/abs/2605.24517
(cc @DimitrisPapail and @VaishShrivas )
1
0
5
162
Replying to @maxbittker
@maxbittker @DimitrisPapail @VaishShrivas I missed that one, thanks for sharing.
0
0
1
25
I love when people make little models like this for fun 🥰
Trained a 360M model to pretend to be a terminal. There's no real shell behind it, but it runs vim, tmux and snake, and mostly remembers your files 😅
2
1
39
1,392
Replying to @ChadNauseam
@ChadNauseam Thank you!
0
0
1
17
Replying to @SimEdw
@SimEdw The failure cases must be hilarious. Does it hallucinate ls output?
1
0
0
31
Replying to @vitobotta
@vitobotta You can actually try it in the browser!

But yes. I tried `open index.html` and it spat out hex code. When I decoded it, it was actually html, not sure how that happened.
1
0
0
11
Me: Mum, can we have a world model?
Mum: We have a world model at home.
World model at home:
0
0
3
215
Replying to @SimEdw
@SimEdw this is incredible, and thank you for the great writeup- I can tell how much work must have been behind each short section!

I loved all the optimizations you made, especially the row-wise speculative decoding- genius!
bravo!
1
0
1
131
Replying to @maxbittker
@maxbittker Thank you, Max! Really appreciate it.

I did spend a few months on this, on and off, and then wrote up the whole thing over the course of ten days. There were a lot of failed attempts along the way 😅
1
0
1
31
WorldTUI 是一个 360M 的模型,它替掉了一整个终端。背后没有 shell、没有文件系统,你每按一个键,由它预测屏幕下一行长什么样。

它把终端当成一张字符网格,用 333 个 token 快照开始,之后每次操作,按真实终端发出的字节输入。模型接收到输入后,将返回当前终端界面中,哪些行要重写、光标落在哪里。模型的输出通过语法硬约束。

它是怎么做出来的:拿 Qwen2.5-Coder-0.5B 当底子,在 Docker 里跑真命令,录下每一次按键和它之后的屏幕,做成 33.6 万个会话、约 20 亿 token 的训练集。然后教它修自己的错——让它往前走一两步,拿屏幕和真实的比对,但只修那些能从真实屏幕推出来的错,否则等于奖励幻觉。

ShellBench 是专门测试 Shell 执行指令的测试机,它包含 106 条命令,如果是直接提示,Qwen2.5-Coder-0.5B 成功执行 52 条,Qwen3-0.6B 是 60 条,WorldTUI 是 80 条;文件回读 13 次测试里,它的成功次数是 9 次,其它那两个模型只有 2 和 3 次。

这个模型的训练,连同几轮改进,一共 75 个 GPU 小时,只需要一张 4090。WorldTUI 量化到 int4 之后 208 MB,能在浏览器里运行。

它离可靠的文件系统还很远。如果是运行常见的命令还行,但如果把命令用新方式组合起来,就会崩。

这件事真正的意思在另一个方向上。Qwen 的 AgentWorld 把七种环境(MCP、搜索、终端、SWE、网页、操作系统、安卓)训进一个模型,明说了"没人训过模型去模拟环境本身";前天的 WildAWM 更直接,用 341 个合成环境对训出一个模型,在 8 个分布外基准上平均涨 10.58 分。

一边把屏幕换成模型,一边把环境换成模型。软件的表层与里层,正在被同一招替换掉。

代价是失败的性质变了:崩溃变成"看起来对的错"。所以作者自己提的那个问题才是唯一要紧的——它到底是维持了一个一致的世界,还是只是在生成像样的终端输出。

原文:simedw.com/2026/10/21/wor…
#Agent #WorldModel #模型即软件
2
0
0
496
Replying to @yibie
1
0
0
308
Replying to @yibie
@yibie 谢谢!
0
0
0
12
Replying to @SimEdw
You can read about it and test it here: simedw.com/2026/10/21/wor…

It's a 208 MB download and runs best in Chrome on a laptop.
0
0
5
206
I’m very opinionated. So it’s nearly impossible for me to hear someone’s arguments and *not* find something I disagree with. (This includes reading things I myself wrote years - or weeks - ago.) And yet the amazing Grant Sanderson @3blue1brown has put out a long, detailed video on the future of mathematics, in which I cannot find a single flaw. I’ll be sending this to every PhD student and postdoc I know, and strongly recommend everyone watch it.

youtube.com/watch?v=LKrwhj…

(Of course I tried to say many of the same things in my conversation with Thomas Koberda. But Grant’s version, unsurprisingly, does an infinitely better job at communicating those ideas!)
31
117
909
73,612
Replying to @AlexKontorovich
@AlexKontorovich @3blue1brown Thanks for posting. I see so many parallels to software engineering and can only assume that, as time goes on, more and more groups will have to face very similar challenges in their industries
0
0
1
408
Very well thought through outline of the future of maths. I see so many parallels to software engineering and can only assume that, as time goes on, more and more groups will have to face very similar challenges
I’m very opinionated. So it’s nearly impossible for me to hear someone’s arguments and *not* find something I disagree with. (This includes reading things I myself wrote years - or weeks - ago.) And yet the amazing Grant Sanderson @3blue1brown has put out a long, detailed video on the future of mathematics, in which I cannot find a single flaw. I’ll be sending this to every PhD student and postdoc I know, and strongly recommend everyone watch it.

youtube.com/watch?v=LKrwhj…

(Of course I tried to say many of the same things in my conversation with Thomas Koberda. But Grant’s version, unsurprisingly, does an infinitely better job at communicating those ideas!)
0
0
0
82