• v1.5.0 18a50d38ab

    v1.5.0 Stable

    DieMitchell released this 2026-10-19 01:01:30 +02:00 | 8 commits to main since this release

    Downloads
  • v1.4.1 22ed9e1ede

    v1.4.1 Stable

    DieMitchell released this 2026-10-19 01:01:35 +02:00 | 25 commits to main since this release

    Downloads
  • v1.4.2 22ed9e1ede

    v1.4.2 Stable

    DieMitchell released this 2026-10-19 01:01:32 +02:00 | 25 commits to main since this release

    Downloads
  • v1.4.0 7987fffed4

    v1.4.0 Stable

    DieMitchell released this 2026-10-19 01:01:37 +02:00 | 26 commits to main since this release

    Downloads
  • v1.3.0 858293663b

    DieMitchell released this 2026-10-19 01:01:39 +02:00 | 27 commits to main since this release

    Installing no longer needs manual extraction or fiddling with Steam's Non-Steam Games dialog.

    One command

    From a terminal on the headset (Desktop Mode or over SSH):

    curl -fsSL https://raw.githubusercontent.com/Pixelplanet/Pixel-VR-Player/main/tools/install.sh | sh
    

    The installer:

    • downloads the latest ARM64 release and verifies its SHA-256 checksum;
    • installs the binary, launcher and shaders to ~/PixelVRPlayer;
    • adds "Pixel VR Player" to your Steam library as a Non-Steam Game, so it is
      launchable from Game Mode without any manual setup (VR flag set, so Steam
      starts SteamVR for you);
    • backs up shortcuts.vdf before touching it and preserves every existing
      Non-Steam shortcut;
    • checks the binary's shared libraries and warns if anything is missing.

    Restart Steam afterwards if it was already running, or pass --restart-steam to
    have the installer close and reopen it automatically.

    Option Effect
    --dir DIR install somewhere other than ~/PixelVRPlayer
    --version vX.Y.Z install a specific release instead of the latest
    --no-steam skip the Steam library entry
    --restart-steam close Steam first, then reopen it
    --uninstall remove the app and its Steam shortcut
    --force install on a non-aarch64 machine

    Upgrading is the same command again. Settings (~/.config/pixelvr) and cached
    thumbnails (~/.cache/pixelvr) live outside the install directory and are never
    touched.

    Offline install

    Download pixelvr-linux-arm64.tar.gz, copy it to the headset, extract it and run
    ./install.sh — the tarball now ships the installer and a VERSION file. Or run
    ./run.sh directly if you prefer to keep things portable.

    Also in this release

    • Every release now publishes pixelvr-linux-arm64.tar.gz.sha256, and the
      workflow syntax-checks the installer scripts before building.

    Full changelog: https://github.com/Pixelplanet/Pixel-VR-Player/compare/v1.2.0...v1.3.0

    Downloads
  • v1.2.0 6f9a9ac6b5

    DieMitchell released this 2026-10-19 01:01:41 +02:00 | 28 commits to main since this release

    Unified spatial UI: the file browser is now a sidebar + card grid with live video thumbnails and metadata, and Settings gained display/appearance controls.

    What changed

    • Video thumbnails + metadata. Browser cards now show a 256×144 preview frame plus resolution, frame rate and duration. Frames are extracted on a background worker and cached under ~/.cache/pixelvr/thumbs; SBS / VR180 clips are cropped to one eye so the card is not a squished double image.
    • Redesigned browser. A sidebar rail (Network / Home / Videos / Downloads / Drives) and a card grid with horizontal and vertical thumbstick navigation. Passing a directory on the command line now opens the browser at that folder.
    • Settings overhaul. Sectioned layout (Display / Controls / Streams / System) with new options: screen curvature (Flat → IMAX), UI text scale, UI text colour, accent colour and UI distance.
    • Downloads manager. Per-job state, live progress, transfer speed and ETA, plus Pause All / Resume All and Cancel Active controls. Completed jobs show where the file was stored.
    • Playback. Multi-threaded software decode across all CPU cores and four V4L2 M2M output buffers for smoother hardware decoding.
    • Reproducible packaging. Release tarballs are built by CI on a native ARM64 runner (Debian 13, FFmpeg 7 to match the headset) and attached here, instead of being committed to the repository.

    Install

    tar -xzf pixelvr-linux-arm64.tar.gz -C ~
    chmod +x ~/PixelVRPlayer/run.sh
    ~/PixelVRPlayer/run.sh                 # opens the in-headset file browser
    ~/PixelVRPlayer/run.sh /path/clip.mp4  # …or auto-play a specific clip
    

    Add ~/PixelVRPlayer/run.sh as a Non-Steam Game to launch it from the headset library. SteamVR must be running; the log is written to ~/pixelvr-run.log.

    Controls

    Input Action
    Trigger Laser pointer: click a panel row or control-bar button
    A Open the highlighted entry (folder navigates, video plays); play/pause outside the browser
    X / Y Download the highlighted entry
    B Open/close the file browser, close a panel, cancel the download dialog
    Grip Toggle that hand's laser pointer
    Thumbstick Move the highlight; left/right seeks while playing
    Bumper Recenter the view

    All button bindings are remappable in Settings ▸ Controls.

    Full changelog: https://github.com/Pixelplanet/Pixel-VR-Player/compare/v1.1.0...v1.2.0

    Downloads
  • v1.1.0 47836de7d8

    DieMitchell released this 2026-10-19 01:01:43 +02:00 | 31 commits to main since this release

    Input de-collision: the control bar is now usable while the file browser is open.

    What changed

    • A now opens the highlighted entry. Folder navigates, video plays or streams. Previously A downloaded and the trigger opened, which meant the trigger was doing two jobs at once.
    • New dedicated Download button on the control bar (arrow icon). It downloads the entry highlighted in the browser; folders still ask for confirmation and show their size first.
    • The trigger is now pointer-only. Laser clicks go to panel rows and control-bar buttons, so nothing competes for the same press.
    • Fixed the raycast that hid the bar. The panel hit tests bailed out early when the ray missed the panel, which also swallowed rays aimed at the control bar below it (and at the timeline / time readout). They now fall through to the bar test. This was the actual reason the bar was unclickable while browsing.
    • Downloads window button got its own list icon so it is not confused with the new download-arrow button.

    Install

    tar -xzf pixelvr-linux-arm64.tar.gz -C ~
    chmod +x ~/PixelVRPlayer/run.sh
    ~/PixelVRPlayer/run.sh
    

    Add ~/PixelVRPlayer/run.sh as a Non-Steam Game to launch from the headset library. SteamVR must be running; logs go to ~/pixelvr-run.log.

    Controls

    Input Action
    Thumbstick Move the panel highlight; left/right seeks while playing
    A Open the highlighted entry (folder navigates, video plays); play/pause outside the browser
    B Open/close the file browser; close settings; cancel the download dialog
    Trigger Laser pointer click on a panel row or control-bar button
    Grip Recenter the view

    Bindings are remappable in Settings > Controls.

    Downloads
  • v1.0.0 b31cc5a58e

    DieMitchell released this 2026-10-19 01:01:43 +02:00 | 33 commits to main since this release

    Native VR video player for the Valve Steam Frame (SteamOS / aarch64).

    Highlights

    • Playback: flat 2D, 180, and 360 degree video; mono / SBS (incl. half-SBS) / TB stereo, auto-detected from the filename. Hardware HEVC/H.264 decode via V4L2 M2M, with zero-copy dma-buf import when the patched FFmpeg is present.
    • Sources: local storage and SMB network shares (stream directly, or download).
    • Downloads: background manager with progress, MB/s and ETA; pause / resume / stop / clear; downloads run in a separate process so browsing stays responsive.
    • UI: in-headset file browser (file type + size), transport bar with scrub, settings menu, downloads window. Thumbstick or laser + trigger to select.
    • Native controller: Steam Frame OpenXR profile (a/b/x/y, dpad, menu, view, bumper, thumbstick), the runtime's own render model with per-button press animation, grip-correct placement, and press-to-bind remapping.

    Install

    tar -xzf pixelvr-linux-arm64.tar.gz -C ~ chmod +x ~/PixelVRPlayer/run.sh ~/PixelVRPlayer/run.sh # opens the file browser
    Add ~/PixelVRPlayer/run.sh as a Non-Steam Game to launch it from the headset library (SteamVR must be running). Logs: ~/pixelvr-run.log.

    Requirements

    SteamVR OpenXR runtime (SteamOS), Vulkan, and system FFmpeg with V4L2 M2M decoders. Optional: a patched FFmpeg in ~/ffbuild for zero-copy dma-buf decode (auto-detected by run.sh).

    Downloads