036 Implementing Conway Game of Life via. Spreadsheet CSV Link into CAD


Implementing Conway Game of Life via. Spreadsheet CSV Link into CAD.

 

Purpose

The cellular automata 'Game of Life' was created by the British mathematician John Horton Conway in 1970.

It can produce results of Self Organization, Self Emergence, Optimal Design, Divergent Evolution, Convergent Evolution, Random Natural Selection and Selective Artificial Selection.

 

In relation to our current age of Energy, Resource and Environmental Depletion the algorithm provides a framework for the development of better design decision making and optimised; maximum variety; to ensure a sustainable use of the Earths potential.

 

Rules of the Game of Life

1. Any live cell with fewer than two live neighbours dies, as if caused by under-population.

2. Any live cell with two or three live neighbours lives on to the next generation.

3. Any live cell with more than three live neighbours dies, as if by over-population.

4. Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.

        Source: https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life

 

Method

The following method is proposed to allow the output from a spreadsheet running the 'Game of Life' to be imported into a CAD system.

 

  1. Use a spreadsheet program to create a 'Game of Life' base grid. See references below for the ‘Game of Life’ spreadsheet used and the methods and equations used to set it up.

     

  2. Set up a secondary, numerical grid reference for all the cells on the 'Game of Life' base grid.

     

  3. Set up an ‘x,y,z’ set of columns within the same spreadsheet.

     

  4. Link the ‘x’ column cells to each cell in the ‘x’ rows of the 'Game of Life' grid through formulas in the spreadsheet program.

     

  5. Link the ‘y’ column cells to each cell in the ‘y’ columns of the 'Game of Life' grid through formulas in the spreadsheet program.

     

  6. Link the ‘z’ column cells to each of the ‘x’ row cells and setup up a formula to add ‘1’ to each of the cells.

     

  7. Set up a second ‘x,y,z’ set of columns within the same spreadsheet.

    Make the ‘x and ‘y’ column cells equal to each grid references on the grid.

    Make the ‘z’ column cells equal to the ‘z’ column cells from the first ‘x,y,z’ set of columns.

     

  8. Set up an output sheet in the spreadsheet. Link the second set of ‘x,y,z’ columns to this sheet.

    This will be the sheet from which the CSV export files will be generated.

     

  9. Duplicate the original Generation sheet and its output sheet for as many Generations as require to be tested.

     

  10. Run the 'Game of Life'.

    As each square in the grid is in-filled the 'z' coordinate changes in all of the columns and in the copy of the columns in the new sheet.

     

  11. Once a stage in the 'Game of Life' is complete the resultant ‘x,y,z grid references and the modified 'z'

    references are displayed on each of the output sheets within the spreadsheet.

     

  12. Each of the output sheets can then be outputted as CSV files to a CAD program.

     

  13. The CAD program needs to have plugins for importing and exporting CSV files as point clouds and attaching components to the point cloud nodes. See references below for the CAD program and plugins used.

     

  14. The form created from the components attached to the point cloud can also be examined, varied and re-imported back into the spreadsheet as a CSV file. Data can also be added into each of the grids as the simulation progresses using a repeat application of the game of life formula for each square. An intermediate evolutionary jump. This allows user additions to the development of the form of  each new generation.

Results
The imported form is indicated in the attached animations and images of the process.
The animation is formed by placing each CSV component output of the 'Game of Life' in a separate layer and linking that layer to an individual scene in the CAD program.
As each scene is played each layer is displayed.
The animation therefore represents the shared time frame for all of the 'Game of Life' output.
 
References

Google Sketchup 8 2010 Original Google Product Free version.

Plugins for Sketchup 8 2010 Original Google Product Free version.as listed with relevant authors from http://www.crai.archi.fr/rld/plugins_list_az.php

‘Microsoft Excel’ and / or ‘Gnumeric’ Spreadsheets.

‘Game of life’ article, setup method and code from http://danbscott.ghost.io/cellular-automata-in-excel/





Ian K Whittaker ARB RIBA
08/03/2016
Word Count 766 over 2 pages 
 




Click on the image to enlarge





Click on the image to enlarge





Click on the image to enlarge




Click on the image to enlarge


Game of Life CSV import stacked into new form
Click on the image to enlarge






Game of Life CSV Import Morphed by Random Replacement of Shapes
Click on the image to enlarge

Game of Life CSV Import Enveloped by Spline to Spline Lofted Surface
Click on the image to enlarge