Golly: how an open source project took over the study of cellular automata.

Similar documents
JASON FREEMAN THE LOCUST TREE IN FLOWER AN INTERACTIVE, MULTIMEDIA INSTALLATION BASED ON A TEXT BY WILLIAM CARLOS WILLIAMS

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS General Certificate of Education Advanced Subsidiary Level and Advanced Level

Game of Life music. Chapter 1. Eduardo R. Miranda and Alexis Kirke

A QUARTERLY OF ART AND CULTURE ISSUE 57 CATASTROPHE US $12 CANADA $12 UK 7

2D ELEMENTARY CELLULAR AUTOMATA WITH FOUR NEIGHBORS

contents Editorial - Eddy has his say... 1 Ask Eddy - The latest tips from the man himself... 2 Software - The Complete and Easy Guide to the Internet

TOMELLERI ENGINEERING MEASURING SYSTEMS. TUBO Version 7.2 Software Manual rev.0

A Demonstration Platform for Small Satellite Constellation Remote Operating and Imaging

ACTION! SAMPLER. Virtual Instrument and Sample Collection

Nuendo 3 / DM1000 V2 Setup and Operation

The BBC micro:bit: What is it designed to do?

All submissions and editorial correspondence should be sent to

Operating Guide. ViewClix offers a revolutionary experience for seniors and their families and friends.

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS General Certificate of Education Ordinary Level. Paper 1 October/November hours 30 minutes

VIDEOPOINT CAPTURE 2.1

FOR WWW TEACUPSOFTWARE COM User Guide

SATELLITEMOBILITY WORLD

Video Surveillance *

Activity P27: Speed of Sound in Air (Sound Sensor)

EndNote Menus Reference Guide. EndNote Training

How to use the NATIVE format reader Readmsg.exe

Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board

Introduction & Colour

INTRODUCTION TO ENDNOTE. NTNU University Library, Medicine and Health Library January 2017

Computer Graphics. Introduction

Sony vegas pro 11 rendering settings

Lab 6: Edge Detection in Image and Video

Music Morph. Have you ever listened to the main theme of a movie? The main theme always has a

A General Introduction to. Adam Meyers, Evan Korth, Sam Pluta, Marilyn Cole New York University June 2-19, 2008

Implementation of a turbo codes test bed in the Simulink environment

A Fast Constant Coefficient Multiplier for the XC6200

Just a T.A.D. (Traffic Analysis Drone)

Next Generation Interactive Experience

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS General Certificate of Education Ordinary Level. Paper 1 May/June hours 30 minutes

Colour Matching Technology

Software Quick Manual

7thSense Design Delta Media Server

Just plug and go. Practical Features. Valuable Benefits

QSched v0.96 Spring 2018) User Guide Pg 1 of 6

9691 COMPUTING. 9691/12 Paper 1 (Written Paper), maximum raw mark 75

Digital Logic Design: An Overview & Number Systems

Cambridge International Examinations Cambridge International General Certificate of Secondary Education

FascinatE Newsletter

Music Composition with RNN

NEW APPROACHES IN TRAFFIC SURVEILLANCE USING VIDEO DETECTION

About video compressions, JPG blocky artefacts, matrices and jagged edges

ANALOGUE AND DIGITAL ELECTRONICS STUDENT S WORKBOOK U1: INTRODUCTION

NetLogo User's Guide

Introduction to Computer Graphics

Downloads from:

EyeFace SDK v Technical Sheet


RadarView. Primary Radar Visualisation Software for Windows. cambridgepixel.com

Real-time body tracking of a teacher for automatic dimming of overlapping screen areas for a large display device being used for teaching

New forms of video compression

Cyclone V5 Teletext & Text Publishing System System Overview

About your Kobo ereader...5

Alcatel-Lucent 5620 Service Aware Manager. Unified management of IP/MPLS and Carrier Ethernet networks and the services they deliver

Data Representation. signals can vary continuously across an infinite range of values e.g., frequencies on an old-fashioned radio with a dial

Embedded System Design

Extracting vital signs with smartphone. camera

Getting Started After Effects Files More Information. Global Modifications. Network IDs. Strand Opens. Bumpers. Promo End Pages.

Guide to InTouch HMI Documentation Invensys Systems, Inc.

Zebra2 (PandA) Functionality and Development. Isa Uzun and Tom Cobb

Intelligent Monitoring Software IMZ-RS300. Series IMZ-RS301 IMZ-RS304 IMZ-RS309 IMZ-RS316 IMZ-RS332 IMZ-RS300C

Tips for the Trek to the Taylor Family Digital Library!

O.E.M TVI Digital Video Recorder

About your ereader Using your Library Reading on your ereader... 25

Award Winning Stereo-to-5.1 Surround Up-mix Plugin

Concept of ELFi Educational program. Android + LEGO

Why t? TEACHER NOTES MATH NSPIRED. Math Objectives. Vocabulary. About the Lesson

S I N E V I B E S ROBOTIZER RHYTHMIC AUDIO GRANULATOR

UNITED STATES DISTRICT COURT FOR THE EASTERN DISTRICT OF TEXAS TYLER DIVISION ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )

Wonderware Guide to InTouch HMI Documentation

G-106 GWarp Processor. G-106 is multiple purpose video processor with warp, de-warp, video wall control, format conversion,

Multiband Noise Reduction Component for PurePath Studio Portable Audio Devices

Announcements. Project Turn-In Process. and URL for project on a Word doc Upload to Catalyst Collect It

Evaluation of Barco ClickShare CSE-800 Wireless Presentation System

A Pseudorandom Binary Generator Based on Chaotic Linear Feedback Shift Register

Updated July hbmusicsolutions. Product Overview Links To Stores Sample Modules To Try Hyperlinked

EBU R The use of DV compression with a sampling raster of 4:2:0 for professional acquisition. Status: Technical Recommendation

Programmer s Reference

Skycoor Manual PEKASAT SE 2016

ENGLISH TYPE 50 OPERATING INSTRUCTIONS

Facetop on the Tablet PC: Assistive technology in support of classroom notetaking for hearing impaired students

DETEXI Basic Configuration

Getting started with. A webinar from. thinksmartbox.com/smart-support

How to Predict the Output of a Hardware Random Number Generator

Cellular Automaton prng with a Global Loop for Non-Uniform Rule Control

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

invr User s Guide Rev 1.4 (Aug. 2004)

Sapheos Project Center for Digital Humanities University of South Carolina. Introduction & thanks to Bethany and Joe.

Raspberry Pi driven digital signage

An Iot Based Smart Manifold Attendance System

Doubletalk Detection

Avigilon View Software Release Notes

G-106Ex Single channel edge blending Processor. G-106Ex is multiple purpose video processor with warp, de-warp, video wall control, format

Introduction to Aspect Signaling with JMRI/PanelPro

Using DICTION. Some Basics. Importing Files. Analyzing Texts

Canadian Computing Competition

Transcription:

Golly: how an open source project took over the study of cellular automata. Tony Smith Complex Systems Analyst Meme Media ts@meme.com.au Open Source Developers' Conference Thursday, 25 November 2010, 14:30 Melbourne, Australia 1

A long prehistory The basic idea: A grid of cells in which the next state of each cell is determined by the previous state of the cells in its immediate neighbourhood through some rule. John Horton Conway discovered an interesting rule whereby a live cell would stay live if it had two or three live neighbours of eight and an empty cell would turn live if it had exactly three, calling it the Game of Life and having it described in Martin Gardner s Mathematical Games column in Scientific American in October 1970. In the article Conway offered a $50 prize to the first person who, before the end of 1970, could prove or disprove his initial conjecture that no pattern can grow indefinitely. One way to disprove it would be to discover patterns that keep adding counters to the field: a gun, which would be a configuration that repeatedly shoots out moving objects such as the glider. The prize was won that November by a team from the Massachusetts Institute of Technology, led by Bill Gosper. 2

Cellular Automata needed computers Ed Fredkin s trivial solution to reproducing patterns in cellular automata reported in Scientific American in 1983. Wolfram, Stephen, Universality and Complexity in Cellular Automata, Physica D, 1984, 10 (January) 1-35. Classes 1-4. Poundstone, William, The Recursive Universe: Cosmic Complexity and the Limits of Scientific Knowledge, Chicago: Contemporary Books, 1985. This used Game of Life to counterpoint physics. FullPaint included an Easter egg which ran one Life iteration. Dewdney, A.K., Computer Recreations: Wallpaper for the Mind, Scientific American, 255 3(September): 14-23, 1986. Pattern Breeder, my generalisation of the Fredkin CA. 3

Fredkin s reproducing rule 4

A souvenir of my first trip to New York City 5

6

Life in a Tube, agars Clicking command-l a few times on a screen dump which included a MacDraw ruler set me on a quest. On again, off again for a couple of decades, this was valuable preparation for interesting rules to come. 7

Life goes on In another part of Melbourne, Andrew Trevorrow develops LifeLab for the early Macintosh, version 2.0 will not work with the old 64K ROM. Version 3.0 runs in native mode on a Power Mac (6 times faster). But the Mac had slipped behind during the 1990s. Approaching 2000 Mirek Wójtowicz develops MCell for Windows then Java web app MJCell, including the Generations rules which generalise some previously discovered multistate rules, exploring and naming numerous interesting ones. 8

In 2002 Wolfram s magnum opus restores interest in CAs and other discrete systems. I finally discover LifeLab and start talking to Andrew about Life in a Tube and agars. Version 4 is Carbonized for OS X, has a new Join Edges item (so a) generating pattern that reaches an edge will wrap around to the opposite edge and adds a new Tile With Selection command (...) for creating repetitive backgrounds in grids with joined edges. With patent protection on GIF expiring I make myself familiar with Perl s pack and unpack so I can turn RLE files saved from LifeLab into animated GIFs. Within three months of announcing a Mac port of Tom Rokicki's Qlife program which (...) is the prototype for a brand new version of LifeLab Andrew and Tom change course and announce Golly a new Life app (which) is free, open source and cross-platform. 9

http://golly.sourceforge.net A year of 0.x releases gets Golly to 1.0 with the notable addition of Python scripting, availability for Linux/GTK (and) Mac app is a Universal Binary (4 times faster on an Intel Mac). 1.2 supports multiple layers 1.3 adds unlimited undo/redo and Perl scripting And even bigger changes were just around the corner. 10

But first some basics Golly runs on an unbounded plain allowing easy construction of patterns of any size with editing operations that make sense for exact bit maps and zoomable from 16:1 without limit the other way. When Tom Rokicki announced Hlife development has stopped because I am dedicating my energies to golly---which has an integral hashlife algorithm with a full GUI! his readme described hlife 0.95 as Just an implementation of Gosper's hash life in C. There have been quite a few other contributors over time from code, to keeping things organised, to testing, to adding to the pattern collection. 11

The kind of thing many people do with Golly. 12

P* scripting environment Scripting has become the standard and correct answer to almost every request to add non-core features to Golly. A Python or Perl script launched from Golly has access to internal functions through an ever richer API. I ve built my GIF generating code into scripts which build animations with pan and zoom or which sensitively colour highly compressed renderings. 13

Just in time for OSDC 2008 After a month of final beta testing convinced me my world was changing, Golly 2.0 was released just in time to show a little bit in a lightning talk. One key was the support of multiple algorithms where I first focused on Mirek Wójtowicz s Generations rule family and, preoccupied as I was with defending the notion of the Edge of Chaos, found Mirek had named Generations 345/3/6 LivingOnTheEdge (LOTE) which I ve had up to three Macs running flat out ever since. But 2.0 also added a RuleTree algorithm which I ve only got into while finalising this presentation. 14

Sometimes something emerges which is outside the bounds of rational expectation though such can usually be rationalised to death with the curse of hindsight. Studying the evolution of LOTE patterns, that became an almost daily occurence. 15

16

# Calculates the density of live and dying cells in the current selection. # Author: Tony Smith (ts@meme.com.au), June 2009. # Groups all cells values other than 1 (and 0) as "dying" as in Generations rules use strict; my @sel = g_getselrect(); my $area = $sel[2] * $sel[3]; my $ref = g_getcells(@sel); my $lth = @$ref; g_exit("the selection is empty.") if $lth == 0; if ( $lth % 2 ) { # multi colour my @counts; for (my $i = 2; $i < $lth; $i += 3) { $counts[ $ref->[$i] ] ++ } shift @counts; # dead/empty (0) cells aren't counted anyway my $live = ( shift @counts ) + 0; my $dying; while ( @counts ) { $dying += shift @counts } my $dens = ( $live + $dying ) / $area; if ($dens < 0.00001) { g_show(sprintf("live density = %.4e, dying density = %.4e", $live/$area, $dying/$area)); } else { g_show(sprintf("live density = %.8f, dying density = %.8f", $live/$area, $dying/$area)); } } else { # 2 colour my $dens = $lth / 2 / $area; if ($dens < 0.00001) { g_show(sprintf("density = %.4e", $dens)); } else { g_show(sprintf("density = %.8f", $dens)); } } 17

A takeover by stealth At first it was Conway s Life, but as computers became ubiquitous a growing community archive of interesting cellular automata patterns needed some navigation help. Golly had integrated Stephen Silver s Life Lexicon since version 0.95, but it was in 2.1 that it was taken to another level, reflecting the degree to which Golly had become the platform of choice for almost every cellular automata researcher. While Golly Help points to a handful of selected archives, Golly now opens HTML and ZIP files in ways designed to make building archives very easy. 18

Announcing Golly 2.2 2.2 was made available on Sourceforge on Monday In the light of Golly s fundamentally limitless plain, the big news is the ability to restrict patterns to bounded grids of various topologies, even open ended cylinders. Life in a Tube is back. Another major innovation is Timelines which takes unlimited undo/redo to a new level and can serve as a lower cost alternative to recording animated GIFs when you want to follow pattern evolution. 19

Old Life in a Tube animations 20

RuleTrees fast and easy # Set the states, neighbors, and function here. my $numstates = 8 ; my $numneighbors = 8 ; # order for nine neighbors is nw, ne, sw, se, n, w, e, s, c # order for five neighbors is n, w, e, s, c my @s = qw/0 0 0 0 1 1 1 1 1 0 0 1 1/; my @b = qw/0 0 0 0 1 1 0 0 0 0 1 1 0/; sub f { my ($nw, $ne, $sw, $se, $n, $w, $e, $s, $c) = @_ ; return ($c + 1) % $numstates if $c > 1; # as in Generations my $out = ($nw==1) + ($ne==1) + ($sw==1) + ($se==1); my $in = ($n==1) + ($w==1) + ($e==1) + ($s==1); my $sum = 2 * $in + $out; return 1 if $c and $s[$sum]; # survive return 1 if not $c and $b[$sum]; # born return $c? 2 : 0; # commence dying if not dead } # supplied code below generates RuleTree using above settings 21

My first RuleTree seed @ 5,000 22

Borrowing old buggy colours 23

24

What it all means Golly has opened up cellular automata rule space as limitless as its layer planes Wolfram s Principle of Computational Equivalence notwithstanding, cellular automata are toys which aid learning, especially about emergence, but not candidate models of the world Open source works, especially given some heros 2D cellular automata fit well with human visual perception Generations 345/3/6 (and other simple rules) demonstrate creative synergy between even deterministic chaos and emergent order 25

Where to from here? Run large patterns across many machines, SETI@home style, the cloud Pattern detection, ash count, database Fully debug and generalise rendering scripts Artistic design input on colour schemes, camera movement Spread the word: you too can be the first person to explore some rich new world 26

Just one more rule Only looked last week Generations 3458/37/4 Need to choose a name No sign of any previous investigation of it Compression rendering from that other rule needs some more work Better seen in Golly 27

Questions? 28