Barco New Experiences

Barco, Inc.
Sunnyvale, CA
June 2013
April 2017

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.OneRoom PhoneGap appThe OneRoom project was cancelled before the app could be productized.
  • Developed a web-based device management tool in 2014 that dynamically builds the web UIs and client-server communications for managing network video devices (such as encoders, decoders, video walls, LDAP servers, storage servers, workstations, cameras, etc.) across the company's product line by leveraging easy-to-understand XML and JSON device description files. Instead of taking weeks to develop a custom management UI for each device type, it could now be done in hours for most devices. Some device configurations required interactions that were too complex to describe declaratively in the device description files. For, those few cases, I created a generalized hook system that allowed selective customizations of the UI in JavaScript without compromising the declarative approach. The technology has been so successful that most of the divisions that had been building their own device management UIs now use our web UI because it is so much easier to work with.
  • 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).Embedded Media PlayerThe player SDK was mostly used by integrators in health care.