Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
Steer a paper bird over clouds in your browser using the mouse
AI summary · README
GamesJavaScript · HTMLGitHub @bstummerOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A small folded paper bird glides over an endless sea of clouds at golden hour, steered by you.
No goals, no score — just the light, the clouds and the glide.
Everything lives in one self-contained file: index.html. Open it in a recent desktop or
mobile browser with WebGL 2 (Chrome, Edge, Firefox, Safari 15+). It works straight from disk
(file://) or from any static web server; there are no dependencies or assets to load.Read the full README ↗A small folded paper bird glides over an endless sea of clouds at golden hour, steered by you. No goals, no score — just the light, the clouds and the glide.
Everything lives in one self-contained file: index.html (built from the sources in src/).
Open it in a recent desktop or mobile browser with WebGL 2 (Chrome, Edge, Firefox, Safari 15+). It
works straight from disk (file://) or from any static web server; there are no dependencies or
assets to load.
| Mouse | point where you want to go — left/right banks into a turn, up climbs, down dives. Move the pointer to the centre (or out of the window) and the bird levels out. |
| Touch | touch anywhere and drag; the offset from where you touched steers. Let go to level out. |
| Keyboard | arrow keys or WASD |
| Gamepad | left stick |
| Fullscreen | double-click or press F |
Diving gathers speed, climbing trades it back for height; when the bird runs out of speed it gently lowers its nose. You can skim the cloud tops, fly under overhangs and through the heaps and towers that rise above the sea, but the bird is softly kept from sinking deep into the cloud sea.
src/ — the sources: ES modules for the world generator, the renderer and its shaders,
the flight, the steering and the camera. node tools/serve.mjs runs them as they are at
http://localhost:8000/src/ (edit, reload); node build.mjs joins them into index.html, which
is what gets published (commit both). Only Node is needed.docs/BRIEF.md — what the piece should be: every request verbatim, the
inspiration photos described, the feedback themes.docs/DEVELOPMENT.md — how it works (the source files and the build, the
frame, the world generator and its causes, streaming, the cloud renderer, flight, image, speed),
test hooks, performance baselines, known issues, tuning lessons, checking a change.docs/HISTORY.md — what was built, tried and dropped in each round.docs/img/ — reference renders of the current version, a world map, tower silhouettes.tools/ — the local server, rendering and comparing views, the generated
world measured and drawn in Node, behaviour checks, and regression tests (world fingerprint,
render baselines).These are for working on the piece and are not needed to enjoy it.
| parameter | effect |
|---|---|
?debug | frame-rate / resolution / GPU-time overlay |
?test&preset=start|sun|away|side|skim|high|high2|bank|tower|giant|anvil|close|under|approach|inside|humps|upward|fastdive&frames=N&w=W&h=H&scale=S | deterministic render: fixed time step, stops after N frames (for screenshots); tower, giant, anvil, close, under, approach and inside look at, under or into generated towers near the start |
?seed=N, ?towers=K | another world; density of convective cells (default 1) |
?test&pose=x,y,z,yaw,pitch,bank | start the bird at an exact pose |
?test&closeup=right,up,forward | fixed camera offset in the bird's frame |
?test&script=dive|climb|turn|weave&log | scripted input; per-frame flight state in window.__log |
?view=1..5 | show cloud transmittance, raw cloud light, depth, sun rays or bloom |
?dbg=1..7 | cloud debug: normals, sun visibility, shadow volume, march cost, lighting terms |
?exp=, ?con=, ?haze=, ?bloom=, ?rays= | exposure, contrast, haze density, bloom and sun-ray strength |
?cpuprof | per-pass timing on software GL (fences every pass) |