{ "metadata": { "name": "52-largerthanlife" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "\n", "from pylab import *\n", "from scipy.ndimage import filters,measurements\n", "import pygame\n", "from pygame import surfarray\n", "matplotlib.rc(\"image\",cmap=\"gray\")\n", "matplotlib.rc(\"image\",interpolation=\"nearest\")\n", "pygame.init()\n", "OR = logical_or\n", "AND = logical_and\n", "def unif(lo,hi,size=1):\n", " if size==1: return rand()*(hi-lo)+lo\n", " if type(size)==int: return rand(size)*(hi-lo)+lo\n", " return rand(*size)*(hi-lo)+lo" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "\n", "w,h = 512,512\n", "screen = pygame.display.set_mode((w,h))\n", "surface = pygame.Surface((w,h),depth=8)\n", "\n", "def animate(images,n=20):\n", " for i,image in enumerate(images):\n", " if i>=n: break\n", " b = array(255*clip(image,0,1),'B')\n", " pygame.surfarray.blit_array(surface,b[:w,:h])\n", " screen.blit(surface,(0,0))\n", " pygame.display.flip()\n", " return image\n", "\n", "def random(p):\n", " return 1.0*(rand(w,h)=34,OR(n<=45,AND(n<=58,a)))\n", "\n", "_=animate(iterate(bugs,random(0.5)),2000)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "For comparison, here is Conway's Game of Life using linear filters.\n", "\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def life(s):\n", " a = array(s!=0,'f')\n", " n = floor(0.5+3*3*filters.uniform_filter(a,3,mode='wrap')-a)\n", " return AND(n>=2,OR(n==3,AND(n<=3,a)))\n", "\n", "_=animate(iterate(life,random(0.5)),2000)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "RealLife:\n", "\n", "- further generalization\n", "- let the neighborhood go to infinity\n", "- continuum limit\n", "- Pivato: _RealLife: the continuum limit of Larger Than Life cellular automata_\n", "- http://arxiv.org/abs/math.DS/0503504\n" ] } ], "metadata": {} } ] }