Head Tracking

An OpenTrack compatible head tracking mod for Outer Wilds

Outer Wilds Head Tracking

Mod GIF

An unofficial head tracking mod for Outer Wilds that lets you look around naturally using your phone or dedicated head tracker.

Features

  • Decoupled look + aim: Look around freely with your head while your aim stays independent
  • 6DOF head tracking: Yaw, pitch, roll rotation plus positional tracking (lean in/out/side-to-side) via OpenTrack UDP protocol
  • Per-connection smoothing: Separate smoothing for a tracker on this machine and for a remote WiFi device, picked from the packet source address
  • Smart auto-disable: Tracking automatically pauses during model ship piloting, signalscope zoom, and pause menu
  • Full game integration: Flashlight follows your gaze, Nomai Translator targets where you look, quantum objects respect head-tracked view direction

Requirements

Quick Start

  1. Install pixi
  2. Clone this repository
  3. Run pixi run install
  4. Configure OpenTrack to output UDP data to 127.0.0.1:4242
  5. Launch the game

Manual Installation

See INSTALL.md for detailed manual installation instructions.

Head Tracking Setup

This mod receives tracking data via the OpenTrack UDP protocol (port 4242 by default). You can use a phone or webcam with OpenTrack or any OpenTrack-compatible head tracking software.

The mod detects whether the tracking data comes from this machine or from a remote device (e.g. phone over WiFi) and applies localSmoothing or remoteSmoothing accordingly.

Controls

Two equivalent binding sets - use whichever your keyboard has:

ActionNav-clusterChord
Toggle trackingEndCtrl+Shift+Y
Cycle tracking modePage UpCtrl+Shift+G

Page Up / Ctrl+Shift+G cycles tracking mode:

  1. Normal head-tracked gameplay
  2. Positional tracking disabled, rotational tracking enabled
  3. Rotational tracking disabled, positional tracking enabled
  4. Back to normal

Configuration

Settings are available in the OWML Mod Manager or in-game mod menu. The mod creates a config file with default settings on first run. Edit it to customize:

SettingDefaultDescription
opentrackPort4242UDP port for receiving tracking data
yawSensitivity1.0Horizontal look sensitivity
pitchSensitivity1.0Vertical look sensitivity
rollSensitivity1.0Head tilt sensitivity
localSmoothing0.0Smoothing when the tracker runs on this machine (loopback). 0 = none, 1 = heavy
remoteSmoothing0.15Smoothing when the tracker is a remote device on the network. 0 = none, 1 = heavy
positionEnabledtrueEnable positional tracking (lean in/out/side-to-side)
positionSensitivityX4.0Lateral position multiplier
positionSensitivityY4.0Vertical position multiplier
positionSensitivityZ4.0Depth position multiplier
positionLimitX0.30Max lateral displacement (meters)
positionLimitY0.20Max vertical displacement (meters)
positionLimitZ0.40Max depth displacement (meters)

Position uses the same localSmoothing / remoteSmoothing value as rotation; there is no separate position smoothing setting.

Building from Source

This project uses pixi for build management.

# Install dependencies
pixi run restore

# Build the mod
pixi run build

# Build and install to OWML Mods folder
pixi run install

# Create release package
pixi run package

The mod depends on the shared CameraUnlock.Core library (included as a git submodule in the shared/ directory).

Project Structure

outer-wilds/
├── manifest.json              # OWML mod manifest
├── default-config.json        # Default settings
├── pixi.toml                  # Build configuration
├── scripts/
│   ├── deploy.ps1             # Deploy to OWML
│   ├── package.ps1            # Create release zip
│   └── uninstall.ps1          # Remove from OWML
└── src/OuterWildsHeadTracking/
    ├── HeadTrackingMod.cs     # Main mod entry point
    ├── Camera/
    │   ├── Core/              # Camera rotation patches
    │   ├── Effects/           # Flashlight, fog, quantum
    │   ├── UI/                # Reticle, markers, translator
    │   └── Utilities/         # Rotation helpers
    ├── Configuration/         # Constants
    └── Tracking/              # OpenTrack client

Technical Details

  • Built for .NET Framework 4.8
  • Uses Harmony 2.4 for runtime patching
  • Integrates with OWML 2.9+
  • Shared core library provides: UDP receiver, rotation processing, smoothing algorithms

Community & Support

  • Discord: Loop's Head Tracking Hangout - setup help, bug reports, and new-release announcements
  • Lopari - free Windows launcher with one-click install and launch for the released head-tracking mods
  • Headcam - free app that turns your iPhone or Android phone into the head tracker

License

MIT License - see LICENSE file for details.

Credits


Comments


🔥
Loading comments...
(Javascript needs to be enabled for this)

This page isn't official, nor affiliated with Mobius Digital, or anyone really. RSS