Lightweight Java Game Library 3


What is LWJGL 3?

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. This access is direct and high-performance, yet also wrapped in a type-safe and user-friendly layer, appropriate for the Java ecosystem.

LWJGL is an enabling technology and provides low-level access. It is not a framework and does not provide higher-level utilities than what the native libraries expose. As such, novice programmers are encouraged to try one of the frameworks or game engines that make use of LWJGL, before working directly with the library.

LWJGL is open source software and freely available at no charge.


Main Features

Low-level Bindings

Direct access to OpenGL, OpenCL, OpenAL, GLFW and other native APIs with uncompromised performance and a Java-friendly binding layer.

Open Source

LWJGL is available under a BSD license. Visit our GitHub repository to monitor progress, report issues and even contribute with your own code!

Built-in Documentation

Get great auto-complete and inline documentation without leaving the comfort of your favorite IDE.


Write your game or application once, deploy on Windows, Mac, Linux.


Need help? Our forum is a great place to seek a solution. Up for a chat? Drop by our IRC channel
(#LWJGL on freenode).

GLFW Bindings

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.


VulkanTM Bindings

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.


OpenCLTM Bindings

The ultimate standard for cross-platform parallel programming on any hardware. LWJGL supports all OpenCL versions (including the latest 2.1 specification) and many useful extensions.


OpenAL Bindings

Cross-platform multichannel three-dimensional positional audio. A powerful API for music playback and audio effects. ALC and many extensions are also supported.


OpenGL® Bindings

Everything you need to create exciting 2D and 3D graphics. LWJGL supports all OpenGL versions (including the latest 4.5 specification), all ARB, Khronos, and OS-specific extensions ever released and dozens of popular vendor-specific extensions. If your favorite extension is missing, ask for it and it will be added in no time!


OpenGL® ES Bindings

A royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems - including consoles, phones, appliances and vehicles. It consists of well-defined subsets of desktop OpenGL, creating a flexible and powerful low-level interface between software and graphics acceleration.


EGLTM Bindings

An interface between Khronos rendering APIs such as OpenGL ES or OpenVG and the underlying native platform window system. It handles graphics context management, surface/buffer binding and rendering synchronization and enables high-performance, accelerated, mixed-mode 2D and 3D rendering using other Khronos APIs.

Oculus VR SDK

LibOVR Bindings (beta)

Create exciting virtual reality experiences with LibOVR, the API of the Oculus VR SDK.

Objective-C Bindings

Use the Objective-C Runtime to interface your JVM application with Cocoa APIs on Mac OS X.

Customization & Utilities

Use libffi to call functions from any native library, use jemalloc for efficient and tunable memory management, use the stb collection of libraries for texture loading, font rendering and much more.

Your favorite API here!

Think LWJGL should have bindings to your favorite API? Let us know or contribute it yourself!

OpenGL® and the oval logo are trademarks or registered trademarks of Silicon Graphics, Inc. in the United States and/or other countries worldwide.
OpenCL and the OpenCL logo are trademarks of Apple Inc. used by permission by Khronos.
OpenGL ES logo is a trademark of Silicon Graphics Inc. used by permission by Khronos.
EGL, the EGL logo, Vulkan and the Vulkan logo are trademarks of the Khronos Group Inc.
Oculus, Oculus VR, Oculus Rift, and the Oculus eye logo are trademarks or registered trademarks of Oculus VR, LLC.

Looking for LWJGL 2?

LWJGL 3 is a fresh start and LWJGL 2 is its predecessor. LWJGL 2 has been used in the creation of dozens of games, including titles like Minecraft by Mojang and Revenge of the Titans by Puppygames. It is also used in popular game engines, like libGDX and jMonkeyEngine.


Why replace LWJGL 2?
Migration Guide