An open-source 3D cellular automata created in Rust for my Honours Project at university. I am hoping to port this to Web Assembly (WASM) to be hosted on my website.
- Fast and optimised
- Up to twenty-six calculations per cell, per frame...a lot
- GUIs
- Familiarise myself with creating a GUI
- Learn/ Apply good UI/UX design concepts and practices
- Applying practices such as KISS (Keep-It-Simple-and-Stupid)
- Familiarise myself with the Rust language
- Manage a self-directed project
- Implement as a single-threaded application
- Tests using pre-calculated starting states
- Create a platform which is able to host different types of cells
- Model of competition
- These "competing" cells would not be counted as valid neighbours
- Implement both Moore and Von Neumann neighbourhood algorithms
- Command line menu to allow user to change settings
- Creation of certain presets
- Implement as a multithreaded application
- Some basic commands
- e.g. a help command with an explanation of each setting
- Port to WASM
- Implement a settings GUI
- Should allow user to:
- Change bounding box size
- Toggle neighbourhood algorithm
- Change cycles before cell death
- Change number of cells to sustain
- Change various other settings/ rules
- Should allow user to:
- Addition of some special rules
- Custom neighbourhood algorithm
- Change the colour palette
- Run parallel calculations on GPU
- This is a long-term goal
Licensed under either of:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.