Game for Bevy Jam #2
Go to file
Pascal Engélibert c203be7b2a
Update readme
2022-08-29 14:57:15 +02:00
assets New puzzle level 2022-08-29 13:14:01 +02:00
res fix(wasm): request permission for media autoplay if needed 2022-08-28 19:52:02 +02:00
src Despawn black characters 2022-08-29 13:12:33 +02:00
.gitignore Initial commit 2022-08-21 19:17:55 +02:00
Cargo.lock release script: linux build 2022-08-28 22:14:59 +02:00
Cargo.toml release script: linux build 2022-08-28 22:14:59 +02:00
LICENSE Initial commit 2022-08-21 19:17:55 +02:00 Update readme 2022-08-29 14:57:15 +02:00 Update readme 2022-08-29 14:57:15 +02:00 build itchio wasm script 2022-08-27 18:56:54 +02:00
index.html Update readme 2022-08-29 14:57:15 +02:00 directly host server after building with script 2022-08-26 15:01:40 +02:00
rustfmt.toml Initial commit 2022-08-21 19:17:55 +02:00

Lux synthesĕ

Combine colored lights to synthesize white light!

Play in browser

Download: Linux x86_64, Windows x86_64

In latin, lux synthesĕ means "light by the means of synthesis".

This game was developped for the Bevy Jam #2.


  • Move: arrows
  • Switch character: Tab
  • Level up: Enter (when character is white)
  • Reset: R
  • Fullscreen: F11
  • Exit: Escape


  • more filters
  • more levels
  • (?) multiplayer
  • more audio
  • bug: when reset after win, character colors are wrong
  • redshift warning


cargo build --release


rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli


# Serve on
python3 -m http.server


This game used HexoDSP for audio synthesis.

The synthetizer matrix can be edited using HexoSynth visual editor.

However we could not get this working in WASM, hence we used simple playback audio instead for the jam. The concept of procedural audio is not abandonned but it will be for another time.


Skip to level N: u32 with the command bevyjam <N>.

Edit the level N: u32 with the command bevyjam <N> e.

Editor is not available in the WASM build.

Editor controls

  • Select: left click to select, click in void to deselect, CTRL+click to select many, CTRL+A to select all
  • Move selection: arrows to move one step, Shift+arrows to move continuously
  • Delete selection: delete
  • Add objects: P=platform, C=character, A=absorbing filter, R=rotating filter, M=melty platform
  • Move camera: CTRL+arrows
  • Save: CTRL+S


GNU AGPL v3, CopyLeft 2022 Pascal Engélibert, Nixon Cheng

Lux synthesĕ is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License.
Lux synthesĕ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with Lux synthesĕ. If not, see