WorldTUI: I trained a 360M model to pretend to be a terminal
100 points by alphax314 6 hours ago | 41 comments

gitowiec 5 minutes ago
BUG: Running in Firefox makes every keypress a slow motion show. It decodes every keypress instead of sending a command with Enter key
reply
andai 2 hours ago
>I used Qwen2.5-Coder-0.5B as the starting point. I needed a small model to get close to realtime performance. Being a coding model, it had also already seen plenty of CLI usage.

Interesting. I wanted to ask, how that model compares with the fine-tuned version, but I just saw the author provided benchmarks. Interesting that fine-tuning improved the memory so significantly, wouldn't have expected that.

Though, on second thought, I had an experience where I was able to, as a human, fine-tune my memory beyond what I previously thought was possible!

Reminds me of one of my favorite jokes.

Excuse me, can you tell me how to get to Carnegie Hall?

—Practice, man... Practice...

reply
treetalker 34 minutes ago
> … I had an experience where I was able to, as a human, fine-tune my memory beyond what I previously thought was possible!

Please elaborate.

reply
simedw 58 minutes ago
I haven’t run extensive tests yet, but larger models also get better at memory.
reply
nico 24 minutes ago
Very very cool! Impressed that it can be done with only fine tuning

On a very similar theme, I recently built a “lossy git”, which stores your code by training a neural network, then it generates the code back to you on checkout

* web demo: https://nicobrenner.github.io/lossy-git/demo.html

* cli version: https://nicobrenner.github.io/lossy-git/

The web demo runs entirely on the browser, both the version control and the neural network training/inference. You can commit and checkout both images or code - you can also paste/“upload” your own images, no server requests (everything clears from the page on reload)

reply
simedw 6 minutes ago
That's very cool project. I read this blog post a few days ago about one way to look at memory encoding in models https://alexwang.ai/posts/associative-memory/ that you might find relevant
reply
Lerc 38 minutes ago
I wonder how much a small model could do if it had a tool calling API for a filesystem, an embedded busybox, and a single output token for 'emit what busybox would do here'. Then presumably the model parameters could learn everything that diverges from what busybox can handle.
reply
alex7o 52 seconds ago
I think the toolcalling should be system prompts then the agent is the userspace
reply
donperignon 18 minutes ago
I tried it and is not working remotely as close as the demo gif. It keeps telling me that "test1" folder that I want to create already exists (not true), then letting me do "mkdier test2" (sic) but then the folder is not there when ls. I mean all its expected, this has no state, follow no rules and is making up things from the current context, but is not as "magical" as I thought when watching the demo.
reply
oilkillsbirds 3 hours ago
Very cool. Fun project. I feel like there’s a wide field to be explored once you understand fine tuning good existing models
reply
__mp 2 hours ago
It would be interesting to expose this on the internet. I wonder what the scrapers etc… would do with it.
reply
obilgic 3 hours ago
There was a whole fake gui OS with similar concept right
reply
andai 2 hours ago
VibeOS - Fully Hallucinated Operating System

https://www.youtube.com/watch?v=z3pV6FHvcgM

reply
prodigycorp 2 hours ago
athropic had an experiment that did exactly this. we need more experimentation in this space.
reply
psandor 2 hours ago
Reminds me of this project from Microsoft. A Quake II “simulation” model where the whole application was just a model.

https://www.microsoft.com/en-us/research/articles/whamm-real...

reply
soulofmischief 2 hours ago
These are called world models, which is why the project is called WorldTUI. For another example, take a look at Google's recent Genie models. https://deepmind.google/blog/genie-2-a-large-scale-foundatio...
reply
yjftsjthsd-h 2 hours ago
Wait, how did it `sleep 3`? I thought LLMs didn't have a concept of time
reply
peder 2 hours ago
It’s still rendering frames constantly, no? So it just figures the next X frames are all doing nothing?
reply
simedw 54 minutes ago
Normal only keypresses invoke the next ”frame”. There is a sleep token that the runner could use to indicate that time is moving.
reply
sprobertson 2 hours ago
from the post:

Time is an input too. If nothing is pressed, the model gets a WAIT token with a duration instead of a key, which is how snake keeps moving on its own.

reply
yjftsjthsd-h 2 hours ago
That seems as likely as anything, but that just moves the problem to counting, doesn't it? The model gets the duration, but I was under the impression LLMs struggled with the arithmetic that would make that useful.
reply
skohan 2 hours ago
Idk about Qwen 2.5 Coder that this is based on, but modern models don't struggle with arithmetic. I see Qwen 3.8 do long-hand math in thinking traces (ie. it outputs 17+35+12=64 in the thinking trace) so I would imagine this is something they train into the model specifically. Sometimes it creates and runs a simple python script to check its work.
reply
thorum 2 hours ago
I regretfully suspect this actually is the future of UI. You just need smart local models running fast enough to keep the framerate high, but that’s inevitable in the long term, isn’t it?
reply
latentsea 2 minutes ago
What if we're really just living in a world model? How big of a GPU is required to run the universe I wonder?
reply
skohan 2 hours ago
We had decades to work on making software more performant, but instead most users' space-age 2nm chips spend most of their time running Javascript because it was faster to make software that way.
reply
winrid 48 minutes ago
even my ten year old laptop browses the web fine ^_^

If I had to complain about any site/app it'd be datadog... each tab uses like 1gb in firefox.

reply
gr_norm 2 hours ago
Why would you do that instead of having the model do the task you're using the UI for? It could generate UI widgets on-the-fly as needed to take richer inputs.
reply
skohan 57 minutes ago
It might be fine for one-off applications, but it's incredibly inefficient for something that has to be done over and over.

Why would you use a GPU and gigabytes of VRAM running a non-deterministic process for something a program can do on the CPU in milliseconds with kilobytes of memory?

reply
hnlmorg 42 minutes ago
Probably for the same reasons most of our desktop applications have become slow Chromium instances consuming multiple GBs of RAM, each:

It’s cheaper to hire developers, and quicker to ship software. The user experience be damned.

reply
skohan 33 minutes ago
The logic here is a bit different. Consumer software is slow because it's the user paying for the compute to run those bloated Electron apps. Unless we're all running local inference in the future, it would be the vendor paying for the compute to run the AI-based UI.

Of course they would pass that along to the consumer, but nobody is going to pay token-based pricing for something that used to be free and ad-supported, or a cheap monthly subscription.

reply
antonvs 43 minutes ago
I don't really disagree, but... why do we use Javascript for so many UIs? Badly designed web pages with ads can easily use gigabytes of RAM.

Edit: oh, I saw you wrote a related comment after I posted this. So you already know that direct LLMs for UIs are all but inevitable...

reply
prodigycorp 2 hours ago
Wow! This this reminds me of when we tried doing this with gpt 3 and.. it worked!

The tmux thing had me confused for a moment until i realized it was emulating tmux. Super fun. Is the model window width aware?

reply
wkilbride 11 minutes ago
[flagged]
reply
luckystarr 41 minutes ago
[dead]
reply
simedw 2 hours ago
[flagged]
reply
htoz1 3 hours ago
Where is the point of this project if i have terminal ?
reply
wartywhoa23 2 minutes ago
The point is riding the bandwagon that drags a trailer with a couple of power plants, a small lake of water and a gold reserve in it.

Not unlike that American tractor pulling, geek version.

reply
YmFzZTY0ZGFkZHk 2 hours ago
Sometimes it's just fun to do something absurd because you can. This is one of the reasons software is exciting.
reply
mehmetoguzderin 2 hours ago
Terminal world models have many applications, but empirical observation of successful pretraining or fine-tuning can be significant for encapsulating from rather expensive Bash traces, such as ones obtained from systems with scarce accelerators, etc.
reply
aghuang 2 hours ago
Was thinking the same thing. I just run my usual terminal and get to work.
reply
good-idea 2 hours ago
because curiosity is the most fun of virtues!
reply
antonvs 37 minutes ago
This will allow you to delete your terminal app and, eventually, all other binaries in your system!
reply
dotancohen 3 hours ago
Because it was there
reply