You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
View the video [here](https://github.com/user-attachments/assets/e9d48ff7-b14c-4874-9521-fe59e915bc76).
30
40
</video>
31
41
32
-
The second exampleSpooky Maze Game is more complex and demonstrates how to connect peripherals like accelerometer with application code using even based approach.
42
+
The second example, the Spooky Maze Game, is more complex, demonstrating an event-based approach to integrate peripherals like accelerometers with application logic.
View the video [here](https://github.com/user-attachments/assets/28ef7c2b-42cc-4c79-bbdb-fcb0740bf533).
@@ -42,6 +52,10 @@ Bevy ECS is the core data‑oriented architecture of the Bevy game engine. It pr
42
52
43
53
## Advantages for Embedded Rust Developers
44
54
55
+
Many advantages of Rust for embedded development were described in the article [Rust + Embedded: A Development Power Duo](https://developer.espressif.com/blog/rust-embedded-a-development-power-duo/).
56
+
57
+
Here are some specific advantages of using ECS in Rust applications:
58
+
45
59
-**Modularity and Maintainability:** ECS encourages the separation of data and behavior into independent systems, which leads to clearer, easier-to-maintain code.
46
60
-**Efficient Resource Management:** The data‑oriented design can lead to better cache utilization and efficient processing, critical for devices with limited memory and processing power.
47
61
-**Scalability:** Even on microcontrollers, ECS allows you to extend your application with additional features or behaviors without significant restructuring.
@@ -53,9 +67,8 @@ Bevy ECS is the core data‑oriented architecture of the Bevy game engine. It pr
53
67
54
68
-**ESP32 Development Board:** ESP32-S3, ESP32-C3, or similar variants.
55
69
-**Display Module:** For example, an ILI9486-based display connected via SPI.
56
-
-**Additional Peripherals:** Optional buttons, sensors, or LEDs depending on your project.
57
70
58
-
If you're not sure which Hardware to pick, we recommend [ESP32-S3-BOX-3](https://github.com/espressif/esp-box?tab=readme-ov-file#esp-box-aiot-development-framework)which features ESP32-S3 with PSRAM and display with touch controller.
71
+
If you're uncertain which hardware to choose, we recommend the [ESP32-S3-BOX-3](https://github.com/espressif/esp-box?tab=readme-ov-file#esp-box-aiot-development-framework)featuring ESP32-S3 with PSRAM and a display with touch control.
59
72
60
73
### Software Requirements
61
74
@@ -65,9 +78,9 @@ If you're not sure which Hardware to pick, we recommend [ESP32-S3-BOX-3](https:/
65
78
66
79
## Building the Application
67
80
68
-
Our example implements Conway’s Game of Life, where the simulation grid is managed as an ECS resource. The Bevy ECS world organizes systems for updating the game state and rendering to an off‑screen framebuffer, which is then flushed to a physical display. We will showcase also an option to use WASM for rendering the same application in the web browser.
81
+
The Conway’s Game of Life example manages a simulation grid as an ECS resource. Systems update the game state and render to an off-screen framebuffer, which is then output to a physical display. A WASM version also simulates the display using an HTML canvas in a web browser.
69
82
70
-
For ESP32-based projects, the code is compiled as a bare‑metal Rust application using no_std. Flashing the binary onto your hardware is done using [espflash](https://github.com/esp-rs/espflash) or [probe-rs](https://github.com/probe-rs/probe-rs) configured in [`.config/cargo.toml`](https://github.com/georgik/esp32-conways-game-of-life-rs/blob/main/esp32-c3-lcdkit/.cargo/config.toml). For the WASM version, the application runs in the browser by simulating a display via an HTML canvas.
83
+
For ESP32-based projects, the code is compiled as a bare‑metal Rust application using no_std. Flashing the binary onto your hardware is done using [espflash](https://github.com/esp-rs/espflash) or [probe-rs](https://github.com/probe-rs/probe-rs) configured in [`.config/cargo.toml`](https://github.com/georgik/esp32-conways-game-of-life-rs/blob/main/esp32-c3-lcdkit/.cargo/config.toml).
0 commit comments