Simulates E. coli's movement in a food concentration gradient.
Uses the run-and-tumble model with a hunger concept.
Bacteria can die from excess hunger. Amount of food is indicated by size (and possibly color), and poison content in a food source by the color gradient (the darker in color the food circle, the more toxic it is).
Bacteria can also hybridize and reproduce by binary fission.
This can be used to visualize a simplified version of chemotactic optimization.
Implemented:
- Return/ Enter or Space to play / pause simulation.
- = (+) to speed up simulation
- - to slow down simulation`
- Esc to exit
- F11 to toggle into / out of fullscreen
- s to save snapshot
- F5 to start new simulation
- Backspace to rewind
- Right-click on empty plate region to spawn new bacterium there
- Left-click on empty plate region to spawn new food source there
- Right-click on bacterium to kill it
- Left-click on food source to remove it
- General history navigation via the
"Go To"
controls.
Unimplemented: 14. F2 to save session state 15. F3 to restore session state
- Scala 2.12.x (2.11+ should work)
- Java 8 Update 121 + JavaFX (Oracle JDK on Linux) (Java 8 Update 40+ should work)
- A powerful PC ;)
- Implement support for sessions (save and restore simulations) (Priority 1)
- Implement configuration via files (priority 2-3)
- Implement configuration via GUI (priority 10?)