WorldTUI: I trained a 360M model to pretend to be a terminal

108 points by alphax314 5 hours ago on hackernews | 44 comments

obilgic | 2 hours ago

There was a whole fake gui OS with similar concept right

prodigycorp | 2 hours ago

athropic had an experiment that did exactly this. we need more experimentation in this space.

andai | an hour ago

VibeOS - Fully Hallucinated Operating System

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

htoz1 | 2 hours ago

Where is the point of this project if i have terminal ?

dotancohen | 2 hours ago

Because it was there

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.

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.

good-idea | 2 hours ago

because curiosity is the most fun of virtues!

aghuang | an hour ago

Was thinking the same thing. I just run my usual terminal and get to work.

antonvs | an hour ago

This will allow you to delete your terminal app and, eventually, all other binaries in your system!

wartywhoa23 | 30 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, but for geeks.

Clouds of smoke, weeeeee!

oilkillsbirds | 2 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

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...

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...
It would be interesting to expose this on the internet. I wonder what the scrapers etc… would do with it.

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?

serje1480 | an hour ago

yjftsjthsd-h | 2 hours ago

Wait, how did it `sleep 3`? I thought LLMs didn't have a concept of time

peder | an hour ago

It’s still rendering frames constantly, no? So it just figures the next X frames are all doing nothing?

simedw | an hour ago

Normal only keypresses invoke the next ”frame”. There is a sleep token that the runner could use to indicate that time is moving.

sprobertson | an hour 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.

yjftsjthsd-h | an hour 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.

skohan | an hour 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.

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?

gr_norm | an hour 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.

skohan | an hour 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?

antonvs | an hour 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...

hnlmorg | an hour 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.

skohan | an hour 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.

skohan | an hour 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.

winrid | an hour 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.

latentsea | 31 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?

andai | an hour 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...

simedw | an hour ago

I haven’t run extensive tests yet, but larger models also get better at memory.

treetalker | an hour 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.

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.
I think the toolcalling should be system prompts then the agent is the userspace
That's a whole other kettle of trout. Maybe still worth a go mind.

On thin that would be useful is an entirely new permission system for files to allow for users and agents acting for users.

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)

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

donperignon | 46 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.

gitowiec | 33 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

odo1242 | 16 minutes ago

No, the model is simulating the entire TUI, not just terminal commands. It also actually is that slow.

ohadpr | 9 minutes ago

Very cool to do this as a Terminal!

I did it for web apps last year, basically a web server that feeds all requests into an LLM.

https://www.ohad.com/blog/voidware/