Skip to content

Scala/JavaFX GUI Chemotaxis Visualizer with Temporal Manipulation

License

Notifications You must be signed in to change notification settings

tamchow/chemotaxis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scala/JavaFX Chemotaxis simulator

Features

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.

Controls

Implemented:

  1. Return/ Enter or Space to play / pause simulation.
  2. = (+) to speed up simulation
  3. - to slow down simulation`
  4. Esc to exit
  5. F11 to toggle into / out of fullscreen
  6. s to save snapshot
  7. F5 to start new simulation
  8. Backspace to rewind
  9. Right-click on empty plate region to spawn new bacterium there
  10. Left-click on empty plate region to spawn new food source there
  11. Right-click on bacterium to kill it
  12. Left-click on food source to remove it
  13. General history navigation via the "Go To" controls.

Unimplemented: 14. F2 to save session state 15. F3 to restore session state

Requirements

  1. Scala 2.12.x (2.11+ should work)
  2. Java 8 Update 121 + JavaFX (Oracle JDK on Linux) (Java 8 Update 40+ should work)
  3. A powerful PC ;)

Enhancements

  1. Implement support for sessions (save and restore simulations) (Priority 1)
  2. Implement configuration via files (priority 2-3)
  3. Implement configuration via GUI (priority 10?)