Built Sep 24, 2026 · two real apps · every number from my own runs

How to Build Self-Evolving 3D Games With Jev AI

Here's how to build self-evolving 3D games with Jev AI, one simple prompt at a time.

Imagine a game that studies how you play, and then builds new enemies designed to beat you.

It changes their legs, their armor and their attack after every single wave.

I'll also show you a planet you can talk to, and it rebuilds itself while you watch.

Jev makes all of those decisions in about one second, and the version I used is free.

Stick around, because I'm giving you every prompt I used, step by step.

Play. Jev studies you. The game rebuilds itself.You playone wave ofa 3D gameThe gamewrites a noteabout how you foughtJev decides8 things in~1.1 secondsIt evolvesnew enemies,new worldEvery pick comes with a number that says how sure Jev is
The actual sources ↓
§1Watch it evolve first

Wave one is easy. Then Jev studies you.

the real app on my machine · live Jev calls · recorded as it ran

What you're watching: my drone circles the island and clears wave one. The wave ends, Jev reads how I fought, and the cards show what it picked for wave two: burrowers, a front shell, acid spit and a lava world.

§2I · The problem

The Same-Wave Problem

Most games and apps do the same thing every timeSame enemiesevery waveYou learnthe patternIt gets easyno surprisesYou get boredand leaveNothing changes, so nothing keeps you
THINKING IT? "Can't I just make the game harder?"

Harder is the same thing, just faster.

Jev changes what comes at you, based on how you play.

§3II · How it works, in simple words

The game writes a note. Jev makes the calls.

One wave, one note, one Jev callYou playone waveThe gamewrites a note"kills from 14 m"Jev decides8 thingsin ~1 secondThe worldrebuildsnew enemiesJev picks from your options and says how sure it is
§4III · Exactly how it works, step by step

One call. Eight decisions. About a second.

My real numbers from 41 waves1Jev call per wave8decisions per call1.1 smiddle answer time$0free Jev modelEvery answer came back in one go
One wave. One note. One Jev call. A new enemy.
§5The note Jev reads

This is the actual note Jev reads

a real Jev call from my log · replayed at reading speed

What you're watching: the real note my game wrote after one wave, word for word, and the eight answers Jev sent back in 1096 ms.

§6Play like a sniper

Hide far away, and they tunnel to you.

the real app on my machine · live Jev calls · recorded as it ran

What you're watching: my autopilot plays like a sniper and only shoots from far away. Jev answers with burrowers: they dig under the floor where bullets can't reach, then pop up close.

§7Play like a brawler

Fight up close, and it changes the plan.

the real app on my machine · live Jev calls · recorded as it ran

What you're watching: the autopilot charges in and fights up close. When the note says the player is struggling, Jev switches to a green meadow that heals, slows the enemies down and hands over a triple-shot gift.

§8Six play styles

Same questions. Different player. Different enemies.

What Jev built for each play styleSniper→ burrowers + shellBrawler→ spiky explodersCircler→ gliders + shellStands still→ runners + shellLosing→ meadow + slowerEdge hugger→ burrowers + shell18 tests · every style got the same answer 3 times out of 3
§9App two

Now talk to a planet.

the real app on my machine · live Jev calls · recorded as it ran

What you're watching: six sentences typed into the planet app. Each one is a single Jev call with six questions, and the planet animates whatever Jev picked: mountains, a meteor, forests, glowing cities, rings and a moon, volcanoes with a red sky.

§10It knows chat from commands

Just chatting? Nothing moves.

the real app on my machine · live Jev calls · recorded as it ran

What you're watching: three sentences. "What time is it" scores 18% and "this looks amazing" scores 30%, so the planet ignores both. "Freeze the whole planet" scores 93%, and the ice rolls in.

It isn't only trying to beat you. It's trying to keep the game fun.
§11Leave it alone

Stop talking, and the planet lives on its own.

the real app on my machine · live Jev calls · recorded as it ran

What you're watching: nobody is typing. Every few seconds the planet sends Jev its own stats and recent history, and Jev picks what nature does next. The age jumps forward millions of years each time.

§12Old way vs new way

Hundreds of rules, or eight questions

The old way vs the Jev wayOLD WAY100s of rules✕ Write if-this-then-that by hand✕ Every wave plays the same✕ Players learn it and leave✕ Changes mean rewriting code✕ Chat AI is slow for thisNEW WAY8 questions✓ Write a plain note about the player✓ Ask Jev 8 questions at once✓ Enemies change every wave✓ About one second a call✓ Free Jev model, no API keyDescribe the player. Let Jev pick. Build what it picks.
§13Before you start

Three things, and no API key

What you needClaude Codewrites all the codeNode.jsruns a tiny serverJev (free)jev-1.13-free · no key9 promptspaste them in orderThe free Jev door is OpenCode Zen, and it needs no account
§14Step 1 · The bridge

Step 1: Build the bridge to Jev

PROMPT 1paste into Claude Code
Make a folder called jev-worlds and work inside it.
Write a tiny Node server called server.mjs, with no npm packages, on port 8088.
It does two things:
1. It serves the files in this folder as a website.
2. It has one route, POST /jev, that takes { state, questions } and forwards it to Jev, the free decision model, at https://opencode.ai/zen/v1/systemone with the body { model: "jev-1.13-free", state, questions }. No API key is needed. It returns Jev's answer to the browser.
Retry twice if Jev is slow, and save every decision to decisions.jsonl.
Then test it for real: send the state "A player keeps sniping from far away" with one choice question, "counter", with the options rushers, shielded and swarm. Show me Jev's answer.
real Claude Code run, replayed at reading speed · the tool calls and Jev's answer are from the log

What you're watching: prompt 1 going into a brand-new Claude Code with no setup. It writes the server, starts it, and asks Jev its first real question. Done in 52 seconds.

§15Step 2 · The arena

Step 2: Build the 3D arena

PROMPT 2paste into Claude Code
Build a 3D arena shooter in evolve/index.html and evolve/game.js, using three.js from a CDN with an importmap.
The world is a floating island made of hex tiles, with a sky gradient, fog, floating rocks in the distance and drifting particles.
The player is a small hover drone with a spinning glowing ring. WASD moves it, it aims at the mouse and fires on its own, and Space dashes.
Enemies walk in from the edge in waves. When a wave is dead, show a big GENERATION 2 banner and start the next wave.
Add bloom, soft shadows and a health bar. Make it look premium, not like a pile of boxes.
real Claude Code run, replayed at reading speed · every step is from the log

What you're watching: prompt 2 in a clean Claude Code. It writes the page and the game, then screenshots its own game, looks at the pictures and fixes what looks wrong, again and again for about 19 minutes.

§16Step 3 · The genes

Step 3: Build creatures from genes

PROMPT 3paste into Claude Code
Make evolve/creatures.js. Every enemy is built from a genome:
- movement: scuttle (six legs), hop (spring legs), glide (wings), or burrow (a drill that tunnels underground where it can't be shot)
- armor: none, a front shell that blocks shots from the front, spikes, or split (it splits into two small ones when killed)
- attack: bite, acid spit from range, or explode up close
- size 0 to 4 and speed 0 to 4
Every gene must change how the creature LOOKS and how it BEHAVES.
Spawn each wave from one genome, and add evolve/lab.html that shows eight different genomes side by side on turntables.
my gene lab page · rendered live in three.js

What you're watching: eight different gene lists, side by side. Legs for runners, spring legs for hoppers, wings for gliders, a drill for burrowers, plus shells, spikes and glowing acid sacs.

§17Step 4 · The brain

Step 4: Give it a Jev brain

PROMPT 4paste into Claude Code
Make evolve/brain.js. After every wave, call POST /jev ONCE with 8 questions:
- movement, armor and attack: choice questions, where each option's description says which kind of player it beats
- size and speed: score questions with 5 labels (the criteria for a score must be a list)
- the next world: meadow (slowly heals the player), ember (lava vents erupt), frost (slippery ice) or neon (dark)
- the arena layout: pillars rise, the outer edge crumbles, or open
- one gift for the player: triple shot, faster fire, shield, faster dash or piercing shots
The state is plain English that describes how the player just fought.
If Jev doesn't answer within 7 seconds, pick at random and label it "local" on screen, so it's never passed off as Jev.
Eight questions, one answer eachHow they moveTheir armorTheir attackHow bigHow fastThe next worldThe arena layoutA gift for youOne Jev callafter every waveEach option says who it beats
§18Step 5 · The evolution

Step 5: Measure how you play, then evolve

PROMPT 5paste into Claude Code
While the player fights, measure: how far away they usually are when they kill, how close the nearest enemy gets, which way they circle the arena and how often, how long they stand still, how long they spend near the edge, their accuracy, how many shots bounced off shells, and how much damage each attack did to them.
Write all of that into the plain-English state for Jev.
When a wave ends:
1. Show "Jev is studying how you fought…" with a spinning DNA helix.
2. Deal eight cards, one per decision, each with how sure Jev was as a %.
3. Morph the world into the new biome in a wave that rolls out from the centre.
4. Apply the arena change and the gift, then hatch the new generation from the edge.
the real app on my machine · live Jev calls · recorded as it ran

What you're watching: the moment a wave ends: Jev studies the player, eight cards deal out with how sure it was, the lava world rolls out from the middle, and the new generation hatches at the edge.

Nine prompts. Two worlds that change themselves.
§19Step 6 · The playtest

Step 6: Let robots playtest it

PROMPT 6paste into Claude Code
Add an autopilot: ?bot=sniper keeps its distance, ?bot=brawler fights up close, ?bot=circler runs in circles.
Then playtest it yourself with headless Chrome, two minutes per style, and prove three things:
1. The game never freezes.
2. Jev designs different enemies for different styles.
3. No wave can get stuck: if a wave lasts 30 seconds, shells crack and burrowers come up.
Fix anything that breaks, and show me what Jev picked for each style.
real Claude Code run, replayed at reading speed · results from the log

What you're watching: prompt 6 in a clean Claude Code. It adds sniper, brawler and circler bots and plays each style for two minutes against real Jev: no freezes, no stuck waves, zero errors, and different enemies per style. It also notes the very first redesign was the same for all three.

built only from prompts 1 to 6 · nobody touched the code · recorded in headless Chrome

What you're watching: the game a clean Claude Code built from prompts 1 to 6 alone. Its own circler bot clears wave one, Jev decides all eight changes in 2 seconds, and the island turns into a neon world full of burrowing, shelled acid-spitters.

§20 Want this built into your business?

Get the AI agent system I run, with Jev decisions built in.

These games are the fun version. The same one-call decision step sorts leads, routes support tickets and picks the next action for your agents. Inside the AI Profit Boardroom you get the whole system it plugs into.

The Agent OS — one place to plug in your Claude, your Hermes and your OpenClaw, and add your own workflows on top
The zip file, a 30-day roadmap and a video walkthrough for setting it up, with updates as new versions ship
Coaching calls where we go deep on Jev: which decisions to hand over first, and how to write the options so it picks well
Daily tutorials on building with Claude Code and Jev, so you save time and get more leads and customers
3,900+ business owners, some who had never used AI before they joined
A member map so you can find people near you doing the same thing, and someone is always online
Join the AI Profit Boardroom →Inside the AI Profit Boardroom · skool.com/ai-profit-lab
Link in the comments and description · used in 38 countries
THINKING IT? "Doesn't running the Agent OS burn a fortune in tokens?"

No. Everyday work runs on free local models and free APIs, and for the heavy work it drives the tools you already pay for, like the Claude subscription that already includes Claude Code.

Jev itself was free in every test on this page, and inside the Boardroom there are full token-saving tutorials.

§21Step 7 · The planet

Step 7: Build the planet

PROMPT 7paste into Claude Code
Build planet/index.html and planet/planet.js: a low-poly 3D planet floating in space, with three.js.
Faceted terrain from noise, a water sphere, a cloud layer, a glowing atmosphere, stars and a nebula.
The planet can change in all of these ways: raise mountains, carve oceans, grow forests (instanced trees), spread deserts, freeze or melt ice, build glowing cities (instanced buildings), erupt volcanoes with lava and smoke, take a meteor hit that leaves a crater, get storms with lightning, and gain rings and moons.
Every change animates over about two seconds. Nothing snaps.
real Claude Code run, replayed at reading speed · every step is from the log

What you're watching: prompt 7 in a clean Claude Code. It writes the planet, then screenshots every one of the twelve changes mid-animation and fixes what looks wrong. It finished with no console errors.

§22Step 8 · Talk to it

Step 8: Make it listen

PROMPT 8paste into Claude Code
Add a text box, a microphone button (Web Speech API) and a row of example phrases.
When I say something, call POST /jev ONCE with 6 questions:
1. is_command (noul): does the speaker want something to happen to the planet?
2. the main change: a choice from the list of planet changes
3. a second change, or none
4. where: here, north, south, east, west, equator or everywhere, measured from where the camera is looking
5. how big: a score with 5 labels
6. the sky colour: keep, blue, sunset, toxic, violet or crimson
If is_command is under 0.5, change nothing and say "not a planet command". Otherwise fly the camera to the spot and apply the change.
Show every decision with its % in a panel.
real Claude Code run, replayed at reading speed · results from the log

What you're watching: prompt 8 in a clean Claude Code. It tests Jev's question format first, wires the text box, mic and example phrases, then checks typed commands end to end against real Jev.

Rules go in the code. Choices go to Jev.
§23Step 9 · Let it evolve

Step 9: Let it evolve by itself

PROMPT 9paste into Claude Code
Add a "Let it evolve on its own" switch.
Every 16 seconds with no input, send Jev the planet's stats (land, ocean, forest, desert, ice, cities, temperature, moons), its age, and the last six events.
Ask what nature does next (eruption, mountains, forest, desert, ice age, warming, sea rise, cities grow, meteor or storm), where, and how big.
Apply it, add about 50 million years to the age, and show a big title for the event.
built only from prompts 1, 7, 8 and 9 · nobody touched the code · recorded in headless Chrome

What you're watching: the planet a clean Claude Code built from prompts 1, 7, 8 and 9 alone. Four typed sentences: huge mountains in the north, a meteor, forests plus cities, rings plus a moon. Then the evolve switch goes on and the planet names its own era, The Storm Age.

§24The mistakes I hit

Four mistakes, so you can skip them

What went wrong while I built thisScores need a listor Jev replies 422Browsers can't call Jevso build the bridgeDon't ask it to rememberremove the bad optionsWaves can get stuckadd a 30-second breakerAll four are already fixed in the prompts above
§25What's holding you back

Three beliefs to drop

The three kinds of question Jev answersPicksone option from your listScoreshow big, how fastYes / nois this a command?Every decision in both apps is one of these
Wrong: “You need to be a game developer to build something like this.”
Right: Claude Code wrote every line from nine plain-English prompts. Your job is describing what you want.
Wrong: “An AI deciding things live would be slow and expensive.”
Right: Every Jev call on this page came back in about a second, and the free model cost $0 across 139 calls.
Wrong: “I'll wait until these tools settle down before I learn them.”
Right: The tools will keep changing. Describing the player and writing good options carries over to whatever comes next.
Don't take my word for it

Members post their wins every day — agency owners, ecom founders, course creators, solo operators across 38 countries.

Read the 158-page wins doc →
§26Use it anywhere

Where else this works

The same trick, outside of gamesA workout app that adaptsA shop that rearrangesA lesson app that picks nextAn inbox that sorts itselfA video app that picks the next clipA note about the user+ a few Jev questionsDescribe the person. Let Jev pick. Build it.
§27 Your move

Build your own self-evolving apps, with help.

You can build both of these tonight with the nine prompts above. Or get the whole Agent Operating System, where Jev decisions plug into agents that already know your business.

The Agent OS, ready to install, with Claude Code, Hermes and OpenClaw in one place
Step-by-step video walkthroughs for building apps like these with Claude Code
Coaching calls every week where we help you with your own Jev setup
3,900+ business owners across 38 countries building with the same tools
Join the AI Profit Boardroom →Inside the AI Profit Boardroom · skool.com/ai-profit-lab
Link in the comments and description · new tools added the week they ship