Developed several browser-based video playback and video device management applications. Some examples (in reverse chronological order):
- Created several proof-of-concept webapps in 2017 experimenting with ideas that will make virtual meetings more immersive. Our approach was largely inspired by the Star Wars™ films. If you remember, the Jedi Council held meetings in which remote participants were setting in seats using holographic projections of themselves and vs. versa. I prototyped the same two-way immersive meeting idea using WebGL 3-D and WebRTC in web browsers. The success of this advanced prototype landed me a research position at Barco Labs a month later. More...
- Created a prototype Windows desktop application in 2016 for a cloud-based virtual collaboration project, code named OneRoom, which provided the same user experience to remote users that ClickShare provided in meeting rooms. More...
- Created a prototype smartphone app in 2015 that allowed users to join virtual meetings in ClickShare rooms by simply selecting a scheduled meeting displayed by the app as part of the OneRoom project. Using a unique code broadcast by a Bluetooth LE beacon (placed in each ClickShare room) together with the user's name and meeting item chosen from an Outlook or Google calendar, the app would cause the OneRoom cloud servers to send a signal to that ClickShare box to join that virtual meeting (and inform all other participants of the new participant's name and location). I chose the PhoneGap app platform so the app would be portable across all popular smartphones. However, the 3rd-party, native beacon LE and calendar plug-ins didn't quite do what I needed, so I customized the iOS native plug-ins on the iPhone to make the app work as desired leveraging my previous experience developing iOS apps in Objective-C.The OneRoom project was cancelled before the app could be productized.
- Developed a web-based video player SDK in 2013 that could handle several streaming protocols across desktop and mobile platforms. The player dynamically switched to the most appropriate streaming protocol (H264, V2D, HLS, etc.) based on the constraints of the platform and browser in use, loading plug-ins (such as Flash) when needed. The SDK was designed with integrators in mine by allowing multiple instances of the player to be embedded within the integrator's custom web pages (via iframes to avoid CORS issues) and the SDK allowed custom skinning and branding via a simple JSON description file. The SDK player, shown below, had all the features of modern video players, including error messages (0), recorded and live modes, bookmarking (8), a play-head bar with buffer ahead/behind (7), time indicators (2, 3 & 4), and the usual set of player/zoom controls (5 & 9, which could be selectively enabled/disabled via skinning).The player SDK was mostly used by integrators in health care.