OpenGL PiCrate sketches on RaspberryPI
This should be straightforward
I originally developed PiCrate on my amd64
linux box, all looks good (as expected, it is essentially propane after-all), and when I got my raspberryPI, I was heady with success when I got jwishy
etc to run. Not so fast though, opengl sketches are failing.
Blind alleys
I tried most things, Gottfreid Haider warns to use default display settings on PI (this is good advice but did not solve my opengl issue). I even resorted to getting JRubyArt working on raspberryPI which was never my intention, but it’s there (to do that I used the processing.org raspbian image). I was still stuck when ShadowfeindX requested propane to work on Windows, he’d got to work for him (and for opengl he seemed to need non-versioned jars!).
Light bulb moment
Now it seem to be I have been lulled into false sense of security re JOGL
and GLUEGEN
jars, thinking I could use the latest vanilla release (2.3.2), but upon inspection the jars used in vanilla processing have been patched. This wasn’t just restricted to the native binary jars, but also removing the versioning seemed to be important.
The fix
Now this is not super convenient, and messes with my maven/gem build but this what I now do:-
Compile PiCrate (propane) jars as before
Copy and include JOGL
and GLUEGEN
jars from vanilla processing into gem
It would have been so much easier if processing.org used maven central.
The joy
PiCrate 3D now works (in the limited way it can on the RaspberryPI) on the noobs raspbian distro:-
All you need do is install JRuby (it also pays to set up a local gem store). But we are not out of the woods yet JRuby needs fixing (or more specifically its jnr-ffi) to allow jgem
install from rubygems, so we still need to download the ArcBall and PiCrate gems and do a local install.
The proof
monjori shader
joonsrender raytraced media
Screenshots of opengl frames on raspberryPI don’t work (I tried scrot and gimp)
To Do
Tailor examples for PI, await jnr-ffi fix (I’m out of my depth with asm types etc). Create some cool PiCrate specific examples such as an implementation of TechnoMachine.