Is there and SDK/HDK for the PM4K?

Just wondering if there is an Software/Hardware Development Kit for the headset.

Thanks!
D

Sure, we have SDK. we will upload in the forum.

Thank you. Do you have an estimate on when the kit(s) might be available to the public? And or if need be when can we signup to get the development kit(s)?

Again thank you for a great product. Keep up the good work.

Shred

I’m interested too. Please advise when it is uploaded. Thank you!

Hi there. I was wondering if the SDK has been uploaded yet.
My headset is on the way, and I would like to verse myself with the SDK and maybe even start building content before my unit actually arrives… got to keep busy to make the shipping time fly by. :wink:

Not as far as I am aware. PimaxVR said they have the SDK but has not replied to requests to upload it.

Dang, hope they get it up soon.

in the meantime… do any Pimax representatives know what features it will give us developers?
I assume access to the gyro/compass controls, and access to data going to the HMD?

The gyro/compass controll is one I am interested in… first I would like to make a head position to mouse movement app… unless anyone knows if that feature is already built in?

That feature must already be there since the Steam Simple VR Video Player uses it. A red dot shows the head/mouse position. Given that, I suspect the PIMAX is compatible with the SDK used by the Steam apps.

Great thinking with the other SDK compatibility… I will start there until they post something official here.

Thanks again dzeek
Chris

Just saw this new post!

http://community.openmr.ai/t/you-can-download-pimax-sdk-from-here-now/472

OH MY GOD!!!
Thank you for the link to the post dzeek… this has made my day! So Excited :)!!
Thank-you again!

Chris

Thank you all of our PiMax team for making this available to the General Public. Greatly appreciated. I as well as everyone else here is grateful for the availability. Your hard work and dedication is greatly appreciated.

Shred!

1 Like

Can we get some sample code in C or C# to read the gyro data? Extended mode would support many games if we can add a head tracking to mouse utility. I’ve written mouse shims to support large touchscreens in the past, so I have the c# code to do most of the work if I have a simple way to read the sensors on the HMD. I’d be willing to share my code with you if you prefer to make this utility official. I’d also be willing to make the final code open source if that helps advance the product. I got two units on release day at Banggood, one for myself to resolve the challenges and one for my 24-year-old daughter for Christmas. Before I gift it, if I can get Ark: Survival Evolved and World of Warcraft work, I’m a hero. I’m confident that better support for extended mode would be a HUGE benefit for Pimax 4K.

2 Likes

Just to add, the concept of the utility I’d like to write is this: UI that lets the user add applications by specifying window title so that the utility can find the application when run. It would then move the window to align with the extended pimax display set to 2560x1440. The assumption is that the application is either already an SBS video or SBS supporting UI, or using a utility like TriDef to force SBS mode in non-VR ready apps, like Ark and WoW. This allows the user to start the game and the utility does all the adjustments needed to position and size the window to the Pimax display, then capturing the head rotational data and converting it to mouse motions. The utility UI would allow the user to scale the HMD rotational data to mouse movement to assure that head motion was accurately converted to viewport adjustment in the associated game.

If anyone is interested in working with me on this, please let me know. I hope honestly that the Pimax developers can produce this utility themselves, but I’m glad to help. Sorry but the SDK, while helpful, wasn’t enough to get me to dive right in.

1 Like

Hi there,
I am a software developer and absolutely am interested… what you described is exactly what I also want to build.

I noticed their SDK was more specific Addons for game engines… maybe we could reverse engineer how the unity add-on works… but Pimax Team if you do have some code samples it would be very helpful for our development.

Hello,
Put up some paypal donation info somewhere, I’m poor and definitely not a coder, but I want to contribute to any attempts to make this potentially great system better as fast as possible.

(Off-topic general VR & screen tech question:
If you had two videocards, could a VR headset, with help of some different method of rendering, render higher quality video by pushing video data via two cables. Say each videocard would render every other frame or every other pixel and the data would travel via different cable.

And maybe render different post-processing effects on different card)

haha thanks… maybe if I did make something and people wanted it to have more attention I would… but I would not feel right just accepting money to work on something im already thrilled to work on. Although thanks for showing your interest. Just got home now, and am gonna play around with some ideas… anything I get usable functioning I will make sure to post it.

Your idea with the two video cards reminds me of SLI. That gets two cards to work together as a more powerful whole… however… I think if you wanted it as custom as you described you would need to write your own drivers… I recently have played around with hardware programming… but I usually work at a higher level in the system… so I may not be the best person to comment on your idea…

Here is some info on SLI,

If the PiPlay folks will release a simple console app that tracks head motion and outputs the values to the console, I could easily do the rest! I do think a lot of folks would benefit from this addition.

1 Like

@CodeMusic see http://benchmarksolutionsllc.net which is my site. I’d be interested in any discoveries you make. I am serious, if we can get a simple console app that reads the rotational data and writes it to the console, I can do the rest and I’d be glad to share the code and make the utility open source.

1 Like

Here is my progress so far. I found c:\Windows\System32\LibPVRClient64.dll as specified in the PVR_Interface.h file. I copied it to my D:\Downloads\Pimax4K\Sdk folder and then opened a cmd window and did this:

D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin>dumpbin /EXPORTS D:\Downloads\Pimax4K\Sdk\LibPVRClient64.dll
Microsoft ® COFF/PE Dumper Version 14.00.23918.0
Copyright © Microsoft Corporation. All rights reserved.

Dump of file D:\Downloads\Pimax4K\Sdk\LibPVRClient64.dll

File Type: DLL

Section contains the following exports for LibPVRClient64.dll

00000000 characteristics
57EB81A4 time date stamp Wed Sep 28 03:39:00 2016
    0.00 version
       1 ordinal base
       1 number of functions
       1 number of names

ordinal hint RVA      name

      1    0 000024E0 getPvrInterface

Summary

    3000 .data
    1000 .gfids
    2000 .pdata
    D000 .rdata
    1000 .reloc
    1000 .rsrc
   17000 .text
    1000 .tls

As you may note, it shows that there is one public method, getPvrInterface. This is also reflected in the SDK as: #define PVR_GET_INTERFACE_FUNC_NAME “getPvrInterface”.

The SDK also does a load library on this DLL and initializes it with this code:

static PVR_FORCE_INLINE pvrResult pvr_initInterface() {
if (g_pvr_interface == NULL) {
HMODULE hDLL = LoadLibraryA(PVRCLIENT_DLL_NAME);
if (hDLL == NULL) {
return pvr_dll_failed;
}
getPvrInterface_Fn pGetInterface = (getPvrInterface_Fn)(void*)GetProcAddress(hDLL, PVR_GET_INTERFACE_FUNC_NAME);
if (pGetInterface == NULL) {
FreeLibrary(hDLL);
return pvr_dll_wrong;
}
g_pvr_interface = pGetInterface(PVR_MAJOR_VERSION, PVR_MINOR_VERSION);
if (NULL == g_pvr_interface) {
FreeLibrary(hDLL);
return pvr_interface_not_found;
}
g_pvr_client_dll = hDLL;
}
return pvr_success;
}

This should be enough code hints to get this working in C#… or at least loaded and initialized. I don’t have more time tonight, so figured I’d just log my effort and jump back in next time I have free time. Hope this helps get someone else started too.

1 Like