El-gpu and pix-el: GNU Emacs 2D and 3D game programming

Emanuel Berg (he/him) - Pronunciation: Swenglish, IRC: lacni, incal@dataswamp.org

The following image shows where the talk is in the schedule for Sun 2026-12-13. Solid lines show talks with Q&A via BigBlueButton. Dashed lines show talks with Q&A via IRC or Etherpad.

Format: 20-min talk ; Q&A: BigBlueButton conference room https://media.emacsconf.org/2026/current/bbb-el-gpu.html
Etherpad: https://pad.emacsconf.org/2026-el-gpu
Discuss on IRC: #emacsconf
Status: Waiting for video from speaker

Times in different time zones:
Sunday, Dec 13 2026, ~11:10 AM - 11:30 AM EST (US/Eastern)
which is the same as:
Sunday, Dec 13 2026, ~10:10 AM - 10:30 AM CST (US/Central)
Sunday, Dec 13 2026, ~9:10 AM - 9:30 AM MST (US/Mountain)
Sunday, Dec 13 2026, ~8:10 AM - 8:30 AM PST (US/Pacific)
Sunday, Dec 13 2026, ~4:10 PM - 4:30 PM UTC
Sunday, Dec 13 2026, ~5:10 PM - 5:30 PM CET (Europe/Paris)
Sunday, Dec 13 2026, ~6:10 PM - 6:30 PM EET (Europe/Athens)
Sunday, Dec 13 2026, ~9:40 PM - 10:00 PM IST (Asia/Kolkata)
Monday, Dec 14 2026, ~12:10 AM - 12:30 AM +08 (Asia/Singapore)
Monday, Dec 14 2026, ~1:10 AM - 1:30 AM JST (Asia/Tokyo)
Find out how to watch and participate

Description

In this project, prepared especially for EmacsConf 2026, two modules - el-gpu and pix-el - for graphics on-board the GPU and CPU, respectively - have joined forces and been adapted to the newly added canvas format, an exciting new feature included in vanilla GNU Emacs.

In this video we show no less than three games - a snake clone, which operates on a per-pixel basis; a Tetris game, with tiles loaded on the fly from any visual creation even as it only exists in drawing program, still a dynamic, editable object; and a Descent-like space shooter, powered-up by SDL and OpenGL, executing part CPU-side Emacs Lisp (Elisp), part CPU-side dynamic module C, and part all-GPU GLSL.

el-gpu and pix-el, like their predecessor, bad.el (boxing after dark), which was demonstrated at EmacsConf 2025, comes with an interactive studio, that has its own UI; it offers OOP-style drawing, as well as explicit pixel-plotting, with layerjs, procedural shaders, functional alpha masks, and RGB bitwise blenders, including for transparency; with image editing, effects, rotation, and transformation, with new idiomatic GNU Emacs lisp, e.g. the with-pixels macro; also offering several ways of drawing text on the CPU as well as GPU; and much more.

https://dataswamp.org/~incal/el-gpu

Questions or comments? Please e-mail emacsconf-org-private@gnu.org