Skip to main content
Inspiring
October 3, 2014

Linux 'putting your money where your mouth is' thread...

So, the Linux 'nagging thread' has kind of dragged on for a while. Oculus has pledged Linux support, but given no ETA on when we'll see positional tracking supported for DK2. It could be this week. It could be months.

However, I think that sitting around and waiting for Oculus to solve the issue kind of goes against the spirit of Linux anyway. If you want something done, you should be willing to do it yourself. To that end, I'm working on porting the current 0.4.2 SDK to Linux. I've managed to reverse engineer some of the code required to interact with the LEDs so that they can be turned on. The camera is natively supported. Right now the primary missing component to getting this done is the software for calculating a head pose based on an image from the camera.

Unfortunately this kind of math is outside my field of expertise. So I'm putting a call out to the community to see if interested parties might be able to assist with this.

If you want a Linux SDK and don't want to wait for Oculus to get around to it, and you've got the skills, here's a video of them captured from the webcam on Linux:




You can download original file from here: https://s3.amazonaws.com/Oculus/oculus_rift_leds.webm

If you can write C or C++ code that will take that video, or an image from that video, and turn it into a head pose, let me know and I'll work with it to produce a viable Linux SDK with positional tracking.

    44 replies

    Up and Coming
    October 3, 2014
    I wish you the best of luck! I am in dire need of a Linux SDK, because my main development machine is running Linux. Unfortunately, many people don't understand that not having a Linux SDK also can limit game development for Windows & Mac OSX, as is in my case.

    Anyway, do you have a limited Linux SDK you could put into JOVR in the meantime? Something that would at least get rotational tracking & SDK-side distortion working? I'd like to continue Rift development with my game, 4089, but when I try to use it in "Rift mode", it simply crashes because no linux libraries can be found in JOVR 4.2.0.
    Inspiring
    October 3, 2014
    I don't want to stop you guys, but I'll be willing to bet the Linux SDK will come out long before you figure this out on your own. But please, if you want to hack away, go ahead.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Up and Coming
    October 3, 2014
    Also, I think I found FreeTrack's source code.. not sure if it will be helpful at all. Written in Pascal:

    https://github.com/PeterN/freetrack/tree/master/Freetrack
    Up and Coming
    October 3, 2014
    "cybereality" wrote:
    I don't want to stop you guys, but I'll be willing to bet the Linux SDK will come out long before you figure this out on your own. But please, if you want to hack away, go ahead.


    Thank you for stopping by! I'm eagerly awaiting the Linux SDK release. Are you able to share if it will be included in the next SDK release?
    Inspiring
    October 3, 2014
    I can't promise it will be in the next SDK release, but good progress is being made and it should be coming soon.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Up and Coming
    October 3, 2014
    "cybereality" wrote:
    I don't want to stop you guys, but I'll be willing to bet the Linux SDK will come out long before you figure this out on your own. But please, if you want to hack away, go ahead.

    how encouraging :lol:

    Are the LEDs supposed to flash in a specific pattern or are they supposed to be on continuously?

    In regards to the math: http://en.wikipedia.org/wiki/Delaunay_tessellation_field_estimator

    What I am thinking: Calculate the DTFE for several known states (Needs a cartesian robot) of the HMD and then use a curve fitting tool to get a function representation of it for the coordinates or store those in a LUT and interpolate.
    Participant
    October 3, 2014
    Yeah, I don't want to burst bubbles here but the tracking algorithm is quite involved and ideally you would want to tap into the modulated LED signal to first identify the LEDs before attempting a post reconstruction. Not to mention there are a whole slew of tie-ins to IMU data for prediction that really optimize the quality of the tracking. The video below gives a flavor a what is involved. I suspect the official Linux release will be out much sooner than a reverse-engineering of the tracking algorithm could be completed.


    Up and Coming
    October 3, 2014
    You know you could share the precise geometric locations of the LEDs and as such give us the possibility of a less ad-hoc approach. ;)
    Up and Coming
    October 3, 2014
    Well, But even if we wait for the official SDK for Linux, we still have the problem with the current Oculus software license being incompatible with GPL, thus hindering support in Blender, FlightGear etc.

    An alternative, community developed SDK may be what is needed for these projects to be able to use the Rift hardware.
    jhericoAuthor
    Inspiring
    October 4, 2014
    Guys, I appreciate the sentiments being expressed here, but I'd like to avoid turning this into a clone of the 'nagging thread'. Try to focus this thread largely on community built tools and overcoming the problems we're faced with, not another back and forth on Linux issues.
    Brad Davis - Developer for High Fidelity Co-author of Oculus Rift in Action