Reimagine Java on Desktop & Bare-Metal Devices

The vision and reimagination is to unite forces and bring back Java UI on bare-metal embedded devices, mobile and desktop. In the lasts months and years, I have sadly seen companies revoking their commitment and trust in Java in regards to Human Machine Interface (HMI) or User Interface (UI) applications.

This is due to Oracle having essentially dropped the ‘Java Desktop’ … etc. (long debate, adding OpenJFX)

However, Java as a language with a fully managed memory model is still part of the
(politically) supported recommended languages from NIST (controversy and debated in the C++ community).

In this regard, I created my initial blog entry regarding immersive UI + 3D scene on the desktop, mobile and on bare-metal embedded systems without a windowing system.

Graph UI utilizes Resolution Independent NURBS Curves Rendering using Programmable Graphics Pipeline, i.e. rendering curves directly on the GPU, resolution independent [ paper, slides ]. This method allows us to to have an ultimate fast font and UI rendering engine, suitable for all devices and applications. No CPU based curve nor font pre-rendering (matching a target resolution) is required.

(click on image for normal resolution, 1280×720)

 

And here is a little screen recording with audio …

 

(Use this link to download or click to view in normal 1280×720 resolution)

 

This is included in JogAmp’s feature and todo list.

DRM/GBM as support for JOGL + NEWT has been added, hence we are capable of running on a bare metal device without a windowing system. Here is Xerxes demonstrating this feature on a Raspberry Pi4:

 

 

Also of interest might be a related discussion within a OpenJFX bug entry regarding re-merging JOGL w/ OpenJFX.

Bottom line, it might help the Java community to reimagine and revision the UI across devices.

Perhaps we can join efforts and also allow this endeavor to help sustaining my JogAmp work in this regard.

2 thoughts on “Reimagine Java on Desktop & Bare-Metal Devices”

  1. For the interested parties, the following changes were made ad-hoc for this GPUUISceneGLListener0A demo:

    • Using FreeSerif.ttf as main font and FreeMonoBold.ttf for the status line
    • Adjusted positioning and size a little
    • Removed the crosshair-cursor
    • Fixed the FFMPEGMediaPlayer for Debian 11
      • Using ffmpeg 4.x.y (lavc58.lavf58.lavu56.lavr04)
      • Dropped ffmpeg < 4 support
      • Decoded video frames are delivered as YUV and further decoded to RGBA in our shader

    Of course, all previous fixes as described in this blog-series were applied to properly render the fonts.

  2. Added the following segment to text for clarity, i.e. the actual differentiation from other curve and font rendering toolkits:

    Graph UI utilizes Resolution Independent NURBS Curves Rendering using Programmable Graphics Pipeline, i.e. rendering curves directly on the GPU, resolution independent [ paper, slides ].
    This method allows us to to have an ultimate fast font and UI rendering engine, suitable for all devices and applications. No CPU based curve nor font pre-rendering (matching a target resolution) is required.

Comments are closed.