2025

icon WebGPU Shader Toy
2025-08-24

Pushed WebGPU Shader Toy update: v2025.08.24

  • Fixes flickering when resizing

Run the new version

icon emscripten-glfw
2025-08-24

Released emscripten-glfw 3.4.0.20250824 with the following changes:

  • The code has been optimized for size
  • Fixed #21: Flicker when resizing
    • to fix this issue, resizing (when the handle is moved or the window resized) is now delayed until glfwPollEvents() is called. Make sure to call glfwPollEvents() at the beginning of the loop to ensure a flicker-free experience. See Events & Main loop for more details.
icon re-mock
2025-08-17

Released re-mock update: v1.8.1

  • Fixes issue with JBOX_TRACE called from destructor
icon re-cmake
2025-08-17

Released re-cmake v1.8.5 with the following changes:

  • Use re-mock 1.8.1 (fix for JBOX_TRACE crashing in destructor)

Released re-cmake v1.8.4 with the following changes:

  • Use re-logging 2.0.2 (simplified prefix)

Available with RE Quickstart - Bootstrap Tool

icon re-logging
2025-08-16

Released re-logging v2.0.2 with the following changes:

  • Simplified prefix logic
icon re-logging
2025-08-15

Released re-logging v2.0.1 with the following changes:

  • Fixed prefix override

Released re-logging v2.0.0 with the following changes:

  • Removed most of the loguru implementation in favor of a lighter implementation (#1)
  • Only the major loguru APIs were kept (DLOG_F, ABORT_F, DCHECK_F and DCHECK_*_F variants)
  • Added RE_LOGGING_SET_VERBOSITY macro to change the logging verbosity at runtime
  • Added RE_LOGGING_DEFAULT_VERBOSITY C define to change the default logging verbosity at compilation time (default to INFO)
  • Added RE_LOGGING_STRIP_FILE_PATH C define to change if the filename or the full path is displayed (default to filename)
  • Replaced loguru::init_for_re (now deprecated) with the macro RE_LOGGING_INIT_FOR_RE
  • Replaced loguru::init_for_test (now deprecated) with the macro RE_LOGGING_INIT_FOR_TEST
icon re-cmake
2025-08-15

Released re-cmake v1.8.3 with the following changes:

  • Use re-logging 2.0.1 (fix for prefix override)

Released re-cmake v1.8.2 with the following changes:

  • Use re-logging 2.0.0 (fix for Rack Extension development lifecycle with Recon)
  • Renamed RE_CMAKE_*_VERSION to re-cmake_*_VERSION to be consistent with other projects
icon emscripten-ports
2025-08-13

Released emscripten-ports v2025.08.12 with the following changes:

  • Upgraded ImGui to 1.92.2b (hot fix)
icon emscripten-ports
2025-08-12

Released emscripten-ports v2025.08.12 with the following changes:

icon emscripten-ports
2025-07-12

Released emscripten-ports v2025.07.12 with the following changes:

icon emscripten-ports
2025-06-26

Released emscripten-ports v2025.06.26 with the following changes:

icon Jamba
2025-06-23

Released Jamba 7.3.0 with the following changes:

  • Upgraded Jamba to use VST3 SDK 3.7.14 (release notes)
  • Upgraded GoogleTest to 1.17.0
icon emscripten-ports
2025-06-08

Released emscripten-ports v2025.06.08 with the following changes:

  • Dawn port has been removed because it is now part of Emscripten (since 4.0.10) (--use-port=emdawnwebgpu)
icon emscripten-glfw
2025-06-07

Released emscripten-glfw 3.4.0.20250607 with the following changes:

  • The main port file has been simplified and is now using the new (as of 4.0.10) “external port file” Emscripten feature
icon Jamba
2025-06-06

Released Jamba 7.2.1 with the following changes:

  • Uses “Visual Studio 17 2022” by default on Windows when creating a new device (you can still use “Visual Studio 16 2019” via the -G option). Note that “Visual Studio 16 2019” is no longer automatically tested.
icon re-cmake
2025-05-18

Released re-cmake v1.8.1 with the following changes:

  • Updated GoogleTest version (to get rid of CMake warnings)
  • Upgraded re-mock version
  • Updated RE Quickstart to use this new version
icon emscripten-ports
2025-05-01

Released emscripten-ports v2025.05.01 with the following changes:

  • Added new port: Dawn for WebGPU support (JavaScript WebGPU support soon to be deprecated in Emscripten)
    • Dawn is an open-source and cross-platform implementation of the WebGPU standard
icon emscripten-ports
2025-03-18

Released emscripten-ports v2025.03.18 with the following changes:

  • Upgraded ImGui to 1.91.9b (hotfix)
icon emscripten-ports
2025-03-14

Released emscripten-ports v2025.03.14 with the following changes:

  • Upgraded ImGui to 1.91.9
icon emscripten-glfw
2025-03-05

Released emscripten-glfw 3.4.0.20250305 with the following changes:

  • Fixed missing i key in keyboard mapping. Thanks, @iarwain for PR #18
icon Jamba
2025-03-01

Released Jamba 7.2.0 with the following changes:

icon WebGPU Shader Toy
2025-02-27

Pushed WebGPU Shader Toy update: v2025.02.27

  • Fixes button disabled when going backward
icon WebGPU Shader Toy
2025-02-26

Pushed WebGPU Shader Toy update: v2025.02.26

  • Switching tabs pauses the shader clock
icon emscripten-ports
2025-02-24

Released emscripten-ports v2025.02.24 with the following changes:

  • When using WebGPU with ImGui, disable WebGL2 as it is unnecessary and adds to the final output size
icon emscripten-glfw
2025-02-09

Released emscripten-glfw 3.4.0.20250209 with the following changes:

  • Added support for touch (mobile)
  • Added support for wasm64 (-sMEMORY64 Emscripten option)
icon emscripten-ports
2025-02-01

Released emscripten-ports v2025.02.01 with the following changes:

  • Upgraded ImGui to 1.91.8
icon emscripten-glfw
2025-01-17

Released emscripten-glfw 3.4.0.20250117 with the following changes:

  • Added port option disableWebGL2 to disable support for WebGL2 when not needed (reduces JavaScript code size)
icon emscripten-ports
2025-01-14

Released emscripten-ports v2025.01.14 with the following changes:

  • Upgraded ImGui to 1.91.7
  • Upgraded port file to force WebGL 2 to prevent errors with the Emscripten 4.0.0 release (which contains a contrib.glfw3 regression bug)
icon emscripten-glfw
2025-01-12

Released emscripten-glfw 3.4.0.20250112 with the following changes:

  • Added support for GLFW_CONTEXT_VERSION_MAJOR and GLFW_CONTEXT_VERSION_MINOR
  • Re-enable GL extensions by default (regression introduced in 3.4.0.20241230). Fixes #13.
  • Changed port to automatically set the proper Emscripten flags to enable GLFW_CONTEXT_VERSION_MAJOR. Fixes #14.

2024

icon emscripten-glfw
2024-12-30

Released emscripten-glfw 3.4.0.20241230 with the following changes:

icon re-cmake
2024-12-22

Released re-cmake v1.8.0 with the following changes:

  • Added support for optional patch metadata files (rsmeta) introduced in SDK 4.6.0

In addition, I updated the following projects accordingly:

icon emscripten-glfw
2024-12-21

Released emscripten-glfw 3.4.0.20241221 with the following changes:

  • Added support for pthread (check example_pthread for a comprehensive example)
icon emscripten-ports
2024-12-11

Released emscripten-ports v2024.12.11 with the following changes:

  • Upgraded ImGui to 1.91.6
    • Added disableDefaultFont option to the port to enable the IMGUI_DISABLE_DEFAULT_FONT define thus disabling building the default font completely (saves almost 25k in the final build)
icon SAM-SPL 64
2024-12-09

Released SAM-SPL 64 v1.6.1 with the following changes:

  • Fixed Audio Unit name collision
icon Jamba
2024-12-01

Released Jamba 7.1.3 with the following changes:

  • Use FetchContent_Populate/FetchContent_MakeAvailable with SOURCE_SUBDIR option (see CMake discussion)
icon SAM-SPL 64
2024-11-29

Released SAM-SPL 64 v1.6.0 with the following changes:

  • Fixed a crash when exporting the sample
  • Make sure that the exported file is saved with the proper file extension
  • Migrated to Jamba 7.1.2 / VST SDK 3.7.12
  • Removed support for VST2
icon Jamba
2024-11-26

Released Jamba 7.1.2 with the following changes:

  • Migrated Jamba to use VST3 SDK 3.7.12 (release notes). Please check other release notes to see what has changed since 3.7.8 (the previous SDK version supported by Jamba).
  • Fixed deprecated CMake warnings with FetchContent_Populate
  • Fixes issues with some DAWs on Windows when using the bundle format
  • Fixes the create-plugin.py tool on Windows
icon emscripten-ports
2024-10-07

Proudly announcing the release of a brand-new project emscripten-ports.

The goal of this project is to collect ports that are not part of Emscripten.

The first port released is for ImGui, a bloat-free Graphical User interface for C++ with minimal dependencies.

icon emscripten-glfw
2024-10-04

Released emscripten-glfw 3.4.0.20241004 with the following changes:

  • Implemented custom cursors (glfwCreateCursor)
    • uses a canvas to draw the cursor image into it and convert it into a URL (canvas.toDataURL())
    • uses the CSS property syntax: cursor: url(xxx) xhot yhot, auto when calling glfwSetCursor with a custom cursor
icon emscripten-glfw
2024-09-12

Published a blog post properly introducing emscripten-glfw.

You can read about the history of the project and some of the primary features.

An application built with emscripten-glfw

icon WebGPU Shader Toy
2024-09-08

Pushed WebGPU Shader Toy update: v2024.09.08

  • Added a History menu to undo/redo Shader level changes.
  • Added a Quick Export shortcut (Cmd + S / Ctrl + S).
  • Added the ability to reset the settings only.
  • Added a way to import a shader given a URL.
  • Moved some examples outside the code and imported via URL.
  • Added 2 examples: Fire and Marble.
icon emscripten-glfw
2024-09-07

Released emscripten-glfw 3.4.0.20240907 with the following changes:

  • Fixed Meta/Super key workaround to also handle the rare (but possible) use-case of having other keys down before pressing the Meta/Super key
icon WebGPU Shader Toy
2024-08-18

Pushed WebGPU Shader Toy update: v2024.08.18

  • Added support for macOS keyboard shortcuts.
  • Changed the “Compile Shader” shortcut to be Ctrl + D (resp. Cmd + D) as Cmd + Space is already taken.
  • Added an alternate way of rendering the shader in fullscreen mode: holding the Alt key preserves the size/ratio of the shader window.
  • Upgraded emscripten-glfw to v3.4.0.20240817 which enables using macOS shortcuts and copy/paste in any text field (not just the editor).
icon emscripten-glfw
2024-08-17

Released emscripten-glfw 3.4.0.20240817 with the following changes:

  • Major clipboard changes: the clipboard now uses the browser events to handle cut, copy and paste
  • Added a way to tweak the timeouts for the Super + Key workaround (Super is also known as Meta or Cmd)
  • Added a way to set which keys are allowed to be handled by the browser
  • Added a convenient API to open a URL (emscripten::glfw3::OpenURL)
  • Added a convenient API to detect if the runtime platform is Apple (emscripten::glfw3::IsRuntimePlatformApple), mostly used for keyboard shortcuts (Ctrl vs. Cmd).
  • Added GLFW/emscripten_glfw3_version.h with EMSCRIPTEN_GLFW_VERSION define for compilation time version detection
  • EMSCRIPTEN_USE_PORT_CONTRIB_GLFW3 port define now also contains the version

Breaking changes:

  • The clipboard async API has been removed.
  • Check the Clipboard support section for details on how to deal with the clipboard in your application.
icon emscripten-glfw
2024-08-04

Released emscripten-glfw 3.4.0.20240804 with the following changes:

  • Fixed nullptr issue when clipboard is empty
  • Fixed the internal clipboard being wiped on asynchronous callback error
icon WebGPU Shader Toy
2024-08-01

The source code for WebGPU Shader Toy is now available on github.

icon emscripten-glfw
2024-07-31

Released emscripten-glfw 3.4.0.20240731 with the following changes:

  • Added emscripten_glfw_get_clipboard_string the C version of emscripten::glfw3::GetClipboardString to retrieve the clipboard asynchronously
  • Added a helper class emscripten::glfw3::FutureClipboardString to greatly simplify the more frequent use-cases
  • GetClipboardString::value() now returns the internal clipboard in case of error, instead of throwing exception
  • Added optimizationLevel option to the emscripten port
icon WebGPU Shader Toy
2024-07-29

Pushed WebGPU Shader Toy update: v2024.07.29

  • Added the ability to swap the panes
icon emscripten-glfw
2024-07-27

Released emscripten-glfw 3.4.0.20240727 with the following release notes:

  • Introduced C++ API (namespace emscripten::glfw3) included with GLFW3/emscripten_glfw3.h:
    • provides a more correct API with sensible defaults (ex: std::string_view / std::optional<std::string_view> vs char const * which may or may not be nullptr)
    • allow for C++ only API (ex: std::future)
    • the C API is still available if you would rather stick to it
  • Implemented emscripten::glfw3::GetClipboardString (C++ only) which provides a way of fetching the global clipboard in a browser environment (glfwGetClipboardString is not the right API due to the asynchronous nature of the underlying platform API).
  • The cursor position is no longer clamped to the window size, and as a result, can have negative values or values greater than the window size. Note that GLFW implements a similar behavior on the macOS desktop platform.
  • Implemented glfwSetWindowPosCallback
  • Added support for GLFW Window Attribute GLFW_HOVERED
  • Fixed #6: emscripten_glfw_make_canvas_resizable does not clean up properly.
  • Fixed an issue with opacity: when using opacity, the handle is not working unless its z-index is higher than the canvas z-index
icon WebGPU Shader Toy
2024-07-21

Pushed WebGPU Shader Toy update: v2024.07.21

  • In automatic layout mode, added the ability to resize the two panes easily by clicking and dragging the space between them. Double-clicking will revert to an even split.
icon WebGPU Shader Toy
2024-07-19

Pushed WebGPU Shader Toy update: v2024.07.19

  • Added the ability to duplicate a shader (right-click on its name for a popup, or select the option in the Shader menu)
  • Handle error cases in dialogs (empty name, duplicate name, invalid size, etc…)
  • Added Ctrl + A and Ctrl + E shortcuts for beginning / end of line shortcuts (Select All is now Ctrl + Shift + A)</li>
icon WebGPU Shader Toy
2024-07-15

Pushed WebGPU Shader Toy update: v2024.07.15

  • Tweaked keyboard navigation: make sure that the editor always has preference
  • Limit the size of the error message window
  • Tweaked version number to make it more readable
icon WebGPU Shader Toy
2024-07-14

Pushed WebGPU Shader Toy update: v2024.07.14

  • Added the ability to take a screenshot
    • : take a screenshot instantly (use the previous/default format)
    • : open the menu to select a format and a filename
  • Added the ability to enable/disable shader rendering ()
icon WebGPU Shader Toy
2024-07-09

I am very happy to announce the release of WebGPU Shader Toy, a tool for experimenting with WebGPU fragment shaders and the WebGPU Shading Language (WGSL)

Screenshot

icon emscripten-glfw
2024-06-25

Released emscripten-glfw 3.4.0.20240625 with the following release notes:

  • Implemented workaround for #4: Using Super + “Key” on macOS results in “Key” not being released. Due to the broken state of javascript handling the Super/Meta key, there is no good solution. The workaround implemented, releases all keys when Super is released. Although not a perfect solution, it guarantees that the state is eventually consistent:
    • if “Key” was released while “Super” was held, then when “Super” gets released, “Key” is released (later than when actually released, final state is consistent: “Key” in Release state)
    • if “Key” is still held when “Super” is released, “Key” is released when “Super” gets released, but immediately gets a down event (Up/Down event, final state is consistent”: “Key” in Pressed state)
icon re-mock
2024-06-20

Released re-mock update: v1.6.0

  • Added support for device_categories in info.lua which was added as a new requirement with Reason 13
  • Deprecated automatic support for std::filesystem::path in fmt due to UTF8: use path.u8string() instead
icon RE Edit
2024-06-20

Released RE Edit update: 1.6.4:

  • Added support for device_categories which was added as a new requirement to Reason 13
icon re-cmake
2024-06-20

Released re-cmake update: v1.7.2

  • Updated re-mock version (added support for device_categories)
icon emscripten-glfw
2024-06-17

Released emscripten-glfw 3.4.0.20240617 with the following release notes:

  • Fixed #3: glfwGetKey must return one of GLFW_PRESS or GLFW_RELEASE
icon emscripten-glfw
2024-06-16

Released emscripten-glfw 3.4.0.20240616 with the following release notes:

  • Implemented glfwGetClipboardString. Note that due to the async (and restrictive) nature of the navigator.clipboard.readText call, this synchronous API returns whatever was set via a previous call to glfwSetClipboardString and ignores the external clipboard entirely.
icon emscripten-glfw
2024-06-01

Released emscripten-glfw 3.4.0.20240601 with the following release notes:

  • Fixed #2: Dynamically changing HiDPI awareness does not trigger content callback
icon emscripten-glfw
2024-05-24

Released emscripten-glfw 3.4.0.20240514 with the following release notes:

  • Implemented glfwSetClipboardString
icon emscripten-glfw
2024-05-01

Released emscripten-glfw 3.4.0.20240501 with the following release notes:

  • Fixed issue when calling glfwGetWindowContentScale with nullptr
  • Renamed javascript api/impl since these names are not unique to avoid potential conflicts
  • Added glfw3native.h to GLFW. Although not used (at this moment) by this implementation, this allows calling code to include it if necessary since it is part of a normal GLFW installation.
icon emscripten-glfw
2024-03-18

Released emscripten-glfw 3.4.0.20240318 with the following release notes:

  • Fixed joystick/gamepad code that was improperly mapping GLFW_GAMEPAD_AXIS_LEFT_TRIGGER GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER, GLFW_GAMEPAD_BUTTON_LEFT_THUMB and GLFW_GAMEPAD_BUTTON_RIGHT_THUMB
  • GLFW_GAMEPAD_AXIS_LEFT_TRIGGER and GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER are now properly represented as an analog value in the range [-1.0, +1.0]
  • Please note the change in version numbering which from now on will be tied to the GLFW version implemented + date of release of this port to avoid confusion
icon emscripten-glfw
2024-02-29

I released emscripten-glfw 1.1.0 which implements GLFW 3.4 APIs:

  • Upgraded to GLFW 3.4
  • GLFW 3.4 features implemented
    • glfwGetPlatform and glfwPlatformSupported uses the GLFW_PLATFORM_EMSCRIPTEN constant defined in emscripten-glfw3.h (officially reserved value is 0x00060006)
    • glfwInitHint supports the new hint GLFW_PLATFORM
    • Supports all 10 cursors
    • Implemented glfwGetWindowTitle
    • Use GLFW_SCALE_FRAMEBUFFER to enable (resp. disable) Hi DPI support
    • Changed the functions that can report GLFW_FEATURE_UNAVAILABLE failure to report this error instead of a warning
  • GLFW 3.4 features not implemented
    • GLFW_MOUSE_PASSTHROUGH is not supported
    • GLFW_CURSOR_CAPTURED cursor input mode is not supported (not possible in a browser context)
    • glfwInitAllocator is implemented as noop (could be supported for the C++ part only if there is demand, not javascript)
    • GLFW_POSITION_X and GLFW_POSITION_Y are not supported (same as glfwSetWindowPos)
    • GLFW_ANGLE_PLATFORM_TYPE is not supported (no direct access in browser, but implementation is most likely using it anyway)
  • Since GLFW 3.4 introduces a proper constant to handle Hi DPI Awareness (GLFW_SCALE_FRAMEBUFFER), the prior constant used by this port (GLFW_SCALE_TO_MONITOR) is still accepted, but it is now deprecated. In addition, due to the fact that GLFW_SCALE_FRAMEBUFFER defaults to GLFW_TRUE, this port is now Hi DPI aware by default and needs to be explicitly turned off (glfwWindowHint(GLFW_SCALE_FRAMEBUFFER, GLFW_FALSE)) if this is the desired behavior.

Note: These changes are available in emscripten 3.1.56 (released on 2024/03/14) via the contrib port contrib.glfw3

icon emscripten-glfw
2024-02-19

I released emscripten-glfw 1.0.5 with a critical bug fix:

  • Fixed memory corruption with joystick

Note: These changes are available in emscripten 3.1.55 (released on 2024/03/01) via the contrib port contrib.glfw3

icon RE Edit
2024-02-12

Released 1.6.3:

  • Fixed issue with contrast not being saved
icon emscripten-glfw
2024-01-22

I am very happy to announce the 1.0 release of my new free and open source project emscripten-glfw which is a port of glfw written in C++ for the web/webassembly platform.

Check out the live demo. Screenshot

2023

icon B.P.O.D.
2023-12-06

Just released a new version of my Roku screensaver B.P.O.D.: 1.1.0

  • Added “Title” settings to control when the title of the image gets displayed
icon re-cmake
2023-09-16

New re-cmake update: v1.7.1

  • Fixes issue locating RE2DRender and RE2DPreview after SDK 4.4.0 final release
icon re-mock
2023-07-03

Just released a new re-mock updated: v1.5.0

  • Upgraded SDK to 4.4.0

Note that JukeboxTypes.h has some new defines but it is not really affecting the project…

icon Jamba
2023-05-26

A new release is available: 7.0.0

  • Migrated Jamba to use VST3 SDK 3.7.8 (release notes). Please check other release notes to see what has changed since 3.7.5 (last Jamba supported version).
  • As explained in issue #16, Jamba is no longer supporting VST2
  • Added a way to patch the SDK by defining the CMake cache string JAMBA_VST3SDK_PATCH_DIR (Jamba uses it on Windows/DLL build to fix an issue with win32resourcestream.cpp, but you can also use it for your own purposes): by defining this variable, 2 things happen
    • Jamba copies the SDK inside the build folder
    • Jamba copies all the files under ${JAMBA_VST3SDK_PATCH_DIR} on top of this copy while never modifying a local version of the SDK
icon SAM-SPL 64
2023-04-28

A new version of SAM-SPL 64 has been released: v1.5.0:

  • Added support for MP3, Flag, Ogg Vorbis (in addition to WAV and AIFF)
  • Added error message when issue with loading file
  • Fixed sound issues with Bitwig Studio
  • Fixed drag and drop bug