Published February 6, 2026 | Version v3.0.1
Software Open

pd4web: Running PureData Patches in Browsers with Web Audio

Authors/Creators

Description

Pd4Web v3.0.1

Type: Major internal rewrite (breaking changes)

This release is a complete rewrite of Pd4Web, migrating the core from Python to C++, introducing a new execution and messaging model, and significantly changing the public APIs. It also updates the Pure Data runtime and expands language support.

Core architecture

  • Full rewrite from Python to C++.
  • New native core focused on performance, determinism, and tighter integration with WebAssembly.
  • Removal of the previous Python-based runtime and tooling.
  • Significant internal refactoring; previous internals are not compatible.

Pure Data

  • Updated bundled Pure Data version to Pd 0.56.
  • Improved compatibility with modern Pd patches and externals.
  • Better alignment with upstream Pd behavior.

Language and scripting support

  • Added support for pdlua.
  • Lua scripts can now be embedded and executed alongside Pd patches.
  • Pd4Web also supports GUI objects, rendered with GPU;
  • Improved extensibility for script-driven patches and control logic.

JavaScript and TypeScript API

  • Completely redesigned JavaScript API.
  • Previous JS/Python-facing APIs are no longer compatible.
  • New, unified messaging system.
  • Added TypeScript type definitions, by @richdouglasevans;
  • Typed messaging APIs (sendMessage, file transfer, control helpers).
  • API signatures now accurately reflect runtime behavior.

Build and toolchain

  • Updated EMSDK version.
  • Major improvements to CMake and build configuration.
  • Fixed Pd4Web installation layout.
  • More reliable cache handling and clean builds.
  • Improved version reporting and consistency.

Documentation

  • Updated documentation to reflect:

    • New C++ core.
    • New JavaScript / TypeScript APIs.
    • pdlua integration.

Breaking changes

  • Python-based workflow removed.
  • All previous APIs are obsolete.
  • Existing projects must migrate to the new JavaScript / TypeScript API or keep using the version v2.3.0.
  • Custom tooling built on top of the old runtime will not work without adaptation.

Compatibility

  • Not compatible with Pd4Web ≤ 2.x.
  • Requires project updates to use the new API and build system.

Notes

This release is recommended if you:

  • Want Pd 0.56 support.
  • Need pdlua integration with GPU rendering support;
  • Prefer a native C++ core for performance and long-term stability (just for me I think);
  • Are starting new Pd4Web projects or planning a migration.
  • Want a more complete JavaScript API;

Notes

If you use this software, please cite it as below.

Files

charlesneimog/pd4web-v3.0.1.zip

Files (55.6 MB)

Name Size Download all
md5:e0b5863ed86b400aca2e3c9be7edeb3a
55.6 MB Preview Download

Additional details

Related works