About MUVR

Milestones and Goals!

Milestones

As the clock rolls over 1000 hours spent developing MUVR, it’s important to reflect upon the important milestones and implementation decisions that lead to a realistic product.

  • Protocols

  • WebRTC was chosen for it’s versatile and robust Real-Time communication capabilities utilizing ICE and STUN for NAT traversal.
  • socket.io was chosen for use in WebRTC session establishment and signaling that supports WebSockets and XHR based fallbacks.
  • Enforced H.264 video coding due to prominence of hardware accelerated decoding even in older devices to extend battery life.
  • HAProxy was chosen for it’s lightweight and versatile nature. Straightforward Layer 3 implementation made WebRTC signaling easy.
  • Let’s Encrypt Free certificates, automated renewal (with zero downtime thanks to HAProxy).
  • AutoSSH allows me to run my server cluster within my own home while caching all responses in the OVH hosted frontend; significantly lowering costs.

  • Client Application

  • CSS3 was for it’s powerful (and often GPU backed) performant transforms and wide compatibility for applying styles to video elements.
  • Gamepad API for great and well documented support of many different gamepads.
  • three.js for high accuracy calculations for creating a virtual frustrum to map DeviceOrientation to an x,y coordinate on a plane of dynamic dimensions.

  • Caster Application

  • adapter.js for it’s shim to insulate apps from spec changes and prefix differences.
  • qrcode.js for it’s ability to generate QR codes for pairing that specify a correction level to prevent incorrect scans of large URL’s.
  • WebGL for it’s GPU backed operations. While not fully compatible for all browsers, it offers some immense benefits and will be key in the future.

  • Native Caster Application

  • Electron for it’s ability to package web based applications with a cross-platform nature as well as integrate seamlessly with native applications.
  • Go for it’s high level concurrency and cross platform nature. Go powers the native device input.

Goals

  • Provide documentation
  • Release Native Caster Applications for Windows, Linux (x64, ARVv7/v8), and macOS
  • Implement automatic latency optimization
  • Implement Accessibility options
  • Scale hosting services
  • Native Caster configurations for games that capure the mouse pointer such as first person shooters