The primary goal of the project is to provide a way for Java developers to get access to resources that are otherwise unavailable or poorly implemented on the existing Java platform. The main philosophy is to expose underlying technology as a thin wrapper, thus creating a simple API. It is also the basis of many high-level Java game engines and libraries, such as LibGDX or the JMonkeyEngine.
On 13 November 2014 version 3 was announced, which was released in alpha version on 27 April 2015 and is a complete rewrite of LWJGL. Many new bindings, including GLFW, EGL and Objective-C, were added. Support for Oculus Rift development was also added with LibOVR bindings. The new version was released on 4 June 2016, after more than 3 and a half years in development.
The library accesses native C code through the Java Native Interface (JNI). Bindings to each of the native libraries exist as different modules so developers can make custom builds with only the things they need in a certain program.
While utility classes are written in pure Java, most of the binding classes are automatically generated by a custom generator implemented in Kotlin.