Git Product home page Git Product logo

automatatron's Introduction

Automatatron

Tool for creating and working with Elementary Cellular Automaton.

Installation

pip install automatatron

Command Line

./run.py -r N

Where N is the rule number. Default rule number is 30.

Examples

Create All Possible Automaton

# Print the first 10 rows of all possible automaton.
for rule in range(1,257):
  automaton = automatatron.Engine(rule)
  automaton.run(iterations=10)
  print automaton

Print 50 iterations of Rule 30

automaton = automatatron.Engine(30)
automaton.run(iterations=50)
print automaton

Prints:

Rule 30, 50 iterations:
                                                  #
                                                 ###
                                                ##  #
                                               ## ####
                                              ##  #   #
                                             ## #### ###
                                            ##  #    #  #
                                           ## ####  ######
                                          ##  #   ###     #
                                         ## #### ##  #   ###
                                        ##  #    # #### ##  #
                                       ## ####  ## #    # ####
                                      ##  #   ###  ##  ## #   #
                                     ## #### ##  ### ###  ## ###
                                    ##  #    # ###   #  ###  #  #
                                   ## ####  ## #  # #####  #######
                                  ##  #   ###  #### #    ###      #
                                 ## #### ##  ###    ##  ##  #    ###
                                ##  #    # ###  #  ## ### ####  ##  #
                               ## ####  ## #  ######  #   #   ### ####
                              ##  #   ###  ####     #### ### ##   #   #
                             ## #### ##  ###   #   ##    #   # # ### ###
                            ##  #    # ###  # ### ## #  ### ## # #   #  #
                           ## ####  ## #  ### #   #  ####   #  # ## ######
                          ##  #   ###  ####   ## #####   # ##### #  #     #
                         ## #### ##  ###   # ##  #    # ## #     #####   ###
                        ##  #    # ###  # ## # ####  ## #  ##   ##    # ##  #
                       ## ####  ## #  ### #  # #   ###  #### # ## #  ## # ####
                      ##  #   ###  ####   #### ## ##  ###    # #  ####  # #   #
                     ## #### ##  ###   # ##    #  # ###  #  ## ####   ### ## ###
                    ##  #    # ###  # ## # #  ##### #  ######  #   # ##   #  #  #
                   ## ####  ## #  ### #  # ####     ####     #### ## # # #########
                  ##  #   ###  ####   #### #   #   ##   #   ##    #  # # #        #
                 ## #### ##  ###   # ##    ## ### ## # ### ## #  ##### # ##      ###
                ##  #    # ###  # ## # #  ##  #   #  # #   #  ####     # # #    ##  #
               ## ####  ## #  ### #  # #### #### ##### ## #####   #   ## # ##  ## ####
              ##  #   ###  ####   #### #    #    #     #  #    # ### ##  # # ###  #   #
             ## #### ##  ###   # ##    ##  ###  ###   ######  ## #   # ### # #  #### ###
            ##  #    # ###  # ## # #  ## ###  ###  # ##     ###  ## ## #   # ####    #  #
           ## ####  ## #  ### #  # ####  #  ###  ### # #   ##  ###  #  ## ## #   #  ######
          ##  #   ###  ####   #### #   ######  ###   # ## ## ###  ######  #  ## #####     #
         ## #### ##  ###   # ##    ## ##     ###  # ## #  #  #  ###     ######  #    #   ###
        ##  #    # ###  # ## # #  ##  # #   ##  ### #  ##########  #   ##     ####  ### ##  #
       ## ####  ## #  ### #  # #### ### ## ## ###   ####         #### ## #   ##   ###   # ####
      ##  #   ###  ####   #### #    #   #  #  #  # ##   #       ##    #  ## ## # ##  # ## #   #
     ## #### ##  ###   # ##    ##  ### ########### # # ###     ## #  #####  #  # # ### #  ## ###
    ##  #    # ###  # ## # #  ## ###   #           # # #  #   ##  ####    ###### # #   ####  #  #
   ## ####  ## #  ### #  # ####  #  # ###         ## # ##### ## ###   #  ##      # ## ##   #######
  ##  #   ###  ####   #### #   ###### #  #       ##  # #     #  #  # ##### #    ## #  # # ##      #
 ## #### ##  ###   # ##    ## ##      #####     ## ### ##   ######## #     ##  ##  #### # # #    ###
##  #    # ###  # ## # #  ##  # #    ##    #   ##  #   # # ##        ##   ## ### ###    # # ##  ##  #

Custom row handler

def row_handler(row):
  print row

# Run the next 10 iterations, and pass results into specified handler.
automaton.run(handler=row_handler, iterations=10)

Stream Center of Output into Function

automaton = automatatron.Engine(30)
def stream_handler(row, _):
  print automatatron.default_string_formatter(row)
  time.sleep(0.05)
automaton.run(handler=stream_handler, width=101)

Streams center 101 rows of the automaton continuously to stdout:

                                                 ###
                                                ##  #
                                               ## ####
                                              ##  #   #
                                             ## #### ###
                                            ##  #    #  #
                                           ## ####  ######
                                          ##  #   ###     #
                                         ## #### ##  #   ###
                                        ##  #    # #### ##  #
                                       ## ####  ## #    # ####
                                      ##  #   ###  ##  ## #   #
                                     ## #### ##  ### ###  ## ###
                                    ##  #    # ###   #  ###  #  #
                                   ## ####  ## #  # #####  #######
                                  ##  #   ###  #### #    ###      #
                                 ## #### ##  ###    ##  ##  #    ###
                                ##  #    # ###  #  ## ### ####  ##  #
                               ## ####  ## #  ######  #   #   ### ####
                              ##  #   ###  ####     #### ### ##   #   #
                             ## #### ##  ###   #   ##    #   # # ### ###
                            ##  #    # ###  # ### ## #  ### ## # #   #  #
                           ## ####  ## #  ### #   #  ####   #  # ## ######
                          ##  #   ###  ####   ## #####   # ##### #  #     #
                         ## #### ##  ###   # ##  #    # ## #     #####   ###
                        ##  #    # ###  # ## # ####  ## #  ##   ##    # ##  #
                       ## ####  ## #  ### #  # #   ###  #### # ## #  ## # ####
                      ##  #   ###  ####   #### ## ##  ###    # #  ####  # #   #
                     ## #### ##  ###   # ##    #  # ###  #  ## ####   ### ## ###
                    ##  #    # ###  # ## # #  ##### #  ######  #   # ##   #  #  #
                   ## ####  ## #  ### #  # ####     ####     #### ## # # #########
                  ##  #   ###  ####   #### #   #   ##   #   ##    #  # # #        #
                 ## #### ##  ###   # ##    ## ### ## # ### ## #  ##### # ##      ###
                ##  #    # ###  # ## # #  ##  #   #  # #   #  ####     # # #    ##  #
               ## ####  ## #  ### #  # #### #### ##### ## #####   #   ## # ##  ## ####
              ##  #   ###  ####   #### #    #    #     #  #    # ### ##  # # ###  #   #
             ## #### ##  ###   # ##    ##  ###  ###   ######  ## #   # ### # #  #### ###
            ##  #    # ###  # ## # #  ## ###  ###  # ##     ###  ## ## #   # ####    #  #
           ## ####  ## #  ### #  # ####  #  ###  ### # #   ##  ###  #  ## ## #   #  ######
          ##  #   ###  ####   #### #   ######  ###   # ## ## ###  ######  #  ## #####     #
         ## #### ##  ###   # ##    ## ##     ###  # ## #  #  #  ###     ######  #    #   ###
        ##  #    # ###  # ## # #  ##  # #   ##  ### #  ##########  #   ##     ####  ### ##  #
       ## ####  ## #  ### #  # #### ### ## ## ###   ####         #### ## #   ##   ###   # ####
      ##  #   ###  ####   #### #    #   #  #  #  # ##   #       ##    #  ## ## # ##  # ## #   #
     ## #### ##  ###   # ##    ##  ### ########### # # ###     ## #  #####  #  # # ### #  ## ###
    ##  #    # ###  # ## # #  ## ###   #           # # #  #   ##  ####    ###### # #   ####  #  #
   ## ####  ## #  ### #  # ####  #  # ###         ## # ##### ## ###   #  ##      # ## ##   #######
  ##  #   ###  ####   #### #   ###### #  #       ##  # #     #  #  # ##### #    ## #  # # ##      #
 ## #### ##  ###   # ##    ## ##      #####     ## ### ##   ######## #     ##  ##  #### # # #    ###
##  #    # ###  # ## # #  ##  # #    ##    #   ##  #   # # ##        ##   ## ### ###    # # ##  ##  #
# ####  ## #  ### #  # #### ### ##  ## #  ### ## #### ## # # #      ## # ##  #   #  #  ## # # ### ###
  #   ###  ####   #### #    #   # ###  ####   #  #    #  # # ##    ##  # # #### ########  # # #   #
#### ##  ###   # ##    ##  ### ## #  ###   # ######  ##### # # #  ## ### # #    #       ### # ## ###
#    # ###  # ## # #  ## ###   #  ####  # ## #     ###     # # ####  #   # ##  ###     ##   # #  #
##  ## #  ### #  # ####  #  # #####   ### #  ##   ##  #   ## # #   #### ## # ###  #   ## # ## ##### #
  ###  ####   #### #   ###### #    # ##   #### # ## #### ##  # ## ##    #  # #  #### ##  # #  #     #
 ##  ###   # ##    ## ##      ##  ## # # ##    # #  #    # ### #  # #  ##### ####    # ### #####   ##
 # ###  # ## # #  ##  # #    ## ###  # # # #  ## #####  ## #   #### ####     #   #  ## #   #    # ##
## #  ### #  # #### ### ##  ##  #  ### # # ####  #    ###  ## ##    #   #   ### #####  ## ###  ## # #
#  ####   #### #    #   # ### ######   # # #   ####  ##  ###  # #  ### ### ##   #    ###  #  ###  # #
 ###   # ##    ##  ### ## #   #     # ## # ## ##   ### ###  ### ####   #   # # ###  ##  ######  ### #
##  # ## # #  ## ###   #  ## ###   ## #  # #  # # ##   #  ###   #   # ### ## # #  ### ###     ###   #
  ### #  # ####  #  # #####  #  # ##  #### #### # # # #####  # ### ## #   #  # ####   #  #   ##  # ##
###   #### #   ###### #    ###### # ###    #    # # # #    ### #   #  ## ##### #   # ###### ## ### #
   # ##    ## ##      ##  ##      # #  #  ###  ## # # ##  ##   ## #####  #     ## ## #      #  #   ##
# ## # #  ##  # #    ## ### #    ## #######  ###  # # # ### # ##  #    ####   ##  #  ##    ###### ##
# #  # #### ### ##  ##  #   ##  ##  #      ###  ### # # #   # # ####  ##   # ## ###### #  ##      #
  #### #    #   # ### #### ## ### ####    ##  ###   # # ## ## # #   ### # ## #  #      #### #    ####
 ##    ##  ### ## #   #    #  #   #   #  ## ###  # ## # #  #  # ## ##   # #  #####    ##    ##  ##
 # #  ## ###   #  ## ###  ###### ### #####  #  ### #  # ####### #  # # ## ####    #  ## #  ## ### #
 # ####  #  # #####  #  ###      #   #    ######   #### #       #### # #  #   #  #####  ####  #   ##
## #   ###### #    ######  #    ### ###  ##     # ##    ##     ##    # ##### #####    ###   #### ##
   ## ##      ##  ##     ####  ##   #  ### #   ## # #  ## #   ## #  ## #     #    #  ##  # ##    # ##
  ##  # #    ## ### #   ##   ### # #####   ## ##  # ####  ## ##  ####  ##   ###  ##### ### # #  ## #
### ### ##  ##  #   ## ## # ##   # #    # ##  # ### #   ###  # ###   ### # ##  ###     #   # ####  ##
    #   # ### #### ##  #  # # # ## ##  ## # ### #   ## ##  ### #  # ##   # # ###  #   ### ## #   ###
#  ### ## #   #    # ###### # # #  # ###  # #   ## ##  # ###   #### # # ## # #  #### ##   #  ## ##  #
 ###   #  ## ###  ## #      # # #### #  ### ## ##  # ### #  # ##    # # #  # ####    # # #####  # ###
 #  # #####  #  ###  ##    ## # #    ####   #  # ### #   #### # #  ## # #### #   #  ## # #    ### #
##### #    ######  ### #  ##  # ##  ##   # ##### #   ## ##    # ####  # #    ## #####  # ##  ##   ###
      ##  ##     ###   #### ### # ### # ## #     ## ##  # #  ## #   ### ##  ##  #    ### # ### # ##
#    ## ### #   ##  # ##    #   # #   # #  ##   ##  # ### ####  ## ##   # ### ####  ##   # #   # # #
...

automatatron's People

Contributors

rhyolight avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.