Project Plateau
Project Plateau는 네 개의 유리판과 하나의 살아있는 계곡, 캠프로 돌아가는 길을 의미
웹캠 전신 제스처로 3레인 러너 조작, 설치 없이 브라우저 실행, 1200FPS, 오탐 없음
Real-time webcam body controller for a 3-lane arcade runner. Jump, duck, and dodge using full-body gestures. Zero install, runs in your browser. 1,200+ FPS, zero false triggers.
게임Python · TypeScriptGitHub @OJ102온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Play Subway Surfers with your body: real-time webcam body-tracking controller using MediaPipe pose estimation. Side-step, jump and duck to send keyboard input. Python desktop controller + zero-install TypeScript browser game. One Euro filter, Schmitt-trigger state machine.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Webcam body-tracking game controller: MediaPipe pose estimation turns side-steps, jumps and ducks into keyboard input in real time.
Live Web Demo (Zero-Install) | Features | How It Works | Benchmarks | Quickstart | Contributing
IRLSurfer is an edge computer vision controller that translates whole-body kinematics from an ordinary webcam into low-latency keyboard inputs to control Subway Surfers in real time.
Most computer vision input projects suffer from spatial sensitivity (breaking when players shift relative to the lens), high-frequency landmark jitter, and false keystroke triggers caused by baseline drift or natural idle fidgeting. IRLSurfer eliminates these failure modes through an end-to-end deterministic pipeline: MediaPipe Pose landmark extraction, perspective-invariant body space normalization ($W_s$ scaling), adaptive speed-based low-pass filtering (One Euro Filter), and a Schmitt-trigger finite state machine with velocity gating.
config/gestures.json) powers identical state machines in Python 3.12 (Desktop OS controller via pynput) and TypeScript (Zero-install browser demo), validated via automated cross-language parity test suites.pynput, so it drives Subway Surfers in a browser, emulator, or native app.irlsurfer record, label, eval, and bench subcommands for building and scoring gesture datasets.irlsurfer play, open Subway Surfers in another window, and step back until your shoulders and hips are in frame. The HUD shows STEP BACK - TOO CLOSE / STEP CLOSER - TOO FAR / DISTANCE OK guidance.| Layer | Technology |
|---|---|
| Pose estimation | MediaPipe Pose Landmarker (Python mediapipe, web @mediapipe/tasks-vision) |
| Video capture and HUD | OpenCV (opencv-python) / browser MediaStream + Canvas |
| Signal processing | One Euro Filter, NumPy |
| Gesture detection | Deterministic Schmitt-trigger finite state machine (shared config/gestures.json) |
| Keyboard output | pynput (macOS Accessibility / CoreGraphics) |
| Web runtime | TypeScript 5, Vite, Vitest |
| Quality | pytest + coverage, mypy (strict), Ruff, GitHub Actions CI, GitHub Pages deploy |
| Runtime | Environment | Input Mechanism | Primary Use Case |
|---|---|---|---|
| Web Runtime | Browser (WebGL / WASM) | Direct Canvas Keystroke Dispatch | Zero-install live demo in any browser |
| Desktop Controller | Native Python 3.12 CLI | OS Input Hooks (pynput / CoreGraphics) | Control Subway Surfers on web, emulator, or native desktop |
Each webcam frame goes through six stages: capture, MediaPipe pose estimation, body-space normalization, One Euro filtering, the gesture state machine, and keyboard dispatch. A 2-second calibration at startup records your neutral standing position. Full design notes live in docs/architecture.md.
The pipeline strictly decouples asynchronous frame capture, pose estimation, coordinate transformation, temporal filtering, state machine detection, and OS input dispatch:
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗