Upload
janis-mccoy
View
216
Download
0
Embed Size (px)
Citation preview
General Purpose 3D Cellular Automata Modeller
What are Cellular Automata?
• A Regular Lattice of Cells, each obeying the same set of rules
• Simple rules for individual cells can produce complex global behaviour
• Used in the study of other systems with similar characteristics
Applications for Cellulate
• Biological Models• Fluid Pressure and Movement Models• Image Processing• Chemical Reactions• Others
• Antony Holmes, a PhD student in DCS• Modelling of Myxobacteria Rippling• Requires 2D and 3D Cellular Automata• Case study for more general use of CA
Our Customer
Existing Software
• Many only 2D• Many did not support multiple cell variables• Most only simulated variations of the Game of
Life• None were distributed
Project Goal
“To create a general purpose simulator for three dimensional cellular automata”
Features
• Simulates 1D, 2D and 3D CA• Distributed processing• Supports massive simulations (>100 million cells)• Support for any number of cell variables, any
neighbourhood sizes• Intuitive GUI for creating simulations and viewing
results• Simple C++ scripting for maximum speed/flexibility
Design Concept
Cellunet NodeCellulate Client
Project Architecture
Processing
GUI
Renderer
Storage
Networking
Cellulate Client Cellulate Node
Networking
Storage
Renderer
• Renders simulation results in 3D• Can render simulations up to 500 million cells• Highly interactive user interface• Optimised to display within limitations of
single machine
Renderer LOD Design
Networking
• Distribute, gather and synchronise regions• 26 edges to swap• Allocating regions efficiently– Reduce surface area– Load balancing
• Fault tolerance
Data Storage
• Current solutions can require >8Gb per run• Compression algorithms reduce storage
demands to approximately 14%• Balances conflicting requirements of
compression and speed
Simulation Processing
Provides: • System for rule scripting:
• Processing of a simulation region:
- Functions for script definition - Compiling & loading scripts
- Updating regions- Updating the shared edges between regions
Simulation Processing
Conway’s Game of Life
In Cellulate
1. Any live cell with fewer than two live neighbours dies.2. Any live cell with more than three live neighbours dies.3. Any live cell with two or three live neighbours lives, unchanged.4. Any dead cell with exactly three live neighbours comes to life.
if ( numNeighbours == 3 ) // 3 & 4 Set("cellalive", true); else if ( numNeighbours == 2 ) // 3 CopyCell(); else // 1 & 2 Set("cellalive", false);
Conclusions
• Cellulate is now an Open Source project – hosted on SourceForge
• We hope it will enable new research into Cellular Automata and their applications
• Project may continue next year with new group
Demonstration
Questions?
• http://sf.net/projects/cellulate• http://cellulate.net/