CellViz  1.0
CellViz Project Documentation

Introduction

Welcome to the CellViz documentation. This project is an advanced visualization tool for cellular automata models. It allows the simulation and visualization of various types of cellular automata, including both discrete (grid-based) and continuous systems.

The primary goal of CellViz is to provide a framework to study complex systems through simple local interactions that give rise to emergent global behavior. Cellular Automata have applications in fields like physics, biology, economics, and computer science, making them a useful tool for simulating real-world systems.

About Cellular Automata

Cellular automata (CA) are models consisting of a grid of cells, each of which can exist in a finite number of states. The state of each cell evolves based on a set of rules, often influenced by its neighbors. This leads to emergent behavior, where complex global patterns form from simple local rules.

Types of Cellular Automata

  • Discrete Automata (Grid-based): The cells are arranged in a grid, and each cell's state depends on its neighbors. Examples include Conway's Game of Life.
  • Continuous Automata: These are not restricted to discrete states or grid locations, providing a more fluid simulation environment.

Below are some visualizations of typical cellular automata:

Continuous Cellular Automaton

Usage

CellViz can be executed from the command line with different modes:

./data
./CellViz <json_file> [output.mp4] [life=(smith|basic)]
  • <json_file>: Configuration file specifying the initial state.
  • [output.mp4]: Optional argument to specify the output video file.
  • [life=(smith|basic)]: Specifies which type of life simulation to use.

GitHub Repository

You can find the source code, report issues, and contribute to the project on GitHub.

Features

  • Modular Design: The project consists of various types of cellular automata.
  • Visualization: Supports both real-time rendering and output to video.
  • Extensible Framework: Allows adding new types of automata by extending the existing classes.

Directory Structure

  • src: Contains all source code files, including implementation of different automata (board.cpp, cells.cpp, etc.).
  • tests: Contains unit tests to verify the functionality of the project.
  • demo: Includes demo files to visualize examples.

Contact and Contributions

We welcome contributions, feature suggestions, and bug reports. You can participate by creating issues or pull requests on the GitHub repository.

Acknowledgements

This project was developed by B Flat. It is inspired by the principles of cellular automata, originally conceived by John von Neumann and Stanislaw Ulam.