A little project I've been cooking;
This allows you to use one simple function to receive pixel coordinates of a point in 3D space to be projected onto a seat HMD. Using it is incredibly simple, just write:
screenX, screenY = project(x, y, z)
in your onDraw() function, where screenX and screenY will be set as the pixel coordinates, and where x, y, and z should be the 3D space coordinates relative to your seat. Of course, you can use other variable names.
X: left/right, right positive
Y: forward/backward, forward positive
Z: up/down, up positive
0,0,0 is the location of your character's head.
And that's it! Feel free to use in any projects that you may be working on, though I'd love some credit.
Note: I suggest implementing certain checks for whether 3D points are on screen, as bugs can happen if they are far outside of the field of vision.