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
Motion: 3D-игра, которой управляют через веб-камеру (Admit Hackathon 2026)
Translation pending
GamesTypeScript · CSSGitHub @PeagverrOnlineOwner 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.
3D-игра в браузере, которой управляют через веб-камеру. Без клавиатуры и мыши. Команда null pointers, Admit Hackathon 2026, кейс Motion, направление «Игра». Нужны Chrome или Edge, веб-камера и свет на лице. Сядь напротив камеры и нажми «Включить камеру и играть». Видео с камеры никуда не отправляется, все считается в браузере. В начале короткое обучение, его можно пропустить. Игру ведет голос «Окна»: объясняет жесты и подсказывает, что исправить.Read the full 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.