index_camera_passthrough

Crates.ioindex_camera_passthrough
lib.rsindex_camera_passthrough
version0.1.0
sourcesrc
created_at2023-03-31 11:26:36.847138
updated_at2023-03-31 11:26:36.847138
descriptionCamera passthrough for Valve Index on Linux
homepage
repositoryhttps://github.com/yshui/index_camera_passthrough
max_upload_size
id826264
size190,269
Yuxuan Shui (yshui)

documentation

README

Index camera passthrough

Warning: This is still a work in progress, you could get motion sickness if you try it now

The problem that the Index camera doesn't work on Linux has been there for a long time, see ValveSoftware/SteamVR-for-Linux#231. And Valve doesn't seem to be willing to address it. So I decided to throw something together.

Features

  • Stereo overlay: the overlay in your game world that acts as a portal to real world. Meaning you see in 3D. (disabled by default, see the example config file for how to enable and more options.)
  • You can configure the overlay to be in one place, or stay in front of you.
  • Use camera calibration data from your Steam installation.
  • Show/hide passthrough with button presses

See also the example config file

TODO

  • Add option to make overlay follow controller.
  • (Unrealistic) implement Valve's "3D" passthrough. To do this we essentially need to do 3D reconstruction from the stereo camera. There are existing methods, but will be really challenging to implement.

Contribute

You can test this out and report your experience to help this improve.

If you have any suggestions about features, or how to make the passthrough look better, please let me know. I am not a graphics programmer and am trying my best to get things work, but solutions I came up with is definitely not going to be as good as things can be.

Please help me out.

Build instruction

You can install this program from crates.io:

cargo install index_camera_passthrough

To build this program, you need:

  • Rust (How to install, you need to select the nightly channel)
  • OpenVR
  • Vulkan

in the repository first, then run

cargo build --release

Usage

Run from Steam library

After you have built the program, copy it to /usr/local/bin

cp ./target/release/index_camera_passthrough /usr/local/bin

And then add the index_camera_passthrough.desktop file to your Steam Library.

Run directly

To run this program, you can either

cargo run

or run the binary directly

./target/release/index_camera_passthrough
Commit count: 56

cargo fmt