A cheap hologram player

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?

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

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?

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?)

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!

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.

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

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/

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.

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.

Glad to see the company has embraced the idea of a standalone player with the new Portrait product. Will you release the Pi 4 code so that we can gain this functionality for our old landscape models?

1 Like

A fanless stand-alone lightfield picture display is possible, and during the holiday break I was finally able to complete it! Here is an album showing results:

Stand-alone Looking Glass display (Raspberry Pi 4)


It uses a Raspberry Pi 4 with a 8" Looking Glass. I think it could also work with the 16" since the rPi4 can drive 4K.

I captured about 150 lenticular lightfield images while the LG was connected to my PC (so they are only correct for my LG, none other), and I use a simple slideshow player (“feh”) on the rPi4 to show them. That’s it! (I also had to turn off the screen saver, disable overscan, make it auto-run on boot, etc. but there are excellent “Raspberry Pi picture frame” tutorials on the web).

I had originally planned to 3D print an enclosure, but ran out of time. Maybe later. For now, this sits on the shelf showing holograms all day, and I’m thrilled since it is so much better than my LG sitting forlorn in it’s case.

One could also make it display quilts and videos, but I’m just happy to have it showing stills for now.

2 Likes

Great job! Mind sharing your parts list, especially where you got the short/angled video cables? Also what OS are your running on your RPi4?

Thanks!!!

Here is the exact HDMI cable I used: https://www.amazon.com/gp/product/B08QS6CT73/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1

It’s a regular Raspberry Pi 4. The USB cables are both just for power (one came with LG, the other is standard USB C for rPi4). I think it’s NOOBS OS on the rPI4.

///d@

ohh I really want to do this! I have a few questions…

(update) Oh I see this requires a raspberry pi4? I have a 3B…if it does then no problem I’ll grab a pi4!

  • How did you capture the shots? standard print screen in full screen apps like quilt viewer and Depth Media player?

  • saved as 2560x1600?

  • How did you setup your LG for the Pi? I set overscan to 0 but only get a black screen. I do see a light black, so I know the power is working. Did you st the resolution in config? Im a pi noob, sorry for the basic questions. I’m using raspian from a retropi install and assume I should see my pi on the monitor or does that only work in the image viewer?
    Thanks!

Yes, for most of these I captured using a windowed alt+print screen and saved a 2560x1600 PNG. For some where that didn’t work I captured a dual-screen print screen and used ImageMagick script to crop a whole folder of images to just the LG screen. These 200+ screencaps are device-specific because they are device-specific lenticulars, so there is no use sharing them with anyone.

I am also a Pi noob; I only learned enough to get this working. I wasted a lot of time with incorrect results until I turned off overscan. It’s required. You can turn it off using a boot menu (hold some key down during boot, get text-mode menu system, find setting, turn off). I don’t know why you’re not getting a picture, but maybe rPi3 only goes the HD resolution, not 2.5K (8") / 4K (16") needed for LG display?

Mine’s been running 24/7 for weeks now, and I love catching glances of virtually real objects. Even from 8 feet away there is still great 3D appearance an 8" Looking Glass.

Be careful when mounting the Pi - I initially used double-sided foam tape but apparently it’s conductive enough to make the Pi not work. I added a 1/8" hardboard that the Pi is zip-tied to and the board is double-sided taped to the LG. I was going to 3D print a fancy enclosure, but it’s hidden so I don’t care.

great info, thanks! I managed to get a single captured shot to show, so I’m very psyched! Didn’t need a pi4 since LG posted a good pi3 config setting. Yes, I just want it for this monitor only. I’ve been avoiding quilts for a while, concentrating on realtime unity work, this has got me excited to render some work instead. Thanks again!

Can you share the Pi3 config you use for the LKG ?
EDIT: got it here: