whatisgithub

What is lwlgl?

edencompiler/lwlgl — explained in plain English

Analysis updated 2026-05-18

3Common LispAudience · developerComplexity · 4/5LicenseSetup · moderate

In one sentence

A Common Lisp library that gives developers direct low level access to graphics, audio, and compute libraries for building games.

Mindmap

mindmap
  root((repo))
    What it does
      Wraps GLFW OpenGL Vulkan
      Wraps OpenAL OpenCL
      Adds Lisp helpers
    Tech stack
      Common Lisp
      CFFI
      ASDF modules
    Use cases
      Build 2D or 3D games
      Load 3D models
      Play spatial audio
    Audience
      Common Lisp developers
      Game developers
      Graphics programmers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a 2D or 3D game in Common Lisp using GLFW windowing and OpenGL rendering.

USE CASE 2

Load a Wavefront OBJ 3D model file directly into renderable geometry.

USE CASE 3

Add spatial, positional audio playback to a Lisp application using OpenAL bindings.

What is it built with?

Common LispCFFIOpenGLVulkanGLFWOpenAL

How does it compare?

edencompiler/lwlgllicjon/clos-alchemywondermonger-daydreaming/latent-lisp
Stars330
LanguageCommon LispCommon LispCommon Lisp
Setup difficultymoderatehardmoderate
Complexity4/54/55/5
Audiencedeveloperdeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a CFFI-compatible Common Lisp setup plus platform native libraries like GLFW or OpenAL for the subsystems used.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

So what is it?

LWLGL is a library for the Common Lisp programming language that gives developers low level access to graphics, audio, and compute hardware for building games and similar real time applications. It is modeled after LWJGL, a well known equivalent library for Java, and it does not try to be a full game engine. Instead it wraps several existing native libraries so Lisp programs can talk to them directly: GLFW for creating windows and reading input, OpenGL and Vulkan for rendering graphics, OpenAL for audio, OpenCL for general purpose computing on the graphics card, and stb_image for loading image files. The current stable release is version 1.0.0, which the author describes as the first release built around a new binding architecture rather than a claim of complete coverage of every one of these underlying libraries. Coverage varies by piece: GLFW support is described as substantial, OpenGL covers the core features needed to run the included examples but not every possible command, OpenAL supports practical playback and spatial audio, and Vulkan and OpenCL currently offer discovery and setup features rather than full command coverage. Beyond the raw bindings, LWLGL adds Lisp friendly helpers on top: math tools for vectors, matrices, and quaternions used in 3D graphics, keyboard and mouse input handling with named actions, a simple asset loading and caching system, a dependency free parser for Wavefront OBJ 3D model files, frame timing and profiling tools, and helper functions that connect these pieces together, such as loading a texture file straight into an OpenGL texture, or an OBJ file straight into renderable geometry. The library is organized into separate modules using Common Lisp's ASDF build system, so a project can load only the pieces it needs, for example just the math tools, or just the GLFW windowing bindings, instead of the whole library. It works across Windows, Linux, and macOS, and ships runnable example programs covering windowing, 3D rendering, procedural textures, instancing, and positional audio. The project is released under the MIT license and its documentation is available in both English and Brazilian Portuguese. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Help me load the LWLGL system in Common Lisp and open a basic GLFW window.
Prompt 2
Show me how to load an OBJ model and render it with LWLGL's OpenGL bindings.
Prompt 3
Explain which LWLGL subsystems I need to load for a simple 2D game versus a 3D game.
Prompt 4
Walk me through LWLGL's math module for vectors, matrices, and quaternions.
Prompt 5
How does LWLGL's OpenCL support compare to its OpenGL and Vulkan support in this release?

Frequently asked questions

What is lwlgl?

A Common Lisp library that gives developers direct low level access to graphics, audio, and compute libraries for building games.

What language is lwlgl written in?

Mainly Common Lisp. The stack also includes Common Lisp, CFFI, OpenGL.

What license does lwlgl use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is lwlgl to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is lwlgl for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.