Aakib Ansari.
Back to articles
Hands-on TestTested live

I Prompted Ox Alpha to Build a Cyberpunk Hoverbike Endless Runner — One Shot, Full Synthwave Soundtrack Included

Md Aakib Ansari
Md Aakib AnsariWeb Developer & AI Tools Reviewer
•6 min read•Model: Ox Alpha•Company: Z.ai
I Prompted Ox Alpha to Build a Cyberpunk Hoverbike Endless Runner — One Shot, Full Synthwave Soundtrack Included

Continuing our genre-by-genre stress test of Ox Alpha, the unannounced stealth model available via OpenRouter and OpenCode, this run asked for something with a very different profile from the open-world survival test: a fast, linear endless runner with heavy visual styling and a full procedural music system, rather than a large explorable world.

What I asked for

A one-shot prompt targeting a specific aesthetic (cyberpunk/synthwave) and a specific mechanic (lane-based banking movement with a boost system), plus a hard requirement for fully procedural audio — no sample files, synthesized music included.

Raw Prompt (Unedited)
Skip to clean version ↓

You are an expert game developer and 3D graphics engineer specializing in Three.js and the Web Audio API.

Build a complete, fully playable, single-file HTML/JS 3D Cyberpunk Hoverbike Endless Runner game.

Requirements:

  1. Single File: Deliver everything inside one self-contained index.html file (HTML, CSS in <style>, JS in <script>).
  2. CDN: Load Three.js (r128) via https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js. Zero external image or audio files.
  3. Player & Mechanics:
    • Procedural hoverbike mesh with glowing neon trims.
    • Smooth lane shifting with banking/tilt inertia on turn (A/D or Left/Right).
    • Boost mechanic (Spacebar / Shift) with thruster particle trail and camera FOV warp.
  4. Environment & Spawning:
    • Infinite curving segmented track with neon grid lines and procedural skyscrapers.
    • Segment recycling ahead/behind the player to avoid memory leaks.
    • Holographic barricades, laser barriers, and floating energy pickups for boost replenishment.
  5. Procedural Audio (Web Audio API):
    • Arpeggiated synthwave bass loop, engine hum pitch-linked to speed, boost SFX, pickup chimes, and crash noise bursts.
  6. UI & State:
    • Cyberpunk glassmorphism HUD (Score, Distance, Speedometer, Boost Bar).
    • Start Screen, Game Over screen with High Score in localStorage, and instant restart on 'R'.

Output only valid, production-ready HTML code without placeholders or truncation.

Generation
One-shot, no fixes
Effort setting
High
Framework
Vanilla JS + Three.js r128
Persistence
localStorage high score
Track system
26-segment recycling loop
Audio
Fully synthesized, zero samples
Obstacle types
Barricade, laser barrier, pickup trail
Access
OpenRouter, stealth/ox-alpha
Live Demo

Interactive Demo

W A S D  /  Arrow Keys to drive

This is Ox Alpha's unedited one-shot output. Press Enter to start — A/D or the arrow keys shift lanes, hold Space or Shift to boost.

Visual style
Cyberpunk glassmorphism HUD, neon grid track, procedural skyline
Movement
3-lane shifting with banking/tilt inertia
Boost system
Particle thruster trail + camera FOV warp
Track generation
26 recycled segments, sine-curve path
Obstacles
Holographic barricades, laser barriers, pooled object reuse
Audio
122 BPM arpeggiated bass loop, speed-linked engine hum, full SFX set

Track and world generation

Rather than generating an unbounded track, Ox Alpha built a fixed pool of 26 track segments that recycle: once a segment passes behind the camera, it's repositioned to the front of the queue and its skyscrapers are re-randomized. The track path itself follows a sine-wave curve function (curveX) driven by total distance traveled, and both the road segments and every obstacle/pickup query that same function each frame to stay aligned to the curve — so obstacles bank correctly around corners instead of floating off the road surface.

Buildings use MeshStandardMaterial with an emissive canvas-generated window texture (two palettes — cyan and magenta) rather than any external image, procedurally punching random lit windows into a 64×128 canvas at generation time.

The hoverbike and boost feedback

The player's hoverbike is built entirely from primitives — box hull, cone nose, cylinder hover pads with torus glow rings — with neon strip meshes for trim rather than any texture work. Banking uses a lateral-velocity-derived tilt (bankTilt) that's smoothed rather than snapped, so lane changes visibly lean the bike into the turn instead of sliding sideways flat.

Boosting triggers three synchronized effects at once: the thruster particle emission rate and size both increase, the camera FOV widens from 72° to 96° for a speed-warp effect, and a dedicated boost whoosh sound plays. All three read from the same boosting state flag, so they stay in sync without separate timers drifting apart.

Procedural audio system

This is the most elaborate procedural audio setup we've seen in this Tier 3 series. A step-sequencer (musicScheduler) running at 122 BPM plays a 16-step arpeggiated bass pattern through a lowpass filter with feedback delay for a synthwave echo effect, layered with a sine-wave kick on quarter beats and filtered noise-burst hi-hats on the offbeats — an entire generative music track built from oscillators and a single shared noise buffer, with no audio files loaded at all. Engine hum pitch is tied directly to bike speed via updateEngineSound(), so the hum audibly rises during a boost and falls back at cruising speed.

What impressed me

The audio system stands out as the strongest single element of this build. Writing a working step-sequencer with a delay/feedback loop for the synthwave arpeggio — not just a single looping sample, but a real generative pattern with its own scheduler — goes well beyond "play a beep on pickup." The prompt asked for an "arpeggiated bass loop" without specifying implementation, and Ox Alpha chose to build an actual sequencer rather than a shortcut.

Object pooling for obstacles and pickups (acquire()/release() functions reusing meshes instead of constantly allocating and disposing) is also a detail the prompt didn't explicitly demand — it just asked to avoid memory leaks via "segment recycling." Ox Alpha extended that same recycling principle to every spawned object, not just the track segments, which is the more complete interpretation of the requirement.

What needs work

  • Difficulty scaling is aggressive early — the gap between obstacle spawns shrinks steadily with distance (difficultyGap()), which can feel like a fast ramp-up compared to some other endless runners we've tested.
  • No mobile/touch controls — the game is keyboard-only (arrow keys, A/D, Space/Shift), consistent with the prompt's requirements but worth flagging for anyone wanting to embed this on a touch device.
  • Only one effort tier tested — this run used Ox Alpha's High setting only.

Honest assessment

Try it yourself

Try It Yourself

You are an expert game developer and 3D graphics engineer specializing in Three.js and the Web Audio API.

Build a complete, fully playable, single-file HTML/JS 3D Cyberpunk Hoverbike Endless Runner game.

Requirements:

  1. Single File: Everything inside one self-contained index.html (HTML, CSS, JS).
  2. CDN: Load Three.js (r128) from CDN. Zero external image or audio files.
  3. Player: Procedural hoverbike mesh with neon trims, smooth lane shifting with banking/tilt on turns, boost mechanic with thruster particles and camera FOV warp.
  4. Environment: Infinite curving segmented track with neon grid lines and procedural skyscrapers, segment recycling to avoid memory leaks, obstacles and floating boost pickups.
  5. Procedural Audio: Arpeggiated bass loop, speed-linked engine hum, boost/pickup/crash SFX — all synthesized, no samples.
  6. UI: Glassmorphism HUD (Score, Distance, Speed, Boost bar), Start screen, Game Over screen with localStorage high score, instant restart.

FAQ

Frequently Asked Questions

What model generated this?
Ox Alpha, an unannounced stealth model (provider alias 'Stealth') available via OpenRouter (stealth/ox-alpha) and OpenCode. No lab has officially claimed authorship.
Did it need any follow-up prompts or fixes?
No. This was a clean one-shot — the generated code ran correctly on the first attempt with no edits.
Is the music actually generated, or is it a looping sample?
Fully generated. A Web Audio step-sequencer plays a 16-step arpeggiated bass pattern through filters and a feedback delay in real time — there are no audio files anywhere in the code.
Can I run this locally?
Yes. Download the single HTML file and open it in any modern browser. The only external dependency is the Three.js CDN script.
How does this compare to Ox Alpha's survival game test?
Systems-wise both are complete one-shots, but this build leans harder into audio and visual styling (procedural music, glassmorphism UI, neon materials) while the survival test leaned into world-generation and crafting-system complexity.

Related Articles