Local Vibe Coding
“Vibe Coding” is a new term that means you create code by describing what you want in normal English. You explain to an AI what the “vibe” is you are going for and wait for the AI to do the coding for you.
For a while the only was to try vibe coding was to use one of the large cloud based paywalled AI systems. Recently I have been experimenting with some locally runnable code models that will work on a 24 GB consumer level GPU (4090 or 5090). Visions of Chaos has always been about getting all of these AI systems running locally without needing any paid for cloud subscriptions.
llama.cpp to the rescue
I have added support for llama.cpp into the latest versions of Visions of Chaos. llama.cpp runs various LLM models locally on your GPU.
Testing The Coder Capabilities
Here are some examples created using the various models. The basic prompt was to create a javascript app in a single html file. This means it can easily be shared and opened in any web browser.
If you want to see the code the AI generated for any of these examples, open them, right-click and view source, or right-click the links and download the html file.
gpt-oss:20b
The first model I tried in llama.cpp was gpt-oss:20b. This model is one of the newer “chain of thought” models. This means when you have asked it a question the AI does multiple thinking passes to process your prompt more deeply. In this way it can (in theory) give better quality answers to your prompts.
Clocks Something simple to start. “write me an html page. the contents of the page should be a clock that shows the current hour, minute and seconds in a hand drawn style. there can also be a hand drawn classic clock with hour and minute hands to also show the time that way.”
7 Segment Display Clock A 7 segment display. This took a few extra prompts for appearance, but got there in the end. Notice how the segments have that slight fade out at the edges like a real clock does from the LED fading out behind each segment.
Tic-Tac-Toe Something with simple smarts. “write me an html page that plays a game of tic tac toe. the computer should play strategic moves and not just random choices. have a restart button when the game ends. keep track of the scores for win, lose and draw games.”
Reversi More complex. The AI stated that the black strategy was to always make the move that takes the most pieces, but it still beat me just with that. Only this prompt. “write me an html page. it should be the game reversi or othello. the computer should be the black player. who goes first should be random.”
Connect Four I used to be really good at Connect Four and could only be beaten by other pro players. Nothing to be proud of as it was just the result of way too many games while drinking way too much at the pub. This AI result plays well and beat me. Although it has been years since I played seriously. The AI coded a very good strategy. “write me an html page. it should be a game of connect four with the human vs the computer. the computer should use strategies to beat the average player.”
Maze How about a maze generator. This one had a few extra prompts to change colors and layouts.
“write me an html page that creates and solves mazes. size the maze to fit the window. give options for how many pixels each maze cell is.”
Solving My Decade Old Problem
This is where it really convinced me it was helpful. For many years now I have on and off tried to solve the problem of searching for interesting cellular automata. See this post for all the details. Once I had the gpt-oss:20b model setup I asked it to code me a search utility for “interesting”. After a few hours over two afternoons it had coded two javascript apps for 2D and 3D CA searching that do find interesting rules. When you have spent 10 years on an issue and AI solves it in a few hours it really is mind blowing and shows how that when it works it can be very useful.
Gemma4 26b
This was the best from Google for a short time before China released Qwen 3.6.
Traffic Dodger A simple car game.
Neon Breakout Block breaker game.
Starship Defender R-Type horizontal shooter clone. Try the extreme difficulty if you find it too easy.
Tank Wars An AI update of my old TankWar game.
Retro Worm Game The classic worm eats the food and grows game.
Sudoku AI got this working first go. A few extra tweaks helped get it to this stage.
Qwen 3.6 35b
Reversi another Reversi from the Qwen3.6-35b model.
Mandelbrot Zoomer A realtime zoomer into the Mandelbrot set. Click and hold the point you want to zoom into. Limited precision so it does not go too deep.
2D Gravity Gravity simulator that handles 25,000 without a slow down.
Qwen 3.6 27b
Although smaller than 35b, the 27b model is supposedly better at vibe coding tasks.
Chess. This one took 4 minutes 30 seconds on a 4090 GPU. A complete working chess app with an AI to play against. This was the first result without needing any further prompts.
Paint. Basic paint program.
Hermes using Qwen 3.6 27b
Hermes is an agent that sites on top of llama.cpp. It acts as a multi skilled agent. What this means for vibe coding is it can do multiple coding passes itself with basic testing and saves the output html file itself, so it saves you the copy/paste of code into a new html file when the model is finished coding. You can prompt it and walk away as it does multiple passes to finish the task. It is still not perfect and even after multiple passes and tests it can still generate code that crashes or fails, but it does catch most of the obvious errors itself. Hermes is also installed with llama.cpp in Visions of Chaos so you can try it.
Forest Walk. 3D textured environment.
Video Feedback. Simulating video feedback effects you get when pointing a camera at the screen showing its output.
Roguelike. Can you survive all 10 levels of the Dungeon of Echoes? Tip: remember to equip the weapons and armor you pickup.
Basic Flight Simulator. 3D flight simulator.
Space Invaders. The classic arcade machine game.
Mini Golf. 9 holes of increasing difficulty.
Solitaire. The classic solo card game.
Here is a tutorial for chatting and vibe coding with Visions of Chaos. All local and private and free.
A Better Template Prompt for Hermes using Qwen 3.6 27b
If you use /goal at the start of your Hermes prompt it will make it work harder on the prompt. By default it will take up to 20 passes to complete the task.
The following prompt is what I have been using now…
/goal
write me a javascript app in a single html file.
it should -insert a short or long description of what you want here-
search the web for extra info or example code to help.
write a fully detailed implementation plan.md before starting.
follow the plan exactly when implementing the actual code and test and verify each part of the plan as you go. you can use the vision model to help confirm the app works as expected.
add debug stats to catch any errors and show the errors in a text window so they can be copy pasted into here if need be.
Asking for a plan allows the AI to think about and plan the workflow more thoroughly before coding starts.
It will take a lot longer to complete, but it generally does a much better job after researching the topic online and planning the code before starting.
Here are some examples of what that prompt helped code.
Tropical Fish Aquarium. Left click and drag to rotate. Mouse wheel to zoom.
Wa-Tor. 5 species enhancement of the basic fish vs sharks simulation.
1942. The arcade plane vertical shooter game.
SPH Fuild Sim. Smoothed Particle Hydrodynamics simulation showing Rayleigh-Taylor instabilities (the fingering/mushroom patterns that happen when a heavier/denser fluid flows down through a lighter/less dense fluid. Fluid simulation is notoriously difficult to program a stable system in. Hermes was able to repeatedly change parameters and “look” at the results with the vision tool so it could then continue to tweak settings until it reached a working solution. This did need more manual extra prompts to tidy up and it did help that I had coded these systems previously as I could tell the AI what needed changing with specifics.
Lava Lamp. 2D simulation of a lava lamp.
Root Finding Fractals. Newton fractal and related formulas and methods. Mouse wheel to zoom.
Ecological Sim. Various species fight for survival.
Wave Tank. Water flowing and sloshing inside and oscillating tank. This one took a lot of attempts and extra prompts to tweak it into what I was after. Finding that sweet spot for fluid simulation parameters to get the desired result is never easy. This was an attempt to simulate one of these wave tanks. Not too bad a job.
Wave Tank 2. Increasing the particle count of the last simulation from 8,000 to 25,000. No longer 60fps, but not bad for a single threaded javascript app.
Wave Tank 3. Adding floating objects to v1 of the wave tank. This one could do with more prompts to fine tune it a bit more.
Here is a tutorial specifically about using the goal command in Hermes.
3D Dungeon Crawler. Full 3D RPG Dungeon Crawler. This one took around 20 prompts to fine tune the mechanics and details, but it turned out very good.
Texture Generator. Node based texture generator. One prompt to make it all work, another 2 prompts for the examples dropdown.
Periodic Table. Periodic table of the elements with clickable elements to show the atomic structures.
Evolved Creatures. 3D evolved creatures prompting for a simulation like Karl Sim’s Evolved Virtual Creatures.
Evolved Creatures v2. The version 1 seemed to create the snake like creatures that always crawled the furthest distance. For this version I asked the AI to make sure each sphere in a creature to be joined to at lease 2 other spheres. This stops single link chains occurring.
Evolved Creatures 2D. 2D version of evolved creatures. Each creature is made up of nodes connected by solid bones and springs. The creatures that travel the most distance evolve into the next generation.
Karl Sims Genetic Art. Genetic art based on the work of Karl Sims.
NEAT Genetic Art. Genetic art based on NEAT (NeuroEvolution of Augmenting Topologies).
Node Synth. Node based sound synthesizer.
Here is another tutorial for using the Qwen3.6 27b model in Hermes.
Solar System. Solar system simulation.
Evo Racing. Evolving neural network controlled cars to drive around a track.
Genetic Art. Asking the models to make more complex images compared to the Karl Sims and NEAT genetic art results shown above.
Falling Sand. Simulation of falling sand, water, lava, etc.
Using AI as a Code Reviewer
My next test was to give it some of my old code and see if it can help. I gave it my complete code for 2D SPH (Smoothed Particle Hydrodynamics) fluid simulations and asked if it could review the code and recommend any ways I could speed up the code.
It went off “thinking” for a few minutes and then gave me a surprisingly detailed result with ideas from simple code tweaks to reorganizing how data was aligned in memory.
Using just the simple tweaks got the code speed down from approx 13 seconds per frame to 5 seconds per frame. Those fixes were very basic “derrr, I should have seen that” type fixes, but this is code that I have spent a lot of time going over trying to improve the speed of in the past. 3 minutes with the AI and it is now almost 3 times as fast.
I did try giving the AI full control and asked it to make all the changes it thought would help. The new rewrite of the code was a mess that had more compiler errors than help.
I think when using these coder systems locally you want to minimize the code it is working on or ask it exact specifics as you go. If you are a coder already it helps. Then you can ask it more specific questions like “I have traced the slowest performance of this code to the DoTheLongHardParts function. Can you look at it and see what you can suggest to improve speeds”?
Updating Web Design
For a while now I wanted to make some changes to my website. Specifically I wanted these expandable/collapsible tables that the Visions of Chaos page now has.
Before the collapsible tables the user had to scroll down a long way to get to the download link as there were so many modes and user comments listed.
With only a few passes of my CSS layout with GPT-OSS:20B I had the tables I wanted collapsible, the new blue colors, and the more rounded tables. I did still need to do a few manual tweaks, so it does help if you know the syntax the AI is writing.
It Is Not Perfect
Vibe coding is not perfect. Especially when running on the limited VRAM of a local GPU, but it is amazing for what it can do. The way it can get 95% of the app I ask for and not have a single syntax error is amazing. It may need a few extra prompts to tidy up issues and bugs.
But, like all AI, it will never say “sorry, I don’t know what that is”. Rather it assures you it can help and happily hallucinates code that works, but misses the point of what it is supposed to do.
Try It Yourself
If you have a capable 24 GB GPU (3090, 4090 or 5090) then I highly recommend you try it. It is a virtual zero cost coder you can get advice from at any time.
Download Visions of Chaos and install the llama.cpp mode. Use the Qwen3.6 27b model for best results. Ask it whatever you like. Feed it some code or text to review. Get it to write you a simple or not so simple game.
A tip for getting started. JavaScript apps in a single html file are good to get used to vibe coding. Try using text like the following to prompt…
Create me a javascript app in a single html file.
It should -describe what you want it to code here-
Include a debug ability that will catch and display errors or crashes as text so I can copy/paste the errors to help debugging.
For the description, be as explicit as you can. If you want your app to have a specific look, describe it. If you want some other features describe them. You can always start with a very vague description and reprompt to improve the results, but if you spend a few minutes describing what you want it can get there quicker.
For more complex apps then the request for debug text can really help. JavaScript apps will just hang when they have an error. That does not really help the AI fix the problem. “it crashes when I click the XYZ button” is not as helpful as being able to copy/paste a stack trace for the AI to see exactly what went wrong.
Jason.

https://sleepingrobots.com/dreams/stop-using-ollama/
Thanks for the tip. I have ditched Ollama and LM Studio in Visions of Chaos and added support for the native llama.cpp for the next release.
please please write another post describing how it solved the “interesting CA” problem! I remember your original post and would love to understand the approach it used 🙂
See the bottom of this post for links to the search apps you can run and right-click view source.