Skip to content
LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL), audio (OpenAL) and parallel computing (OpenCL) applications.
Kotlin C Java Other
Latest commit 6dec71b May 28, 2016 @Spasi Spasi Update Vulkan to 1.0.15

LWJGL - Lightweight Java Game Library 3

This repository hosts LWJGL 3, the complete rewrite and next major version of LWJGL. Everything you need to know about the project can be found in the Wiki. Other useful links:

For a quick overview of the project structure, installation instructions and configuration options, see doc/README.

For migrating LWJGL 2 code to LWJGL 3, see the Migration Guide.

LWJGL 3 can be used with Maven/Gradle/Ivy, with the following dependencies:


where ${version} is a version (e.g. 3.0.0) released on Maven Central. Nightly builds are also available from the Sonatype Nexus repository, with a snapshot build version (e.g. 3.0.1-SNAPSHOT).

LWJGL 3 requires Java 8 or later to build and run and currently supports the following platforms/architectures:

  • Linux x64
  • MacOS X x64
  • Windows x86
  • Windows x64

Example code:

LWJGL 3 includes the following bindings:

Khronos APIs

Library Description
EGL An interface between Khronos rendering APIs such as OpenGL ES or OpenVG and the underlying native platform window system.
OpenCL An open, royalty-free standard for cross-platform, parallel programming of diverse processors found in personal computers, servers, mobile devices and embedded platforms.
OpenGL The most widely adopted 2D and 3D graphics API in the industry, bringing thousands of applications to a wide variety of computer platforms.
OpenGL ES A royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems - including consoles, phones, appliances and vehicles.
Vulkan A new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.

Display and Input

Library Description
GLFW Create multiple windows, handle user input (keyboard, mouse, gaming peripherals) and manage contexts. Also features multi-monitor support, clipboard access, file drag-n-drop, and much more.
JAWT The AWT native interface.
LibOVR The API of the Oculus SDK.
nfd A tiny, neat C library that portably invokes native file open and save dialogs.


Library Description
OpenAL A cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications.
OpenAL Soft An LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API.


Library Description
NanoVG A small antialiased vector graphics rendering library for OpenGL.
par_shapes Generate parametric surfaces and other simple shapes.

stb - single-file public domain libraries for C/C++

Library Description
stb_easy_font Quick-and-dirty easy-to-deploy bitmap font for printing frame rate, etc.
stb_image Image loading/decoding from file/memory: JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC
stb_image_resize Resize images larger/smaller with good quality.
stb_image_write Image writing to disk: PNG, TGA, BMP
stb_perlin Revised Perlin noise (3D input, 1D output).
stb_rect_pack Simple 2D rectangle packer with decent quality.
stb_truetype Parse, decode, and rasterize characters from truetype fonts.
stb_vorbis Decode ogg vorbis files from file/memory to float/16-bit signed output.


Library Description
dyncall Encapsulates architecture-, OS- and compiler-specific function call semantics in a virtual bind argument parameters from left to right and then call interface allowing programmers to call C functions in a completely dynamic manner.
jemalloc A general purpose malloc implementation that emphasizes fragmentation avoidance and scalable concurrency support.
xxHash An Extremely fast Hash algorithm, running at RAM speed limits.

Use of a binding is subject to the terms of the corresponding license.

Something went wrong with that request. Please try again.