Skip to content

eerick1997/vNCASimulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vNCASimulatorvNCASimulator

The name of the program stands for "von Neumann Cellular Automata Simulator". It was developed by using the C++ programming language and the QT framework with the OOP (Object Oriented Programming) paradigm. This simulator is only a tool for a research done on this type of Cellular Automata.

Objective

Nowadays, Cellular Automata (CA) of the von Neumann type have not been studied in depth, so there is no classification process that allows making groups using the characteristics of this particular type of CA.

To solve this problem, it is proposed to perform different explorations of the rules on two-dimensional CAs, in order to analyze patterns and behaviors according to the initial conditions, as well as to obtain the polynomial of each rule. With the idea of facilitating the classification of the rules obtained, we developed a system that allows modifying different characteristics of a CA and observing the simulation in real time, obtaining the polynomial and classifying each fixed point in a multiplatform environment, i.e. this software runs on different operating systems such as Linux, Mac OS and Windows.

If you are interested about this investigation you can find the complete report here. Aditionally, here you have a user manual about the developed simulator. The information is only available in Spanish at this time.

Features

The current version of this program allows to:

  • Set up an evolution rule
  • Modify the initial conditions of the CA
  • Choose between a semi-totalistic rule or a complete totalistic rule
  • Display in real time the simulation of the evolution space
  • Display in real time the current population and Shannon's entropy
  • Calculate the polynomial of each rule
  • Classify each fixed point of the polynomial
  • Make a 3D projection of the evolution space
  • Export and import binary files that contains the state of an specific simulation
  • Generate a random evolution space
  • Generate a random complete totalistic rule
  • Choose between a Von Neumann or Moore neighboor to evaluate the CA
  • And more...

Future work

  • Change the current algorithm to clasify the fixed points in order to get a better precision
  • Analyse more rules
  • Implement different types of entrophy
  • Improve the current color gradient

Fix bugs

  • Some times the program calculates two generations at the same time and the program does not correctly display the current generation.

Installation (repository cloning)

git clone https://github.com/eerick1997/vNCASimulator/

Usage and development

There is a step-by-step guide for each operating system to run/develop the program. Please follow the corresponding link to read the instructions.

There is also a user-manual which applies for the 3 operating systems mentioned above. You can find it here.

Languages and Tools

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Versioning

The vNCASimulator will be mantained under the Semantic Versioning guidelines as much as possible. Releases will be numbered with the following format: <major>.<minor>.<patch>

For more information on SemVer, please visit http://semver.org.

This is a program that includes many file types and technologies. Therefore, we deviate from the SemVer standard with the following versioning rules:

  • A major version when we have developed a completely new process, which will be previously defined in the BPMN diagram,
  • a minor version when we have added functionality in a backward compatible way in any of the sub-processes, and
  • a patch version when we have made backward compatible bug fixes.

License License: GPL v3

You can checkout the full license here. The vNCASimulator code is licensed under the terms of the GPL license.

Attribution

In order to make the development of this system possible, we used icons and tools whose authors and works are mentioned below.

Development

Design (icons)

Team

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors