TARGET AUDIENCE
This app has been published for developers following the WebFX project, and is part of the project demos.
FOR NEW AUDIENCE
WebFX is a free, open-source cross-platform solution that can target 7 platforms (Web, Android, iOS, macOS, Linux, Windows & embed such as Raspberry Pi) from a single Java code base.
Underlying technologies: OpenJFX, Gluon & GWT.
For instance, you can visit the web version of this same app at https://raytracer.webfx.dev
Whatever the platform, the application source code is exactly the same (see the LINKS section below to access the source code of this demo).
The application is written in Java and uses the JavaFX API to build the user interface.
The Gluon toolchain (built on top of GraalVM) is used to compile the application Java code into a native app for all platforms except the Web (so this includes this Android version).
GWT is used to compile the Web version. It transpiles the Java code into an optimised JavaScript code.
As a result, all executables in all platforms offer optimized performances.
ABOUT THIS PARTICULAR DEMO
This demo shows an example of an app that doesn't block the UI despite a heavy CPU usage, and this on any platform (even on the Web).
While the application is computing the ray tracing, the UI is still reactive, you can even play the animation computed so far while it continues the computation in the background.
This is achieved by using the WebFX Worker API, which is translated to actual Web Workers for the web platform, and standard Java threads for other platforms.
LINKS
Demo source code: https://github.com/webfx-demos/webfx-demo-raytracer
WebFX Website: https://webfx.dev
WebFX GitHub: https://github.com/webfx-project/webfx