Bumps the npm_and_yarn group with 3 updates in the /MaterialX/javascript/MaterialXTest directory: [cookie](https://github.com/jshttp/cookie), [js-yaml](https://github.com/nodeca/js-yaml) and [tmp](https://github.com/raszi/node-tmp). Bumps the npm_and_yarn group with 3 updates in the /MaterialX/javascript/MaterialXView directory: [webpack](https://github.com/webpack/webpack), [webpack-dev-server](https://github.com/webpack/webpack-dev-server) and [on-headers](https://github.com/jshttp/on-headers). Bumps the npm_and_yarn group with 3 updates in the /packages/materialx/javascript/MaterialXTest directory: [cookie](https://github.com/jshttp/cookie), [js-yaml](https://github.com/nodeca/js-yaml) and [tmp](https://github.com/raszi/node-tmp). Bumps the npm_and_yarn group with 3 updates in the /packages/materialx/javascript/MaterialXView directory: [webpack](https://github.com/webpack/webpack), [webpack-dev-server](https://github.com/webpack/webpack-dev-server) and [on-headers](https://github.com/jshttp/on-headers). Updates `cookie` from 0.4.2 to 0.7.2 - [Release notes](https://github.com/jshttp/cookie/releases) - [Commits](https://github.com/jshttp/cookie/compare/v0.4.2...v0.7.2) Updates `js-yaml` from 4.1.0 to 4.1.1 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) Updates `serialize-javascript` from 6.0.0 to 6.0.2 - [Release notes](https://github.com/yahoo/serialize-javascript/releases) - [Commits](https://github.com/yahoo/serialize-javascript/compare/v6.0.0...v6.0.2) Updates `tmp` from 0.2.3 to 0.2.5 - [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md) - [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.5) Updates `webpack` from 5.92.1 to 5.104.1 - [Release notes](https://github.com/webpack/webpack/releases) - [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack/compare/v5.92.1...v5.104.1) Updates `webpack-dev-server` from 4.15.2 to 5.2.1 - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.15.2...v5.2.1) Updates `http-proxy-middleware` from 2.0.6 to 2.0.9 - [Release notes](https://github.com/chimurai/http-proxy-middleware/releases) - [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.9/CHANGELOG.md) - [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.9) Updates `on-headers` from 1.0.2 to 1.1.0 - [Release notes](https://github.com/jshttp/on-headers/releases) - [Changelog](https://github.com/jshttp/on-headers/blob/master/HISTORY.md) - [Commits](https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0) Updates `cookie` from 0.4.2 to 0.7.2 - [Release notes](https://github.com/jshttp/cookie/releases) - [Commits](https://github.com/jshttp/cookie/compare/v0.4.2...v0.7.2) Updates `js-yaml` from 4.1.0 to 4.1.1 - [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md) - [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1) Updates `serialize-javascript` from 6.0.0 to 6.0.2 - [Release notes](https://github.com/yahoo/serialize-javascript/releases) - [Commits](https://github.com/yahoo/serialize-javascript/compare/v6.0.0...v6.0.2) Updates `tmp` from 0.2.3 to 0.2.5 - [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md) - [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.5) Updates `webpack` from 5.92.1 to 5.104.1 - [Release notes](https://github.com/webpack/webpack/releases) - [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack/compare/v5.92.1...v5.104.1) Updates `webpack-dev-server` from 4.15.2 to 5.2.1 - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.15.2...v5.2.1) Updates `http-proxy-middleware` from 2.0.6 to 2.0.9 - [Release notes](https://github.com/chimurai/http-proxy-middleware/releases) - [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.9/CHANGELOG.md) - [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.9) Updates `on-headers` from 1.0.2 to 1.1.0 - [Release notes](https://github.com/jshttp/on-headers/releases) - [Changelog](https://github.com/jshttp/on-headers/blob/master/HISTORY.md) - [Commits](https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0) --- updated-dependencies: - dependency-name: cookie dependency-version: 0.7.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: serialize-javascript dependency-version: 6.0.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: tmp dependency-version: 0.2.5 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: webpack dependency-version: 5.104.1 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: webpack-dev-server dependency-version: 5.2.1 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: http-proxy-middleware dependency-version: 2.0.9 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: on-headers dependency-version: 1.1.0 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: cookie dependency-version: 0.7.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: js-yaml dependency-version: 4.1.1 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: serialize-javascript dependency-version: 6.0.2 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: tmp dependency-version: 0.2.5 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: webpack dependency-version: 5.104.1 dependency-type: direct:production dependency-group: npm_and_yarn - dependency-name: webpack-dev-server dependency-version: 5.2.1 dependency-type: direct:development dependency-group: npm_and_yarn - dependency-name: http-proxy-middleware dependency-version: 2.0.9 dependency-type: indirect dependency-group: npm_and_yarn - dependency-name: on-headers dependency-version: 1.1.0 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com>
SDL3CPlusPlus
SDL3 + bgfx demo app with Lua-driven runtime configuration, audio playback, and a small GUI sample.
Overview
- Renders a spinning cube with bgfx (Vulkan renderer by default) via SDL3.
- Lua scripts control behavior under
scripts/. - JSON runtime configs live in
config/. - Optional helpers for audio asset generation and workflow diagnostics.
Prerequisites
- Python 3 for helper scripts.
- Conan for dependency resolution.
- CMake and a C++ compiler.
- Ninja (default generator) or Visual Studio 2022 on Windows.
- Vulkan runtime/driver for the default bgfx renderer (or set
bgfx.rendererin config).
Quick start
python scripts/dev_commands.py dependenciespython scripts/dev_commands.py configurepython scripts/dev_commands.py build- If you used Conan, load the runtime env vars:
- Linux/macOS:
source build/conanrun.sh - Windows (cmd.exe):
build\conanrun.bat
- Linux/macOS:
python scripts/dev_commands.py run- Use the guardrail prefix helper before invoking Codex if you want to prepend standard instructions:
python scripts/auto_prompt_prefixer.py --prompt "Describe the package layout". It defaults toconfig/prompt_prefix.txt, or pass--prefix-file/--prefix-textto change it.
Build helper commands
python scripts/dev_commands.py configureuses Ninja by default (Ninja+MSVC on Windows) and writes tobuild-ninja/build-ninja-msvc; override with--generatorand--build-dir.python scripts/dev_commands.py buildrunscmake --buildfor that folder (use--build-dirand--targetas needed).python scripts/dev_commands.py msvc-quickrunsvcvarsall.batplus a build command (Windows only).- Prefix any subcommand with
--dry-runto print the shell command without executing it.
Running
- Default build dir:
build-ninjaon Linux/macOS,build-ninja-msvcon Windows. python scripts/dev_commands.py run --build-dir <path>to run from a custom build directory.python scripts/dev_commands.py run --target spinning_cubeto launch another executable.python scripts/dev_commands.py run -- --json-file-in config/gui_runtime.jsonto pass app flags (use--before app args).
JSON config examples
python scripts/dev_commands.py run -- --json-file-in config/seed_runtime.jsonpython scripts/dev_commands.py run -- --json-file-in config/soundboard_runtime.jsonpython scripts/dev_commands.py run -- --json-file-in config/gui_runtime.json
Runtime configuration
sdl3_app --json-file-in <path>loads JSON configs (script path, window size,lua_debug, etc.).sdl3_app --create-seed-json config/seed_runtime.jsonwrites a starter file assumingscripts/cube_logic.luasits beside the binary.sdl3_app --set-default-json [path]stores or overrides the runtime JSON; Windows writes%APPDATA%/sdl3cpp, other OSes use$XDG_CONFIG_HOME/sdl3cpp/default_runtime.json(fallback~/.config/sdl3cpp).
Input bindings
config/seed_runtime.json includes an input_bindings section that maps keyboard keys and gamepad inputs to action names consumed by the Lua script (see scripts/cube_logic.lua).
Keyboard bindings use SDL key names (e.g. W, Space, Left Shift). Gamepad bindings use SDL gamepad names (e.g. start, south, dpad_up, leftx).
Example:
"input_bindings": {
"move_forward": "W",
"move_back": "S",
"move_left": "A",
"move_right": "D",
"music_toggle": "M",
"music_toggle_gamepad": "start",
"gamepad_move_x_axis": "leftx",
"gamepad_move_y_axis": "lefty",
"gamepad_look_x_axis": "rightx",
"gamepad_look_y_axis": "righty",
"gamepad_dpad_up": "dpad_up",
"gamepad_dpad_down": "dpad_down",
"gamepad_dpad_left": "dpad_left",
"gamepad_dpad_right": "dpad_right",
"gamepad_button_actions": {
"south": "gamepad_a",
"east": "gamepad_b",
"west": "gamepad_x",
"north": "gamepad_y",
"left_shoulder": "gamepad_lb",
"right_shoulder": "gamepad_rb",
"left_stick": "gamepad_ls",
"right_stick": "gamepad_rs",
"back": "gamepad_back",
"start": "gamepad_start"
},
"gamepad_axis_actions": {
"left_trigger": "gamepad_lt",
"right_trigger": "gamepad_rt"
},
"gamepad_axis_action_threshold": 0.5
}
GUI demo
scripts/gui_demo.lua exercises the Lua GUI framework; rendering hooks are currently stubbed while bgfx GUI integration is wired up. Launch it as python scripts/dev_commands.py run -- --json-file-in config/gui_runtime.json or register that config via sdl3_app --set-default-json.
Audio assets
Install the dependencies that power scripts/generate_audio_assets.py:
python -m pip install --user numpy soundfile pedalboard piper-tts
Before translating phrases, download a Piper voice (the script defaults to en_US-lessac-medium):
python -m piper.download_voices en_US-lessac-medium --download-dir scripts/assets/audio/tts/voices
Running the generator recreates procedural effects under scripts/assets/audio/sfx/ and voice clips under scripts/assets/audio/tts/. Use --force to rebuild every file and --skip-sfx / --skip-tts if you only need one subset; add --verbose to see the internal logging as the files are created. Override the voice files with --piper-voice-model <path> and (optionally) --piper-voice-config <path> if you downloaded a different voice or location. Pass --download-voice to have the script invoke piper.download_voices automatically before rendering (requires piper-tts and network access).
GitHub Actions workflow diagnostics
python -m pip install pyyamlinstalls the YAML dependency for the workflow analyzer.python scripts/workflow_doctor.py [--workflows-dir .github/workflows]inspects workflows for missing permissions, floating action references, and other reproducibility/security hints.