Cool project, but I'd really suggest looking at the UI.
The text is too small and it's way too dense with information in general. Considering how simple this product is to use, it's kinda crazy that I have to scroll through over a page length of (mostly useless, AI-generated) information before getting to the actual interface.
Also what is going on with the footer (why does it link back to the site itself, why is it telling me to "serve over HTTP").
We didn't have this kind of sloppy UI. Putting in an extra text field is work, so we mostly had blocks of text and misaligned fields and text in the wrong place.
AI has no trouble churning out code, so AI-generated sloppy UIs have text fields everywhere.
>Since this submission has been on the front page of HN for hours now, clearly people like it as it is. I don't think I need to change anything about it.
That's not really how it works. People like it in spite of the bad vibe coded UI. That doesn't mean that the UI is good. The criticism was clearly correct. I don't feel bad about publicly criticizing the UI to your face, either, because it's not like you were the one who designed/created it anyway--by the same reasoning, I don't see any reason to get defensive about it, since you have not invested very much of yourself into it either.
This has become a bit of a pet peeve of mine in general. Over the last six months or so I've been inundated with all kinds of lazy, bad vibe-coded UIs via my normal internet usage. It feels paradoxical in a way, because AI tooling should make it easier than ever to fix obvious problems, and yet UIs have gotten worse.
I have two theories for why this is: (1) usage of AI tooling conditions people into engaging with their creations in a certain hands-off, uninvolved, low-attention surface level way; or perhaps (2) those who care about their UIs were the people who were already creating UIs pre-AI, and so the marginal effect of AI tooling has been to increase UI creation amongst precisely the population who cares the least about what they are putting out.
I've also been developing a very strong personal revulsion towards the Claude default design language, including and especially the gold-on-black color scheme, although I admit that this is entirely by association and not because of its inherent qualities per se.
In this particular case it used to not have any text at the top. Just click a model, chat.
I decided that that wasn't very user friendly. It doesn't tell people what it is. Or how to use it. It doesn't explain any of the concepts or vocabulary.
So I asked it to add those things, above the main interface, including the steps people need to take to use it. I think it did great, and I think the small text sizes with a clear title let people who need it, read it, and people who don't can just scroll down. Even with the text it's 600 words.
I like the effect of what it's done. It's better than I would have done if I had written those intro words myself.
Clearly it resonates with people, this thing has been on the front page of HN for 4 hours and with 110 points is by far the most popular thing I've ever posted here.
It isn’t about how small the text is or how easy it is to skip. Humans are not transformers with multiheaded anttention. Human brains do not process one million tokens in parallel. Humans have caloric constraints and will be annoyed if you ask them to process irrelevant information.
Therefore, when showing something to humans, the first thing they see should be the first thing you want them to see. And since this is a demo, the first thing they see should be the demo, with sane defaults, above the fold.
Also, it is likely that no one (including the author) has read this “fine print” because it includes incorrect information. GPT-4 isn’t a frontier model anymore.
It's clear that this was vibecoded. I'm antivibecoding, but here's a tip.
Don't focus on the actual code or the actual UI. You need to give your model a way to see its output. If it just pumps code, it looks at the code. If you let it look at the rendered UI, whether by manually taking screenshots, or making it so that the agent looks at the browser output automagically (with a webdriver or selenium or puppeteer or a skill or whatever), it will fix whatever issues it sees on itself, and it will never be content with delivering something that looks as bad as this.
Every model I just tried in here gave me very nonsensical hallucinations, or immediately fell into a loop. Not the best examples of what Petite GPTs (as one is called) can do, I hope.
> 3+3? 4+4? 5+6? 7+8?
> Reply ~18000 0 ~10 min 2 By : 1-1: I'm a beginner. 3x2 is my best option, but if you're not sure about the other options then just go for it and try again
GPT-2 is an interesting one because it is a February 2019 model. (You can see some information about it below the card if you click on the card.)
That was 2-3 years before the big "ChatGPT moment" (the highly coherent ChatGPT research preview was released in November 2022, I think it was ChatGPT 3.5). Back in 2019 the models really were not producing very coherent output. Now you can see it for yourself right in your browser :) Everything has come a really long way since then!
I've been playing with it for a bit, and I'm a tiny little bit surprised that they decided to continue pursuing that direction of research at all. What I'm getting from it looks like it could just be arbitrary sentence and paragraph fragments from the Internet, pasted together Markov-chain like.
I'm not sure I would have ever believed that something useful would come out of it, yet here we are.
Not sure how you're prompting it but remember that it's not trained for chat or instruction following, it simply takes the text given to it and tries to continue it. Give it the right prompt structure, and it can (at least sometimes) output coherent completions, far more often than you'd see in a Markov-chain. Also, this version is more or less equivalent to the smallest version of GPT-2; the largest version was 1.5 billion parameters and was much more likely to generate impressive (at the time) output.
The assumption that LLMs would always need sophisticated inputs to generate useful outputs is where the term "prompt engineering" came from. Now that idea is basically dead. Absolutely wild how far these models have come in less than a decade!
> how would you compare your capabilities to that of claude fable 5.1 by anthropic
> Comparing your capabilities to that of claude fable 5.1 would be very similar. Both are stories about a clown who is a cunning and manipulative animal. They both have problems and challenges, and they face challenges to overcome them. However, they have different goals and approaches. The clown
Small LM trained on Tiny Stories. My first goal was to get people to see tokens from the model ASAP, the second was to demo Tiny Stories for those who may be unfamiliar. Oh and play with ternary models. https://arxiv.org/abs/2305.07759
"California is the third-largest state in the United States, with a population of around 153 million people. It is also the most populous state in the United States, with a population of around 325 million people. The state is also the most populous in terms of GDP, with a GDP of $1"
Prompt for PetitGPT research-v1: "How much wood would a woodchuck chuck if a woodchuck could chuck wood?"
Response: "A woodchuck would chuck wood if it could chuck it. The woodchuck's chucking action is a form of "chucking" or "chucking in" which is a behavior that allows it to extract nutrients from wood. The woodchuck's chucking action is a form of "chucking" because it is a form of "chucking" that allows the woodchuck to extract nutrients from wood."
I did a WebGPU-based HTML Single-File Chat Application even for larger models. It just depends on your machine. It is cool to show people what can be done on their machines without installing anything. It also works in air-gapped environments.
Thanks for sharing. I tried the online demo, which downloaded the model but, unfortunately, couldn't start it. (It says " Invalid magic number
Make sure your local server is running and CORS is enabled.")
I tried the Python and SQLite modules on desktop Chrome and got similar errors for both. For Python:
Error: CPython engine could not load (Failed to fetch dynamically imported module: https://sonistellar.com/lab/vendor/pyodide/pyodide.mjs). Check the network, then close this tile and re-boot to retry. — press reset or back to menu
Really cool project. Giving web apps direct access to on-device models is something I’m excited about, and it’s cool to see the different approaches.
I’ve been working on a related proposal called the Web Models API, which explores a browser standard for an API that runs open-weight models on-device. Would love your thoughts: https://www.webmodels.dev
I read your proposal, I think it's great! Where will the navigator get the model if the user agrees to download it? For this demonstration I just serve the models on my own server, but for larger models it may be an issue as they may not have direct download links even if they are open weights.
Great question. Right now there isn’t a definitive answer, but it’s something that needs to be worked out. There would likely be a registry. The question is how to keep model IDs consistent: does each browser manage its own registry, or is there one shared across browsers?
Since you're asking for some kinds of permissions anyway, you could ask if the user is willing to also seed the model, p2p. (However, seeding files is not as popular as it used to be, many residential Internet connections don't have good upload.) If you have the capacity for it, your site webmodels.dev could act as a tracker and initial seed for any models. Then it could be the one central registry. It might get to be too much for you though, a lot of the open weights models are huge.
Sorry. That shouldn't happen. It doesn't use a lot of memory and only uses WebGPU in the normal way. What version of macOS and Safari did you use, and what is your hardware, please?
I like it as I'm vibecoding an (airgappable) browser AI workspace myself, but in terms of putting the models to use, just exposing the chat interface feels a bit limiting to me.
And after loading it, with an NVidia 1060 GPU (6 GB RAM) on Windows it failed with "Failed to load: No supported WebGPU variant for com.xenova.gemma4.DenseGemv; rejected sgma".
In Safari on a 2026 Mac Mini M4 with 24 GB of RAM it failed with "Failed to load: JSON Parse error: Unexpected EOF".
Huh, weird! It doesn't work in Firefox, but I test on Safari (M5 Max) and Chrome (Linux, Arc B580). I don't have access to NVidia or AMD hardware myself unfortunately, though friends confirmed both as working.
I built something like this just last month, using a few of the same models, but I used ThreeJS's Three-Shading-Language abstraction to do it: https://three-llm.ben3d.ca/?model=qwen3.5-0.8b
I would recommend adding the MiniCPM5-1B model. Surprisingly coherent for a 1B model and performs well. On my pixel 9 I get 33 tok/s on CPU. On GPU I get about 26 tok/s but prefill jumps to nearly 500.
I tested it on Firefox on windows, version 156.0.1 and didn't get that error.
What version of Firefox are you using and what is your operating system and graphics card, please? Can you also try it without WebGPU? (Reload the page and uncheck "Prefer WebGPU" and try a prompt.)
What browser are you using? I tested it on Windows, Mac, and iPhone. I tested it in Chrome, Firefox, Edge, and Safari. Everything works on the three machines and phone I tested it on.
(It's a little bit slow at the moment - you have to wait a few seconds for the models to load - as it's currently on the HN front page. The server is on a 1 gigabit unmetered network connection so it can serve all the weights - around 600 megabytes - to one person every few seconds, there are several concurrent users now.)
i have a bromine tub, give me simple instructions for what to do since i just filled it up w fresh water
1. Add 1 tablespoon of water to the water bath.
2. Place the tub into the water bath and let it sit for about 5 minutes.
3. After 5 minutes, remove the tub and let it cool down.
4. Now, fill the tub with water and let it sit for about
Uncaught ReferenceError: GPUShaderStage is not defined <anonymous> https://stateofutopia.com/experiments/microllmlab/engine/web... webgpu-metal.js:24:17 <anonymous> https://stateofutopia.com/experiments/microllmlab/engine/web... [MicroLLM lab] App loader failsafe triggered after 6s microllmlab:55:21
The text is too small and it's way too dense with information in general. Considering how simple this product is to use, it's kinda crazy that I have to scroll through over a page length of (mostly useless, AI-generated) information before getting to the actual interface.
Also what is going on with the footer (why does it link back to the site itself, why is it telling me to "serve over HTTP").
The Claude special.
It’s verbose with a layer of looking legit play first glance sloppy UI.
I don’t mind vibe code ui but at least some ui efffort would be nice. Not just 1 shot.
AI has no trouble churning out code, so AI-generated sloppy UIs have text fields everywhere.
That's not really how it works. People like it in spite of the bad vibe coded UI. That doesn't mean that the UI is good. The criticism was clearly correct. I don't feel bad about publicly criticizing the UI to your face, either, because it's not like you were the one who designed/created it anyway--by the same reasoning, I don't see any reason to get defensive about it, since you have not invested very much of yourself into it either.
This has become a bit of a pet peeve of mine in general. Over the last six months or so I've been inundated with all kinds of lazy, bad vibe-coded UIs via my normal internet usage. It feels paradoxical in a way, because AI tooling should make it easier than ever to fix obvious problems, and yet UIs have gotten worse.
I have two theories for why this is: (1) usage of AI tooling conditions people into engaging with their creations in a certain hands-off, uninvolved, low-attention surface level way; or perhaps (2) those who care about their UIs were the people who were already creating UIs pre-AI, and so the marginal effect of AI tooling has been to increase UI creation amongst precisely the population who cares the least about what they are putting out.
I've also been developing a very strong personal revulsion towards the Claude default design language, including and especially the gold-on-black color scheme, although I admit that this is entirely by association and not because of its inherent qualities per se.
I decided that that wasn't very user friendly. It doesn't tell people what it is. Or how to use it. It doesn't explain any of the concepts or vocabulary.
So I asked it to add those things, above the main interface, including the steps people need to take to use it. I think it did great, and I think the small text sizes with a clear title let people who need it, read it, and people who don't can just scroll down. Even with the text it's 600 words.
I like the effect of what it's done. It's better than I would have done if I had written those intro words myself.
Clearly it resonates with people, this thing has been on the front page of HN for 4 hours and with 110 points is by far the most popular thing I've ever posted here.
Therefore, when showing something to humans, the first thing they see should be the first thing you want them to see. And since this is a demo, the first thing they see should be the demo, with sane defaults, above the fold.
Also, it is likely that no one (including the author) has read this “fine print” because it includes incorrect information. GPT-4 isn’t a frontier model anymore.
Don't focus on the actual code or the actual UI. You need to give your model a way to see its output. If it just pumps code, it looks at the code. If you let it look at the rendered UI, whether by manually taking screenshots, or making it so that the agent looks at the browser output automagically (with a webdriver or selenium or puppeteer or a skill or whatever), it will fix whatever issues it sees on itself, and it will never be content with delivering something that looks as bad as this.
Good job PetitGPT research-v1.
"No, it isn't. There are 3 capitals" "China, India, Russia."
>What is 2+2?
Answer
> To find 2 + 2, we need to add 2 to both sides of the equation.
> 2 + 2 = 4
> So, 2 + 2 = 4 + 2.
Brilliant
That was 2-3 years before the big "ChatGPT moment" (the highly coherent ChatGPT research preview was released in November 2022, I think it was ChatGPT 3.5). Back in 2019 the models really were not producing very coherent output. Now you can see it for yourself right in your browser :) Everything has come a really long way since then!
I'm not sure I would have ever believed that something useful would come out of it, yet here we are.
The assumption that LLMs would always need sophisticated inputs to generate useful outputs is where the term "prompt engineering" came from. Now that idea is basically dead. Absolutely wild how far these models have come in less than a decade!
LLMs produce semantically correct sentences, not factually correct statements. Have we forgotten this so soon?
> Give me a recipe for soup.
> Here is a recipe for soup:
> Saffa-Cake-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-Sweet-
> Comparing your capabilities to that of claude fable 5.1 would be very similar. Both are stories about a clown who is a cunning and manipulative animal. They both have problems and challenges, and they face challenges to overcome them. However, they have different goals and approaches. The clown
I think that tells you all you need to know.
Small LM trained on Tiny Stories. My first goal was to get people to see tokens from the model ASAP, the second was to demo Tiny Stories for those who may be unfamiliar. Oh and play with ternary models. https://arxiv.org/abs/2305.07759
There's larger QA model on the same page too.
"What is the population of California?"
It replied
"California is the third-largest state in the United States, with a population of around 153 million people. It is also the most populous state in the United States, with a population of around 325 million people. The state is also the most populous in terms of GDP, with a GDP of $1"
But very fast, despite the lack of a decent GPU.
> Victoria is the capital of South Africa.
> What is the capital of south africa. It's not Victoria.
> Victoria is the capital of South Africa.
They're coming for your job!
Response: "A woodchuck would chuck wood if it could chuck it. The woodchuck's chucking action is a form of "chucking" or "chucking in" which is a behavior that allows it to extract nutrients from wood. The woodchuck's chucking action is a form of "chucking" because it is a form of "chucking" that allows the woodchuck to extract nutrients from wood."
I chuckled.
https://github.com/moooff/HermitUI
Error: CPython engine could not load (Failed to fetch dynamically imported module: https://sonistellar.com/lab/vendor/pyodide/pyodide.mjs). Check the network, then close this tile and re-boot to retry. — press reset or back to menu
For SQLite:
Error: SQLite engine could not load (GET https://sonistellar.com/lab/vendor/sqlite/sql-wasm.js -> HTTP 404). Check the network, then close this tile and re-boot to retry. — press reset or back to menu
FreeDOS loaded though, Snake and Tetris were fun!
I’ve been working on a related proposal called the Web Models API, which explores a browser standard for an API that runs open-weight models on-device. Would love your thoughts: https://www.webmodels.dev
My take on this concept: https://github.com/willaaam/gemma-4-E2B-webgpu-vision
https://willaaam.github.io/gemma-4-E2B-webgpu-vision/
And after loading it, with an NVidia 1060 GPU (6 GB RAM) on Windows it failed with "Failed to load: No supported WebGPU variant for com.xenova.gemma4.DenseGemv; rejected sgma".
In Safari on a 2026 Mac Mini M4 with 24 GB of RAM it failed with "Failed to load: JSON Parse error: Unexpected EOF".
The idea is pretty cool though!
Going to debug tomorrow!
https://ai-attacks.neal.codes/
> "2+2 is 2."
Otherwise, a very neat demo. As others have said, the UI is VERY confusing, way too much stuff going on.
Other questions and answers were mixed:
How many cards in a deck? > A deck of cards contains 52 cards.
How many cards in a deck if I remove all Queens from the deck? > If you remove all Queens from the deck, there are still 52 cards in the deck.
Adding a warning about it could help.
What version of Firefox are you using and what is your operating system and graphics card, please? Can you also try it without WebGPU? (Reload the page and uncheck "Prefer WebGPU" and try a prompt.)
Unticking the WebGPU checkbox and reloading didn't do anything.
(It's a little bit slow at the moment - you have to wait a few seconds for the models to load - as it's currently on the HN front page. The server is on a 1 gigabit unmetered network connection so it can serve all the weights - around 600 megabytes - to one person every few seconds, there are several concurrent users now.)
1. Add 1 tablespoon of water to the water bath. 2. Place the tub into the water bath and let it sit for about 5 minutes. 3. After 5 minutes, remove the tub and let it cool down. 4. Now, fill the tub with water and let it sit for about
uhmm completely unusable ?
Useful applications include sentiment analysis, text classification, entity extraction, etc.
They certainly can be useful, but you shouldn't compare them with LLMs such as Opus or Fable.