gitmyhub

Horizon-View

TypeScript ★ 44 updated 27d ago

Horizon View is a Windows app that uses a regular webcam to track your head movements and pan the cockpit camera in Forza Horizon, giving you a VR-like look-around experience without a VR headset or any special hardware.

TypeScriptReactRustTauriMediaPipesetup: moderatecomplexity 2/5

Horizon View is a Windows application that uses a regular webcam to track your head movements and pan the cockpit camera in Forza Horizon accordingly. When you turn your head left or right, the in-game view follows, similar to how a VR headset works but without any special hardware. It is aimed at players using an ultrawide monitor in cockpit view who want to glance at a mirror or turn into a corner without pressing a button.

The application replaces a common multi-tool setup (OpenTrack, AITrack, and AutoHotKey) with a single calibrated program. A setup wizard walks you through granting webcam access, picking your camera, and completing a five-point calibration where you look at dots in sequence to teach the app your natural head-movement range. Once set up, you press the Home key to start tracking and press it again to stop. A floating overlay accessible via F1 lets you adjust settings while driving.

The settings you can tune include overall sensitivity, a smoothing level that trades responsiveness for stability, a response curve that controls how head angle maps to camera movement, a center deadzone that stops micro-jitter when looking straight ahead, and independent left and right pan multipliers so you can compensate for sitting off-center in the car.

Face detection runs locally using a library called MediaPipe. Nothing is sent over the network: no telemetry, no account required. If the camera loses your face, it re-centers the camera and waits until it can see you again.

The app is built with Tauri (a framework that uses a Rust backend and a web-based frontend) together with React and TypeScript. It is currently Windows only, and the installer is unsigned, so Windows will show a SmartScreen warning on first run. The README explains how to proceed past that warning.

Where it fits