Hmdq - a new tool for an OpenVR headset (and other hw) introspection

I have already spent some time here on discussing different aspects of the Pimax headsets, usually related to how OpenVR works, how the rendering works, parallel projection, etc. There were also numerous speculations about the FOV of different modes and this, boosted with sometime quite fuzzy and sometimes outright wrong info from the manufacturers, made me write this tool.

The sole purpose of this tool is to collect as much information about every attached VR device (in OpenVR) as possible and display it in a more suitable way for a human. Apart from the all different “properties” which includes (among others) model and firmware versions of every hardware and can be invaluable for someone debugging a system problem, it also gives the complete information about the headsets view geometry and calculates all different FOVs (individual for each eye and total for the headset).

The FOVs calculated are “technical” FOVs, i.e. they represent how the application “sees” and renders the image. This means, and I cannot stress it enough, they are basically the construction limits of the headsets. The user cannot see more than that (because more is also not seen by the app and therefore not rendered), but can see less depending on other design aspects.

Anyway, this tool is an attempt on providing formalized (and normalized) approach to measure all the different FOVs.

There is a “user manual” available in an enclosed readme and there is another article I published on the subject of FOVs in VR headsets here ( which explains the idea behind.

The tool is open source, and as such open to a public scrutiny, if any doubt arises. I have already tested it extensively on my Pimax 5k+ and OG Vive and collected outputs from others who helped me to test it for Rift CV1, Pimax 8k, and Index, but will be very much interested in receiving more info about basically any other headset. If the info proves consistent, I would most likely publish it as a database on the web.

For exchanging and comparing all the data, the tools supports a normalized output in a JSON file, which includes all the information otherwise printed in a readable form. If anyone would be willing to share that info with me, have a look at this ( about how to do it and let me know.

You can grab the binary on the github directly here (


Could you give us a how to on running this program in windows?
Everything I’ve tried failed. Tried from CMD line, installed BASH, Ubuntu. nothing works.

1 Like

try cmd I had problems with the json file thats why I include it manually

C:\Users\xxxxx\xxxxxx\hmdq-1.0.0-win64\hmdq.exe -a C:\Users\xxxxx\xxxxxx\hmdq-1.0.0-win64\openvr_api.json

1 Like

I got it running, thanks

1 Like

Could you explain what was exactly the problem? I guess I would like to know how your path looks exactly in parts you censored :slight_smile:.

Yes i found it out. If you are not in the same folder as the program like cmd always starts in C:\users\username
And you directly put the programm via drag and drop from the explorer and try to start, it doesnt find the json file.
I assume you are looking in the folder where the cmd is located and not in the hmdq folder.

So I had to add with -a the json file then it worked :stuck_out_tongue:
Or just navigate to hmdq folder :smiley:

1 Like

I see what you mean, and I will change it once I am back at the computer.

It should, by default, pull in openvr_api.json from the same directory hmdq is in. Now, if you call hmdq from a different dir than its own, it does not work.