HoloPlay Core: Custom Rendering for Everyone

HoloPlay Core: Custom Rendering for Everyone

Hi! This is Evan from the Looking Glass Factory developer team. I'm responsible for much of the underlying code that pulls together our core software platforms by managing low-level communication with the hardware. You might know me from the Looking Glass forums, our Discord channel, or some of my various posts about light field photography.

It's hard to believe that we released the first iteration of the HoloPlay Unity Plugin nearly three years ago! Through the process of designing and launching the Looking Glass ecosystem, we made several infrastructure decisions to keep the experience of setting up and using a Looking Glass as plug-and-play as possible. That's why when you connect your brand-new Looking Glass for the first time, it appears to your computer as a USB joystick and an HDMI monitor.

The driver-less nature of this system is convenient, but it's created a few roadblocks in the developer experience that we've never been totally satisfied with. Rendering properly to the Looking Glass involves convincing your operating system and GPU to draw to the correct display coordinates with a certain type of window. It also requires a snippet of calibration data that gets pulled from the device firmware over USB. There's a substantial amount of logic in enumerating the devices connected, detecting whether they've been initialized properly, and actually drawing to them, all of which varies from OS to OS and Looking Glass to Looking Glass. That's why we maintain a level of abstraction for the developer, providing several implementations to handle this automatically through our Unity, three.js, and Unreal plugins.

Many developers in our community have already built their own 3D software, perhaps using a custom rendering pipeline built from scratch in DirectX, OpenGL, or Metal. They don't need to use our tools; they just want to get their 3D software up and running in the Looking Glass. Since the logic and hardware access described above have always been intrinsically baked into our SDKs, it's been a tricky process to transfer control of it to developers in a way that is portable, reliable, and consistent.

But now we've done it - introducing the HoloPlay Core SDK!

The HoloPlay Core SDK is distributed as a precompiled dynamic library. It's simple to write bindings for it in any programming language, there are no external dependencies, and you can use it with identical code independently of device, build environment, and OS. It's also available as a native JavaScript library, whose apps can then be run in a browser or through a Node or Electron context.

Have an existing 3D rendering pipeline and want to pull it into the Looking Glass? Want to target computers with integrated GPUs and build fast applications without the performance overhead of the Unity runtime? The HoloPlay Core SDK gets out of your way, providing the essential building blocks to add a holographic viewport to any 3D software development workflow.

If you've used your Looking Glass in the past few months, you may have been directed to download HoloPlay Service. This is an application that handles all direct communication with the device, extracting calibration data and window positioning information, and provides that information to other processes on the same machine via an API endpoint.

The latest versions of our developer tools - the HoloPlay Unity and Unreal plugins, Library, Depth Media Player, and HoloPlay.js - all access the Looking Glass through HoloPlay Service. Internally, they do so via the HoloPlay Core SDK, which we are now making available to our developer community.

And for the first time, we're bringing HoloPlay Service, HoloPlay Core, HoloPlay.js, and the HoloPlay Unity plugin to Linux platforms! HoloPlay Service is available in .deb and .rpm binary packages, which require an x64 processor, X desktop environment, and reasonably stable graphics stack.

Shawn went into more detail in his post about the potential the HoloPlay Core SDK unlocks for developers working on professional 3D software in design, engineering, art and medical fields. We're demonstrating this range of use through our early partnership with Schrödinger, a company that makes molecular visualization tools to accelerate medical research and drug discovery.

It's been a pleasure working with Schrödinger's passionate development and leadership teams over the past few months, and it's been extremely gratifying to see the direct impact of our work on tools used by thousands of medical researchers - needless to say, a crucially important demographic. The launch of the HoloPlay Core SDK and the advent of a new class of software on our platform feels like a giant step closer to the original vision for the Looking Glass laid out in our Kickstarter post from 2017 - a universal holographic canvas for 3D creators.

If you work for a business that makes professional 3D tools and think the HoloPlay Core SDK could help expand the value of your software, we would love to hear from you!

And developers, stay tuned for more announcements over the next several months. Myself and the rest of the team have some exciting plans for the future of HoloPlay Service and HoloPlay Core, and we're looking forward to hearing your feedback on how to make the holographic conversion process as fluent and seamless as possible.

Stay updated with Looking Glass Factory by way of newsletter.

Looking Glass Factory is dedicated to building the holographic future. Sign up for our newsletter for the latest events, product updates, and more.