A cheap hologram player

#1

My use case with the Looking Glass is to create content on a beefy desktop machine, and then run it in a loop on a separate stand-alone Looking Glass system for viewing purposes only. Think of a holographic picture frame, of sorts.

There are several sub $100 USD single board computers that are capable of displaying 4K video at 60Hz via HDMI 2.0 (the Looking Glass requirement), e.g. the Odroid C2 or the Pine ROCK64. My thought is to get one of these boards, stick Android on it, and target an Android device within Unity to create a playable app. Anyone see a reason why this wouldn’t work?

#2

Hi,

This is something we get asked about a lot! We don’t have a concrete plan to support setups of this nature right away but it’s something we’ll be looking into over the course of the next several months. However, you’re more than welcome to run your own experiments and I’m happy to point you in the right direction.

It’s worth noting that our official SDK does not support Android or Linux at this time; you’re welcome to try and build it but will likely run into issues loading calibration via HID. That code currently exists as an OS-specific blob as it’s slightly less portable than the rest of the Unity code. If you’re committed enough to do a little bit of SDK reverse-engineering I can share a broad overview of how that works on a firmware level, but it’d probably have to be in a friendly capacity rather than an official one as it isn’t something we’re officially supporting at this time.

One final hurdle is that Unity just doesn’t support desktop Linux on ARM at all, so if you want to work via the Holoplay SDK you’re basically forced to use Android.

Beyond that, here are some details on the common SBCs and how they play with the Looking Glass. (Spoiler alert: generally not well right now).

  • Pi 3: it’s actually possible to get 2560p out of one of these guys if you manually bump up the pixel clock speed, but you have to disable GPU accelerated window rendering before it’ll work properly which means that you lose hardware video acceleration and rendering capacities.
  • Odroid C2 : the default build of Android for these guys does support 2560p with video acceleration, but we haven’t run too many tests beyond that. However - my suspicion is that via Unity on Android it may not even be able to handle postprocessing of a prerendered video scene.
  • If you’re not strictly budget-constrained I would consider trying out a Rockchip RK3399-based board, as those probably have the most powerful graphics performance of the SBCs on the market right now. Several months ago we did a quick test running a postprocess shader via Unity under Android and found it to be, basically, minimally viable.
1 Like
#3

Thanks for the detailed response. Maybe I’m not thinking about this in the right way (my Unity experience is fairly limited and I’ve never targeted Android before), but isn’t the solution here simply to create an Android “game” that essentially just plays a cut scene (or several) over and over? So, I have to get the Looking Glass SDK working on my desktop machine, but after creating the scene(s) – since I never need any sort of interactivity on the player-- all I need to do is to get the “game” to play on an Android target; no LG SDK involved, right?

In sum: Isn’t this a matter of just getting a suitable video (with the special 45 slices) to play on a target capable of displaying 4K content?

#4

In addition to being able to read the content (could be any resolution, but 2K to 4K would be ideal, with about 45 views), the playback hardware also needs to run a full-screen pixel shader on the GPU and drive 2560x1600 over HDMI. I suspect a RPi could do it, someone just needs to make it happen. I see in another thread someone is working on a mpv player, so this could do exactly what you (and I and others) want! (thread: Vimeo capture and testing before submitting?)

#5

If an RPi can do this, I’ll make an OpenSCAD model for a 3D printed enclosure to hold it on the back of the LG! I think everyone would love to have a stand-alone LG player that you can just plug in and run with the 4 LG buttons. Let’s make it happen!

#6

I’m not working on mpv, as such. They already support plugging in shaders so it’s just handing it the shader file (exact command line is written inside). The missing part is just calculating the calibration constants from the EEPROM; the lgeeprom.py script extracts them using python-hid, and lgdisplaytest.py contains the calculations to the form the shader wants. So some polish left, but no mpv modifications. The player already works, though I have only tested it on a beefy gaming machine so far, not on a RPi.

Reading the buttons and calibration is a separate task (using USB HID). I can extend the Python scripts to form this part, and transfer commands into mpv accordingly.

#7

I’m guessing the RPi 3 would fall short, but that a Rock64 might just be enough. I’ve got one and an Odroid C2, so once an Android software approach is on offer, I’ll happily test it on both platforms.

FWIW:
https://www.hackerboards.com/compare/192,239,103/

The Mail 450 is much more capable than the VideoCore IV

#8

Oh, and if we get an Android player, we can take advantage of all the cheap “TV boxes” that run Android on the Rockchip RK3399-based board, which @esk (Evan) has said are minimally viable:

see: https://www.gearbest.com/RK3399-_gear/

#9

Although nowhere near the price point of an RPi 3, I wonder if a LattePanda (Alpha) would suffice if cost wasn’t the competing factor? Win10, 4K@60Hz and has a basic GPU.

The form factor also seems small enough that it could be tucked away somewhere so it doesn’t detract from the LG itself. Anyway, I do see the appeal of a lower cost holo player and I do hope something happens in this area.

#10

LattePandas are great for experimentation b/c it’s much, much easier to get a unity build working on one running windows 10. I haven’t specifically benchmarked on a Looking Glass, but for the (relatively expensive) cost, it’s a good bet.