The other projects did most of the heavy lifting. jsmpeg-vnc does the screen capture and sending the data over websocket to jsmpeg which renders it to canvas without buffering. I then took the canvas and used it as a texture in webvr-boilerplate. I needed to make sure the texture was a power of 2 and set texture.needsUpdate to true on each render update. Three.js made it easy to switch the cube out for a plane which I moved a bit closer to the camera. The command arguments I used for jsmpeg-vnc: -b 1000 -s 1024×512 -f 60 -p 9999 "desktop". jsmpeg-vnc doesn't support sound which doesn't bother me since I can use the computer speakers but I'd like to add mouse capture for when the headset is on. And here's a screenshot of it on my Moto G (2nd gen): http://imgur.com/a/uhRuN