Built using Emilk's eframe, templite repo. Eframe is a framework for writing apps using egui.
Rest in peace John Walker his project "CellLab" has proved immensely helpful in my research, He passed on February 2, 2024. Less than a week before I started working on this project
- Cellular Automata
- Von Neumann Neighborhood
- Moore Neighborhood
- Elementary Cellular Automaton
- Lattice Gas Automaton
- Multi agent systems
(note, I may or may not have read these papers, but am including all of the ones I found interesting, or ones that seemed like they could be helpful to look at later here)
- Two Dimensional Cellular Automata-Norman Packard and Stephen Wolfram
- Stephen Wolframs 'A new Kind of Science'
- Preston and Duff's "Modern Cellular Automata"
- Particle-Based Fluid Simulation for Interactive Applications - Matthias Müller, David Charypar and Markus Gross
- Particle-based Viscoelastic Fluid Simulation
- Riley Shaw's Terra.js (link to repo)
- Fourmilab's Cellular Automata Laboratory
- George Mason University's MASON
- How to code a falling sand simulation (like noita) with cellular automata - MARF - Happened to be in my Recommended, and was an interesting watch
- Cellular Automata: Multi-State world (rock, paper, scissor, lizard, spock)-Efrans
- Complex Behaviour from Simple Rules: 3 Simulations - Sebastian Lague
- Coding Adventure: Simulating Fluids-Sebastian Lague
- Living Machines in TypeScript (Autocell Ep.02)- TsodingDaily
- Cellular Automata: Complexity From Simplicity- AceRolla
Make sure you are using the latest version of stable rust by running rustup update
.
cargo run --release
You can compile your app to WASM and publish it as a web page.
We use Trunk to build for web target.
- Install the required target with
rustup target add wasm32-unknown-unknown
. - Install Trunk with
cargo install --locked trunk
. - Run
trunk serve
to build and serve onhttp://127.0.0.1:8080
. Trunk will rebuild automatically if you edit the project. - Open
http://127.0.0.1:8080/index.html#dev
in a browser. See the warning below.
assets/sw.js
script will try to cache our app, and loads the cached version when it cannot connect to server allowing your app to work offline (like PWA). appending#dev
toindex.html
will skip this caching, allowing us to load the latest builds during development.
- Just run
trunk build --release
. - It will generate a
dist
directory as a "static html" website