Project Life Notes

Title: LIFE
Author: David A. Bagley, bagleyd AT
Copyright: BSD
Description: Simple Life Viewers


Things To Do...
Java - Latest Tweaks...
Java - Older Releases

Things To Do...

Java - Latest Tweaks...

    Ant3D added 8 neighbor and 14 neighbor version.  The 14 cell would
      be nice but it does nothing but corkscrew which seems like its
      intrinsic to the shape.  For ant to work it has to revisit its
      starting point by default.  Also want it to do something
      different to the 6 neighbor version.
    Life2D, Life3D, and Life4D added a way to search for gun given 2
      parts in separate files.
    Life2D, Life3D, and Life4D added toggle and triple detection so
      can weed them out quickly if we want to.
    Life3d and Life4d fixed random soup so it shows cells right away.
    Life2D, Life3D, and Life4D added headless option for searching.
    Ant2d added neighborhood 5 eyes and truchet.
    Old website died, shifted code base to
      new website
    Separate util directory.
    Found 2 22B4/S3 gliders, one orthogonal and one diagonal (2014
    Fixed signature for tetrahedral-octahedral stuff around edge of
    New 22 neighborhood added, new tetrahedral life based on just
      tetrahedrons from tetrahedral-octahedral.
    Found 22B4/S4 6 cell glider (2014 April).  (Small gliders are best,
      as it may be easier to create a gun.) 
    Found 3D 12B3/S3 c/2 p14 kite glider (2014 April).
    Found 9B34/S3 c/2 p16 glider (2014 March).
    Found 2D 12B4/S356 glider.
    Found a way to bounce a Andreen p18 glider.  (Needs a big field).
    Reorganized icons directory.
    Backed out tetrahedral-octahedral stuff.
    swallow tail glider for standard c/2 p2 glider found for 12B46/S356
      (2013 December).
    Now map top of objects as clickable in Life3D and Life4D.  (Use "("
      and ")" to go down and up respectively).
    "round" option added to life versions for round or spherical cells.
    26B58/S58 rule has a light speed replicator and a few gliders.
    New format: 3 or more consectutive numbers are reprsented with
      a dash between the first and last number, by default.  Considering
      some 3D Day and Night rules and it got too painful.
    A 40 cell 2D 9B34/S3 glider found (2013 March).
    Tail found for standard 3D 26B5/S8 glider (p4) (2013 January).
    Another tail found for standard 3D 26B5/S8 glider (p2) (2013 February).
    Dialogs now use swing.
    Asym glider found in 3D 12B3/S3 (2012 September).
    Game canvas now has default focus when applet comes up.
    Scrolling menus showing life pattern names now work with scroll mouse.
    Fixed "mouth" on ant3d (occasionally was drawn on wrong face).
    Oops noticed an Andreen pattern was moving... that makes it a
      new p9 glider (2012 July).
    Noticed oval traffic light buttons on Ubuntu, fixed in
      ant*, life*, and loop.
    Multistate life forms can now be read from menu in life2d (make
      sure states=4, neighbors=8, and rule=B5/S678).
    Found orthogonal ship (c/2, p2) for 3D 26B5/S25 (2012 June).
    Sorting so that front stuff is always drawn last.  Before it was
      approximated.  For life3d, life4d, and ant3d.
    Added linked list for looping through life (and loop) iterations.
      Fixed birthing rule for "0".
    For help in searching, a way of throwing out blobs was added.
      Default is 60% of life form does not change, it will not print.
    12B456/S45 another glider found orthogonal to existing glider c/4, p8
      smaller and faster (2012 May).
    Found a turbulent p93 spinner for triangular 12B3/S278 (2012 April).
      My first thought was to make a glider gun using two of these but
      p18 gliders can not be 93 generations apart.  The p80 gliders can
      be 186 generations apart (by the self destruction of every other
      glider).  Finding how to do this is tricky as p80 glider itself
      creates a lot of turbulence. 
    Finally fixed a long standing bug where found lifeforms are added
      to list of signatures to ignore.  This would fail randomly
      resulting in finding lifeforms that were found already.
    Edge detection added, so far it does not seem useful, turned off
      when there is no wrapping.  Might be useful for discovering guns.
    Now can print out seed if grows large (possibly unbound), it may
      help in looking for replicators.
    12B456/S45 glider found orthogonal to existing glider (2012 March).
    B/S format used by default now instead of S/B in Bays' papers.
      I think its easier to read the way it was, as an embedded
      'S' looks much like a '5', but its a losing argument against
      Wikipedia.  Sync'd these notes as well.
    Life2d enhancement to allow 4 state cells to simulate 3D 26B5/S678
      between two plane barriers (barriers 4 cells apart and life
      forms are contained in 2 planes).  (Carter Bays explored
      this in one of his papers).  Same update made for life3d and
      life4d but do not know a good rule to use it.  No glider
      found for this 4 state rule (-states=4 -rule=B5/S678).
      bkgd = 0, red = 1 (cell on plane 0), yellow = 2 (cell on plane 1),
      green = 3 (cells on both planes).  Since colors now have a
      different meaning here, colorized "aging" of cells is turned off.
    2 new period 4 gliders for 2D 9B34/S3, one asymmetrical 22 cell,
      the other 34 cell, also same rule, period 8 glider 40 cell.
      Also new configuration of quad glider found for 26B5/S45 for 3D.
      (2012 February).
    First glider found for 3D 26B67/S67,  40 cell (orthogonal p2)
      (2012 January).
    Ball glider (orthogonal p4) found 80B_10/S9_10_11 for 4D (2011
      December).  New 28 cell asym orthoganal 26B5/S45 for 3D. Also
      found some "in tow" gliders 12B46/S356 for 2D and 26B5/S58 for 3D.
      Also just realized that there are two similar gliders for 5B2/S24.
    Life3D and rhombic dodecahedral life now uses even cells instead
      of odd (similar to Life4D).  I think this is more straight
      forward as (0, 0, 0) would contain a cell.  All life3d.xml
      dodecahedral life forms for these were shifted one cell.
    New find mechanisms to search for certain periods and size or
      certain signatures... but periods themselves would be otherwise
    New menu scrolling added so do not have life form choices falling
      off bottom edge of screen.
    New glider(c/5, p5) found in 26B67/S57 for 3D (2011 November).
    New glider(c/3, p3) found in 26B6/S567 and
      new quad glider(c/3, p3) found in 26B5/S45 for 3D.
      New bow tie glider(diagonal p2) found in 80B_10/S9_10_11, and
      orthogonal glider (c/4, p8) found in 80B_10/S_13_14_15_16_17
      for 4D. (2011 October)
    New orthogonal glider (p3) found in 26B5/S56 for 3D (2011 September)
      and new orthogonal glider (p6) found in 80B_10/S9_10_11 for 4D.
    New glider (p4) found in -18B4/S46 (2011 August) for Rhombic
      Dodecahedral life (this is an alternate 18 neighbors rule 12 faces
      and 6 corners of a rhombic dodecahedron honeycomb).
    New glider (p12) found in 24B4/S678 and (diagonal p2) found in
      24B4/S67 (2011 July) for 4D Icositetrachoric life.
    Added Icositetrachoric honeycomb to life4d.  Currently investigating
      24B4/S5 and 24B4/S67 (where it looks like a replicator was found).
    In Life3D, in 12B3/S456 a E forger was found which has same signature as E.
    Added "stirring".  Relax the rules for a few iterations to stir pot.
    One speed-up to searching may be to find signature and see if
      signature is repeating or in list of known objects.  Not sure
      if effective.
    Added another switch to randomly rotate in 4D, off by default as
      it may be too confusing.  This overrides another switch which
      just rotates a 4D object in 3D (this is on by default).
    Reorganized life3d forms to life3d.xml and this is portable to
      life3d.h for xlock.  Now names and data are now together so there
      should be less goofs on mismatched names.  Similarly for life2d
      and life4d.  New rules and forms can be added to xml and then
      just restart to see in app.
    Added fillPercent option which defaults to 30.
    New gliders found (2011 May).
      3 new puffers found for life3d B5/S36.
      1 new asym glider found for life3d B5/S45.
      1 new asym glider 36 cell found for life3d B6/S567.
      1 diagonal glider found life3d B5/S58.
      1 orthogonal ball glider found life4d B_12/S_11_12_13_14_15.
    Took out JPopup and put in JMenu stuff from application.  Would have
      done before but did not realize Applet needs to be JApplet for this
      to work.
    Added border for htmls thanks to
    Added Attach/Detach thanks to code snippet Code Ranch and JavaKB by
      Brian Pipa.
    Also found something in stackoverflow from Alex for resizing JFrame.
    Synchronized the life pulse so that resize (or moving zone slider in
      Life4D) would not cause corruption (still a problem for Life3D
    Random soup now configured properly for truncated octahedral.
    Oops, I think I messed up order of operations for the detach stuff and
      broke a few non-life non-square stuff, fixed.
    Added 2 more triangle rules from Carter Bays' applet.
    Ant in a Cairo Tiling, rule 2 is a beaut (2011Feb21). Also works for
      alternating 10 bits, or left side all 1's with right side same number
      of 0 bits (i.e. 10,12,42,56,170,240... or combination of p & q:
      p[n+1]=2^(2*n+1)+p[n] q[n]=2^(2*n)-2^n, where n >= 1 & p[1] = 2
    loop: other rules for neighbors = 4 should now work.
    life2d fix to run nontotalistic rules from command-line.
    New life forms discovered (2011Apr) highlights are Neighbor 6 p16,
      a larger Neighbor 9 ship, and asym ship (c/2) as well as a slower
      (c/3) ship for Neighbor 12 B46/S356.
      For 3D, a new B6/S57 4c/7 snake ship and a orthogonal glider for
      B5/S678 (which already has 3 other known diagonal gliders)
    Changed internal data structures in life to conform with what was
      needed in loop.
    Fixed bug in hexlife when grid is changed.
    A 3d glider icon for life3d and life4d.
    Loop, ant2d, and ant3d  applets created.
    Table stuff for ant2d and ant3d, this allows access to a handful of
       static tables for rules.  First rule is the default rule.
    ant2d: sharp turns allowed for hexagons.
    2011Jan7 life4d: finally found "the" major bug (in checkAliveBounds)
      ... now finding new patterns, including new glider for 4D analog of
      of 3D 26B5/S45: a 80B_10/S9_10_11 "heli glider".
    Added Life Buffer that buffers to screen.
    ant3d: mouth enabled for neighbors = 12
    Added wireframe for 3D/4D.
    Added unbound option.  So far it just checks if grown large but may
      print out initial soup later.
    ant2d: truchet enabled for squares, triangles and hexagons
    ant2d, ant3d: some of the more known boring rules are not available from
      increment spinner.  For 2D those without a 1 or a zero in binary.
      For 3D you have to have 3 out of 4 digits in base 4.  You can insist
      by using a command line option.
    Added non-3D symmetries for Life4DSoup.
    Lots of cleanups in Life2D and Life3D. 1Oct2010, a new Life4D started.
      Get in the zone. :)  Added very basic patterns and only where
      gliders from Lee Meeker's Master's Thesis were discovered.  Randomizer
      not optimized in any way for 4D.
    Truncated octahedral form for Life3D added 11Oct2010.  Most promising
      so far is B46/S34 and B56/S3.  13Oct2010 glider found for B4(6)/S34.
      Fixed signature as a little more buffer is needed.
    Added a visible option in setup.  So it does not spend CPU drawing
      when you do not want it to.  Will redraw when overlayed by another
      window...  leaving that so you can at least check that its running.
    Bug fix for Birth checkboxes would cause rule to change to default.
    Letters reordered to allow for new buttons.
    Speed can be slowed down more now.
    Lissajous (the change in perspective) for Life3D and Life4D can now
      be turned off in setup.
    Grid resize no longer destroys life form.
    Ability to type in rule to adjust quickly on main window.
    Pattern search options and basic setup separated.
    Slightly improved shading for 3D cells.
    Can now set rule as a command-line option.
    New command-line options to make search more automated:
      excludeCount, searchCount, excludePeriod, searchLength
      nice java -jar Life3DApp.jar -neighbors=26 -rule="B67/S67"\
        -excludeCount=6 -searchCount=100 -excludePeriod=24\
        -searchLength=250 -visible=0 -gliderSearch=1 -delay=0\
      excludeCount - min gen exclude count
      excludeCount - min gen exclude count
      searchCount - max number of cells in lifeform
      excludePeriod - period factor to exclude, i.e. 6 would exclude 2, 3, & 6
      searchLength - max gen count from initial soup generation 
      Then simply go to search and select a search.
    Added Random Orient option, on by default.  Randomly orients the
      stuff from Forms.
    Cleaned up menu look.

Java - Older Releases

    Now can generate db of signatures from found objects.  This is 
      used to help find new objects.  This is does not work for multiple
      objects yet, which makes it pretty useless for Conway's life where
      there is a lot of blinkers, etc.
    Fixed rhombic dodecahedrons to only drawing every other point.
      X + Y + Z is always an odd number
      (I was discovering all sorts of new weird lifeforms until I realized... :))
    10Apr2009 Life3d implemented in Java.
    Added a way of rotating and flipping a selection.
    Holding Control key down and use mouse to copy and paste.
    1st 5 neighbor Pentagonal glider found B2/S24 (19Mar2009).
#Dim 2
#Neighbors 5
#Rule B2/S24
#Cells 9
#Name glider (c/2, p4)
#Width 6
#Height 4
#P -4 -2
       AVJD - up, down, left, right pentagons, always starts with up
         pentagon, with up/down/left/right on one row
    1st 9 neighbor Triangular glider found B34/S3 (17Mar2009).
#Dim 2
#Neighbors 9
#Rule B34/S3
#Cells 12
#Name glider (3c/20, p20)
#Width 6
#Height 4
#P -3 -1
      AV - up, down triangle, always starts with up triangle
    Fixed triangular mouse mapping.
    Fixed various bugs for accessing noncataloged rules.
    Fixed default setup menu for rule.
    Fixed changing of bits, so as to set a new menu default in setup when
    Found a bunch of triangular patterns many of them due to making random
      triangular and hexagonal symmetries.
    Added search for patterns and gliders with signature from xlock.
    Pentagonal symmetries added, got a read, write and print to work also.
    Up and down pentagons in Cairo tiling easier to click on.
    First release (synchronized release number with other projects).
    Allow change from Conway's Life through setup.
    Implement get and write.