openrndr icon indicating copy to clipboard operation
openrndr copied to clipboard

Make running programs on Android possible

Open hamoid opened this issue 5 years ago • 4 comments

Since OPENRNDR and many Android apps are developed in Kotlin, it should be possible to run OPENRNDR applications in mobile devices.

This a link to the Processing-Android mode for reference: https://github.com/processing/processing-android

  • [ ] Create an OpenGLES driver #103

(add more steps here or below)

Help from Android developers experienced in its architecture are welcome :)

hamoid avatar May 06 '20 08:05 hamoid

Deciding that it is too much effort to maintain such a component is also an option that shouldn't be discarded. It's probably better to have something that works very well on desktop than to have desktop + android but less polished.

hamoid avatar May 06 '20 09:05 hamoid

A discussion about a proof of concept https://app.slack.com/client/TAR5246MP/CEASC1PB7/thread/CEASC1PB7-1612087493.184600

Code can be found at https://github.com/ArthurVimond/openrndr-android-poc (does not use a new GLES driver).

hamoid avatar Jan 31 '21 10:01 hamoid

Interested in looking into this; is https://github.com/ArthurVimond/openrndr-android-poc a good starting point? Were there any discussions around other possible implementations? (Slack link doesn't reveal discussion) 🙏🏼

drinkthestars avatar Jul 09 '22 06:07 drinkthestars

Hi hi :) Yes, a pity that the Slack thread expired :(

As I understand, the better way to do it is to create a GLES rendering backend which would make it compatible with Raspberry Pi as well. Edwin mentioned in Slack that it's "a bit of an undertaking". I think it may help that the shaders have now a JavaScript compatible version.

Here is the JVM version containing GL3 graphics https://github.com/openrndr/openrndr/tree/master/openrndr-jvm

And here the JS version using WEBGL https://github.com/openrndr/openrndr/tree/master/openrndr-js/openrndr-webgl

Even a NULLGL version (to run without graphics?) https://github.com/openrndr/openrndr/tree/master/openrndr-nullgl

Then there's https://github.com/openrndr/openrndr/tree/master/openrndr-application/src

But I don't know how many classes or folders would need to be worked on.

I think what https://github.com/ArthurVimond/openrndr-android-poc tried to do was to recreate the API and mapping drawing operations to a common way of doing those in Android (I may be wrong). But doing that would take work to maintain (or maybe not even doable, in case the OPENRNDR API provides something that it's hard to re-create using the existing Android drawing APIs.

hamoid avatar Jul 09 '22 12:07 hamoid

LWJGL for Android might make things easier?

https://github.com/LWJGL/lwjgl3/issues/715

hamoid avatar May 01 '23 06:05 hamoid