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
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
3D-игра в браузере, которой управляют через веб-камеру. Без клавиатуры и мыши. Команда null pointers, Admit Hackathon 2026, кейс Motion, направление «Игра». Нужны Chrome или Edge, веб-камера и свет на лице. Сядь напротив камеры и нажми «Включить камеру и играть». Видео с камеры никуда не отправляется, все считается в браузере. В начале короткое обучение, его можно пропустить. Игру ведет голос «Окна»: объясняет жесты и подсказывает, что исправить.檢視完整 README ↗
A 3D browser game you play with a webcam and nothing else. Your head moves the view, so the laptop screen works like a window into a small floating world. The right hand walks and jumps, the left one turns the world.
Play: https://mariogame-gilt.vercel.app
Code: https://github.com/Peagverr/mario-game
You need a webcam and Chrome or Edge. Light should fall on your face. Click "Turn on camera and play": it is the only click in the game, after it you play with your head and hands. The video is processed in the browser and is not sent anywhere.
The game opens in English. To switch to Russian, press RU on the start screen or open the link with ?lang=ru; the pause menu has the same switch. In Russian the game is called "Окно" (Okno), which means "window".
Team null pointers. Russian version of this file: README.ru.md.
| Gesture | What it does |
|---|---|
| Right palm, low on the right | A joystick circle sits in the bottom right corner of the screen. Put the red dot (your palm) into the yellow center and the hero stands still |
| Move the palm out of the center | The hero walks that way |
| Right fist | Jump |
| Left fist, then move the hand | Rotate and tilt the world in any direction. Take the fist past the teal circle and the world keeps turning by itself. Move the fist toward or away from the camera to zoom |
| Move your head | Look around the hero or down from above, as through a window |
| Two open palms | Menu. The game and the timer pause |
A short tutorial runs first, and you can skip it. The voice of Window explains each gesture and says what to fix.
When a gesture is almost right, the game says what to fix, for example "To jump, close your fist all the way. Not bent: ring, pinky". The camera window marks those fingers in red. A hint appears only after the problem has lasted past its threshold, which is set per hint between 0 and 1.2 s. The screen shows one hint at a time. Once a hint goes away, it stays away for 8 s. After each level the results screen lists your mistakes with a tip for each one.
src/input/tracker.ts.src/input/gestures.ts). The palm joystick and the left-fist grab are in src/input/palmJoystick.ts and src/input/worldGrab.ts.src/input/handIdentity.ts).src/input/oneEuro.ts).src/game/WindowCamera.tsx, src/game/windowParams.ts).src/input/errors.ts.src/i18n.ts: an English and a Russian dictionary with the same keys. If a string is missing in one language, the type check fails.The game has 45 voice lines, their texts in both languages are in src/game/voiceLines.json. The Russian audio (public/voice) was made with ElevenLabs. The English audio (public/voice/en) was generated on our laptop with the open model Kokoro-82M through kokoro-js, voice af_bella. No API key or account is needed for that.
To generate the English files again you need ffmpeg (on Windows: winget install Gyan.FFmpeg):
npm --prefix tools/voice-en install
npm run voice:en
npm run voice:en:check
The last command transcribes every English file with Whisper (Xenova/whisper-small.en) and compares the words with the text. For the current files all 45 lines match.
npm install
npm run dev
Open http://localhost:5173 in Chrome. npm install also copies the MediaPipe wasm files into public/mediapipe/wasm (scripts/copy-mediapipe-wasm.mjs). The three model files (about 18 MB) download from Google storage on the first start.
Tests, type check and production build:
npm test
npm run typecheck
npm run build
npm test runs 155 Vitest tests. Add ?debug to the URL to see tracking numbers under the camera window.
TypeScript, React 19, Three.js, React Three Fiber, Rapier, MediaPipe Tasks Vision, Zustand, Vite, Vitest. The world was modelled and rendered in Blender.
art/lobby.blend, the panoramas come from art/pano_tools.py.The first commit is e0d1073, 28 Sep 2026, 22:34 (UTC+5). EurekaDev 2026 opened submissions a day earlier, on 27 Sep 2026 at 16:15 (UTC+5), according to the Devpost schedule.