Posted November 24, 2025 by gllmar
November 23, 2025
We're excited to announce gd-empd - a GDExtension that brings the full power of Pure Data into Godot Engine, with first-class WebAssembly support!
gd-empd lets you run Pure Data patches directly in Godot - on desktop and web browsers. Same patches, same behavior, no compromises.
Game audio middleware is expensive and restrictive. Pure Data is free and powerful, but integrating it into game engines has been painful - especially for web. We fixed that.
HOW IT'S DIFFERENT
There are other Pure Data integrations for Godot (godot-pd, godot-pure-data), and we appreciate their pioneering work! Here's what makes gd-empd unique:
Desktop: macOS (Universal arm64+x86_64), Linux (x86_64, arm64), Windows (x86_64) Web: Chrome, Firefox, Safari (with SharedArrayBuffer) Mobile: iOS and Android (experimental - not yet fully tested)
AUTO-UI SYSTEM Add metadata to your Pure Data patch: #X text 20 20 @ui-param slider:Volume vol 0.0 1.0 0.5;
Set one property in Godot: pd.ui_auto_parent = "Parent"
Get: Modern responsive UI, inspector-editable parameters, automatic reset buttons, 7 control types, mobile-first design
DEAD SIMPLE CODE Traditional approach (30+ lines): var instance = PdInstance.new() instance.load_patch("res://patch.pd")
manual audio setup, UI creation, cleanup...
PdNode approach (3 lines): var pd = PdNode.new() pd.patch_path = "res://patch.pd" add_child(pd) # Done!
FULL PD VANILLA SUPPORT
All 200+ Pure Data objects, arrays/tables, MIDI I/O, audio file operations ([readsf], [writesf]), sample-accurate timing
HYBRID ARCHITECTURE Native builds use libpd with direct C++ binding. Web builds use Pure Data compiled to WebAssembly via Emscripten. Result: Perfect behavioral parity everywhere.
WEBASSEMBLY BREAKTHROUGH Getting file I/O working in browsers was the hardest challenge:
Result: [readsf] and [writesf] just work in browsers. No hacks.
MEMORY SAFETY Comprehensive lifecycle documentation prevents memory leaks and duplicate callbacks. See INSTANCE_LIFECYCLE.md for details.
Interactive demo includes:
Play now: https://gllmar.itch.io/gd-empd-examples