Golly Changelog

What's new in Golly 4.2

Sep 3, 2023
  • The default stack size for Golly (and bgolly) on Windows has been increased from 1MB to 32MB.
  • Fixed a bug in script commands like g.setpos that accept integers as strings (large negative values less than -1 billion were not parsed correctly).
  • Fixed a number of bugs that could result in an "illegal operation while calculating" warning (after which Golly usually crashed).
  • Performance improvements to Larger than Life NL (Triangular) and NB (Checkerboard) rules.
  • Updated Lua to version 5.4.4. All Lua functions that take a file path (dofile, io.open, etc) now support UTF-8 paths on Windows.
  • Added support for https links when downloading files from online archives.
  • Moved/renamed whiteboard-17c2415-spaceship.rle, sierpinski-builder.rle, wolfram22.mc.
  • Reorganized patterns in HashLife folder into subfolders "Construction", "Eventful", and "Metacell".
  • Links and dates in many pattern comments updated to standard format (e.g., "https" instead of "http", no "www" before "conwaylife.com").
  • New patterns contributed primarily by GUYTU6J, mostly in OCA (non-Conway's Life) rules, plus updates to Life stamp collections by Matthias Merzenich:
  • Added to Generations folder: 9-43-at-knight-rake-gun.rle, flying-sierpinski.rle, p8009-gun.rle, snake-square-oscillators.rle
  • Added to Non-Totalistic folder: 5c101-technology.rle, b2-a4s1-wavestretcher.rle, bubbles-in-phoenician-agar.rle, chaos-boxes.rle, cross-puffer.rle, double-sierpinski-builder.rle, exponential-block-pusher.rle, five-margolus-media2.rle, flying-and-oscillating-diamonds.rle, goldilocks.rle, modern-art-puffthing.rle, p17490.rle, p532-checkerboard-puffer.rle, slant-sierpinski-generator.rle, slow-expanding-box.rle, sparse-c7.rle, w110-rosary-example.rle
  • Added to Non-Totalistic/Guns folder: atpp-48c336-repship-p4032-gun.rle, glider-24mer-gun.rle, p56-gun-in-strobing-checkerboard.rle
  • Added to Non-Totalistic/Replicators folder: thickening-replicator.rle, wave-producing-replicator.rle, whitespace-adjustable-replicators.rle
  • Added to Life-Like folder: b026s1-unidimensional-spaceships.rle, mortality.rle, waffle-rake.rle
  • Updated in Life-Like folder: drylife-p480-rake-gun.rle (typo fix).
  • Added to Life folder: p148-B29-gun.rle 20-cell-quadratic-growth.rle
  • Updated in Life folder: spacefiller.rle, quartermax.rle, honey-farm-hasslers.rle, traffic-light-hasslers.rle, c2-orthogonal.rle, c4-diagonal.rle, c4-orthogonal.rle, short-thin.rle, smallest-low-period.rle, spaceship-types.rle, oscillator-stamp-collection-12August2022.rle

New in Golly 4.1 (May 12, 2022)

  • Golly's audio support is now enabled by default. The overlay's "sound" command has been removed and replaced by an equivalent sound command with a nicer syntax (for Lua or Python). Note that you no longer have to create an overlay to play sounds. See pop-sounds.lua or pop-sounds.py for simple examples. Other scripts that play sounds are breakout.lua and credits.lua.
  • The Mac app is a universal binary that runs natively on Intel or Silicon and requires macOS 10.11+.
  • The cell population inside and outside of a selection can now be displayed in the status bar. Use Edit Preference: "Show selection population" to enable (default is disabled). To prevent lag the population is only displayed if the calculation takes less than 5ms while selecting or less than 500ms when the selection is complete.
  • Lua's sleep command now has a resolution of about 1ms on Windows (previously it was about 15ms).
  • The setoption command now recognizes "showcellborders" for showing or hiding cell borders when zoomed in > 2x.
  • If the "Save Extended RLE" option is ticked then the store command now ensures a non-zero generation count is included in the saved file's #CXRLE comment line.
  • Fixed a bug in Mac app when drawing while a pattern is generating (only on Retina screens).
  • Fixed a bug in Larger than Life weighted neighborhoods with negative counts.
  • Fixed some problems in hexgrid.lua.
  • The performance of the QuickLife algorithm on patterns in bounded grids has been significantly improved (and a problem fixed that could cause a gradual slowing down of patterns in partially bounded grids).
  • Updated Lua to version 5.4.3.
  • New patterns, primarily in OCA (non-Conway's Life) rules: b3-s23-g3-spaceship-breeder.rle, isotropic-rule-wire-construction-gun.rle, 52513m.rle, oscillator-stamp-collection-24Nov2021.rle, crystallizing-dirty-superstring.rle, liquid-methuseblob-soup.rle, r50-unknown-fate-bug.rle, binary-counter-and-iterated-log-gun.rle, drylife-p480-rake-gun.rle, highlife-c98o-spaceship-p1728-gun.rle, lfod-flying-rule110-simulator.rle, pedestrian-life-oblique-rake-gun.rle, 52513m.rle, conga-line-switch-engine-extender.rle, ordovician-radiation.rle, sawtooth177.rle, 1d-turing-machine.rle, checkerboard-spaceships-and-growth.rle, elastic-growth.rle, moving-crystallographic-defects.rle, five-margolus-media.rle, justfriends-p8256-c4-rake.rle, loopability-104-rro.rle, oblique-frontend-rro.rle, whitespace-puffer.rle, wickstretcher-explosion.rle, leaplife-p361-glider-gun.rle, myrtlelife-rake-gun.rle, ripples-p1366-gun.rle, glitter2-p312-2c12d-gun.rle, fractal-making-replicator.rle, rulerish-replicator.rle, triangular-replicator.rle, irregular-triangular-replicator.rle, pascal-mod-3-generator.rle, replicator-blooming-spaceships.rle, rule-110-replicator.rle, sierpinski-like-log5-12.rle, weird-replicator-generator.rle, c2-p146808-orthogonal-spaceship.rle, 16engine-74,46c378-spaceship.rle, adjustable-slope-spaceships.rle, hive-spaceship-collection.rle, omosso-p79576-spaceship.rle, spaghetti2-spaceship-collection.rle. tlife-8c282-spaceship.rle, tubular-geminoid.rle, whitespace-1176c4704o-spaceship-predecessor.rle, whitespace-17c2415-spaceship.rle, crystal-cathedral-09-novelty.rle, exploratorium.rle.gz.
  • Updated 2c5-orthogonal.rle, c4-orthogonal.rle, honey-farm-hasslers.rle, phase-shift.rle, pure-nonfiller-LifeHistory.rle, short-thin.rle, spaceship-types.rle, traffic-light-hasslers.rle.
  • Moved/renamed patterns b2ein-spaceships-and-rakes.rle, horiship-guns.rle, intergalactic-cruise-ship-factory.rle, rr14gun.rle, justfriends-p137loop.rle, justfriends-oscillators.rle, justfriends-p384drifter.rle, justfriends-spaceships.rle, p42-knightship.rle, , unit-fraction-orthogonal-spaceships.zip, calcyman-primer.zip, and cambrian-explosion.rle.
  • Removed patterns DRH-oscillators.rle, p8256c4dirtyrake.rle, and sawtooth6b.rle.

New in Golly 4.0 (Apr 1, 2021)

  • Golly no longer supports 32-bit systems.
  • Golly now requires Python 3.3+ (64-bit) to run .py scripts.
  • Updated Lua to version 5.4.1.
  • A new Super algorithm has been added.
  • The Larger than Life algorithm now supports HROT format rules, B0 emulation and many new neighborhoods including weighted and custom neighborhoods.
  • New script create-custom-ltl.lua creates Larger than Life custom rule strings.
  • The maximum number of characters in a rule string has been increased from 500 to 2000.
  • Rule strings with more than 63 characters are displayed in the main window's title bar using this shortened format: [first30chars ... last30chars].
  • showinviewer.lua: LifeViewer now fills the browser window and resizes with the browser.
  • New script update-viewer.lua downloads the latest version of LifeViewer to use with showinviewer.lua.
  • browse-patterns.lua can now open the current slideshow pattern in LifeViewer.
  • The new getgridtype command can be used to get the current grid type.
  • Fixed a bug in g.setrule that could result in a later undo not restoring the correct rule.

New in Golly 3.4 (Aug 3, 2020)

  • Mac app now supports Retina screens (no more fuzzy text).
  • Keyboard shortcuts can be assigned to these new actions: Open Recent Pattern and Run Recent Script.
  • New script showinviewer.lua opens the current pattern in LifeViewer in your default browser. Examples of LifeViewer scripting commands can be found in the Patterns/Life/Rakes folder. (Note that lifeviewer.lua is no longer needed and has been removed.)
  • New patterns: Devore/Mahler-rep.zip in Self-Rep.
  • Fixed a bug that caused incorrect pattern comments to be displayed.
  • Fixed a bug in the Mac app that caused ctrl-O to generate two key down events.
  • Fixed a problem with Mac app not seeing certain key combinations (ctrl-Q and option-EINU`).

New in Golly 3.3 (Aug 3, 2020)

  • Major speed improvements to 3D.lua via custom-purpose ovtable commands.
  • 3D.lua now natively supports cell history with fading.
  • Added a new gplus module called NewCA.lua which makes it easy to write scripts that implement new types of cellular automata.
  • Two new scripts show how to use NewCA.lua: 1D.lua supports one-dimensional CA rules, including all of Wolfram's 256 elementary rules, as well as totalistic rules with up to 4 states and a maximum range of 4. Margolus.lua lets you explore rules using the Margolus neighborhood.
  • Updated Lua to version 5.3.5.
  • The optimize overlay command now returns the minimum non-zero alpha bounding box of the clip.
  • The blend overlay command now has a faster blend mode ("blend 2") which should be used when the destination is opaque.
  • Some fixes and improvements to the replace overlay command.
  • Performance improvements to the drawcells overlay command.
  • The C parameter in a Larger than Life rule can now specify up to 256 states.
  • Fixed a bug where the canonical form of Generations rules in MAP format was incorrect.
  • Fixed a bug caused by simultaneous clicks of different mouse buttons.
  • Fixed flickering selection size message when extending the selection on Windows.
  • Fixed a performance bug in QuickLife where changing the rule each generation caused a significant slowdown.
  • Fixed bugs in the Mac app that caused memory leaks when running Lua or Python scripts.
  • Fixed a bug that could cause "PyRun_SimpleString failed!" warnings when running Python scripts.
  • Fixed a bug in Larger than Life that could cause a cut/copy operation to create an empty clipboard pattern.
  • Fixed a fatal "bad increment" error by limiting the size of the step exponent if necessary.
  • Fixed a crash caused by buggy NVIDIA drivers.
  • New patterns: demonoid-c512-hashlife-friendly.mc.gz in HashLife, one-cell-thick-quadratic-growth-2596x1.rle in Life/Breeders, infinite-Corderships-gun.rle.gz and period-52-glider-gun.rle in Life/Guns, c3-forward-rake-p159.rle and removed c3-forward-rake-p333.rle in Life/Rakes, animated-pixel-art-sample.zip, dragon-curve-generator.zip, b2ein-spaceships-and-rakes.rle, and NoTimeAtAll-demo.zip in Other-Rules, Flow6.zip and JvN/small-JvN-self-replicator.rle in Self-Rep, loafer-mwss-signal-loop.rle.gz and updated reflectors.rle in Signal-Circuitry.

New in Golly 3.2 (Aug 3, 2020)

  • Three-dimensional cellular automata can be explored using a new script: 3D.lua.
  • HashLife and the other hash-based algorithms are faster and more responsive.
  • Larger than Life now supports circular neighborhoods.
  • Added a Show Population option to the Control menu.
  • Added a Show Scroll Bars option to the View menu.
  • MAP rules can optionally end with base64 padding characters "==".
  • The overlay's paste command now supports multiple locations for batch draw.
  • Added new overlay command lines which can draw multiple unconnected lines.
  • Added a new ovtable command which provides a high performance table API for a subset of the overlay commands.
  • Added draw_line and fill_rect functions to the overlay's oplus package.
  • The oplus package also has new functions for creating a menu bar, pop-up menus and radio buttons. Menu buttons now support custom colors and shadows.
  • Added a round function to Lua's gplus package.
  • Added timing functions to the gplus package which can be used to profile Lua scripts.
  • Added savechanges, settitle and sleep commands for use in Lua scripts.
  • The getevent command now returns a "file" event when a user tries to open a file while a script is running. 3D.lua uses this event to open a .rle3 pattern or to run a .lua script.
  • The note and warn commands have an optional parameter to specify whether the dialog has a Cancel button.
  • The setoption command recognizes two new options: "showscrollbars" for showing or hiding the scroll bars, and "showtimeline" for showing or hiding the timeline.
  • Mouse wheel sensitivity can be adjusted in Preferences > View to make zooming in/out easier to control.
  • Fixed a bug when setting/getting cell values in very big hash-based universes.
  • Fixed a bug where patterns larger than bounded grids were not correctly clipped.
  • Fixed various problems with UTF8-encoded text in the clipboard and in Lua/Python scripts.
  • Fixed a bug that could crash Golly if a .rule file contained invalid XPM data.
  • The new credits.lua script displays animated credits and can be launched from a link in Help > Credits.
  • New patterns: CY_Lee_computer.zip, switch-engine-ping-pong.rle, honey-farm-hasslers.rle, weekender-distaff.rle.gz, slow-salvo-MWSS-oscillator.rle.gz, syntheses-of-c2-spaceships.rle.gz.
  • Updated patterns: phase-shift.rle, traffic-light-hasslers.rle, 2c5-orthogonal.rle, c3-orthogonal.rle, c4-diagonal.rle, c4-orthogonal.rle, short-thin.rle, smallest-low-period.rle, spaceship-types.rle.
  • Removed pattern: Patterns/Life/Syntheses/make-lightbulb.rle.
  • Updated the Life Lexicon to release 29.

New in Golly 3.1 (Oct 25, 2017)

  • Fixed a couple of bugs in the Larger than Life algorithm that caused Golly to crash.
  • Scripts can call g.setoption("showprogress",0) to prevent the progress dialog from appearing (useful for scripts that you want to run in the background).
  • Updated the Life Lexicon to release 27.

New in Golly 3.0 (Sep 23, 2017)

  • Golly has a new algorithm that supports the Larger than Life family of rules.
  • This version introduces a new feature called the overlay. Lua scripts can call a new overlay command to create, modify and delete the overlay.
  • There are three new items at the top of the Layer menu: Save Overlay..., Show Overlay and Delete Overlay.
  • The getevent command can detect a number of new events: a mouse click in the overlay, the release of a mouse button (anywhere), zooming in/out via the mouse wheel (either in the current layer or in the overlay), and the release of a key.
  • The setoption command recognizes two new options: "showbuttons" (with a value from 0 to 4) for controlling the position of the translucent buttons, and "showoverlay" (with a value of 0 or 1) for controlling the appearance of the overlay.
  • The getview command now takes an optional parameter so scripts can get the pixel dimensions of a specified layer.
  • The dialog boxes displayed by the note and warn commands now have a Cancel button that can be used to abort the script.
  • The new os command allows scripts to detect the current operating system.
  • The new getinfo command can be used to get the comments from the current pattern.
  • The new getpath command can be used to get the pathname of the current pattern.
  • The new millisecs command allows Lua scripts to get the elapsed time since Golly started up.
  • A new version of pop-plot.lua creates an overlay to display a much nicer looking plot.
  • The new hexgrid.lua script creates an overlay to display a true hexagonal grid over a layer that uses a rule with a hexagonal neighborhood.
  • The new lifeviewer.lua script creates an overlay to display patterns like LifeViewer with history and smooth non-integer scaling and rotation.
  • The new overlay-demo.lua script demonstrates most of the overlay functions.
  • The new browse-patterns.lua script allows you to browse through patterns in a folder manually or automatically.
  • The new breakout.lua script shows how to use the overlay functions together to create a working game.
  • The new toLife.lua and toLifeHistory.lua scripts make it easy to convert LifeHistory patterns to Life and vice versa.
  • The flood-fill.lua script uses a faster scanline algorithm.
  • The move-*.lua/py scripts now wait for the mouse button to be released instead of waiting for a second click.
  • Added support for MAP rules to QuickLife, HashLife and Generations.
  • QuickLife, HashLife and Generations now support much longer rule names.
  • Non-totalistic rules containing B0 are now supported.
  • The Generations algorithm now supports Hex, Von Neumann and non-totalistic Moore neighborhoods.
  • Pattern rendering is significantly faster when zoomed in.
  • Drawing cell borders when zoomed in > 2x is now controlled by a View Preference: "Zoomed cells have borders".
  • File > Open Clipboard will center the given pattern within a bounded grid.
  • Fixed bug in Linux app that caused buttons to lose their bitmaps.
  • Fixed bug that could result in a "Bug detected in SyncUndoHistory!" warning.
  • Fixed bugs that could occur when undoing a script that called reset().
  • Fixed a crash caused by bad state value in a rule table.
  • Fixed a rare crash that could occur while rendering a generating pattern.
  • Fixed a crash that could occur if Golly was quit during pattern generation.
  • Fixed a bug that prevented Wolfram rules containing the digit 9.
  • The Life Lexicon has had a major update.
  • The Banks, Codd, Devore, and JvN folders have moved into a new top-level "Self-Rep" folder, to emphasize their common focus on self-replication.

New in Golly 2.8 (Aug 6, 2016)

  • Golly no longer supports Perl scripting. In its place we've added support for Lua using a statically linked interpreter, so no need to download an installer or set a path to a shared library. See Lua Scripting for all the details.
  • QuickLife and HashLife now support non-totalistic rules. A number of interesting examples can be found in the new Patterns/Non-Totalistic folder.
  • OpenGL is used for rendering patterns.
  • Timers are used to control pattern generation and timeline recording/playback.
  • The File menu items Show Patterns and Show Scripts have been replaced by a single Show Files item for consistency with the recommended way to organize your Golly folder.
  • The shrink command has an optional flag that can remove the selection if it has no live cells (the default is to leave the selection unchanged).
  • Two new scripting commands, setview and getview, can be used to set/get the pixel dimensions of the viewport.
  • The View menu has a new Smarter Scaling option for displaying correctly colored patterns when zoomed out at scales from 2:1 to 16:1.
  • The Buffered item has been removed from the View menu.
  • Paste patterns are covered with a translucent rectangle instead of being enclosed by thin border lines.
  • Correct colors/icons are now displayed when pasting a pattern with a rule different to the current layer's rule.
  • Better reporting of errors in a .rule file.
  • Fixed a bug that could result in a spurious error message when loading a .rule file without any TABLE or TREE section.
  • Fixed a crash on Linux when typing in the Keyboard preferences.
  • Fixed some bugs that could cause Reset/Undo to restore an incorrect pattern.
  • Fixed a timeline bug that could show incorrect population for a bounded grid.
  • bgolly now supports rules that specify bounded grids.
  • Fixed a bug in bgolly that prevented use of the RuleLoader algorithm.
  • bgolly has a new -s option (or --search) for specifying the folder in which the RuleLoader algorithm will look for .rule files before looking in the supplied Rules folder. For example, assuming SlowLife.rule is in a folder called My-rules, you could type a command like this: bgolly -a RuleLoader -s My-rules/ -r SlowLife My-patterns/foo.rle.

New in Golly 2.7 (May 29, 2015)

  • The middle mouse button can now be used for panning, regardless of the current cursor mode.
  • Fixed potential crash when pasting a text pattern into any hash-based algorithm.
  • Fixed crash on Mac OS 10.9 when opening a modal dialog like Save Pattern.
  • Fixed crash on Windows 8 when opening the Set Rule dialog.
  • Fixed bug in QuickLife algorithm that could cause cells at the bottom/left edges of the viewport to disappear every odd generation.
  • Fixed bug in QuickLife algorithm that could cause the selection rectangle to appear offset by one pixel (left or right).
  • The shift.pl/py scripts save the given parameters for the next run.
  • The evolve command aborts the current script with an error message if the given number of generations is negative.
  • Fixed minor problem with the Fit Pattern/Selection menu commands not centering a pattern/selection accurately in some cases. Ditto for the fit and fitsel script commands. The visrect script command is also more accurate.
  • Fixed bug that could cause Undo to fail due to a temporary macrocell file containing comment lines not prefixed with #C.
  • Start-up message now shows if this version of Golly is 32-bit or 64-bit.

New in Golly 2.6 (Dec 11, 2013)

  • Fixed menu problems on Ubuntu when using Unity.
  • Fixed a nasty bug that could cause Golly to crash when doing a paste.
  • Fixed a bug that could cause the paste image to disappear after a flip/rotate.
  • Fixed bugs in Mac app caused by non-ASCII characters in some file paths.
  • Fixed a problem that prevented Golly starting up on Mac OS 10.9.
  • Tool bar buttons are no longer disabled when the main window is inactive.
  • The save settings in Preferences > Layer are now obeyed by scripts. For example, let's assume you've ticked the option to be asked to save changes on creating a new pattern. If the current layer has changes and you run a script that calls new() then you'll get the standard dialog asking if you want to save those changes. If you cancel the dialog then the script is aborted.
  • To avoid potential data loss, you now get a warning if you save a non-starting generation and earlier changes exist. The warning can be disabled in Preferences > Layer.
  • Created an online archive for very large patterns.

New in Golly 2.5 (Jun 17, 2013)

  • This version introduces a new rule format. A file in the new format has a .rule extension and contains all the information about the rule: its name, description, table/tree data, and any color/icon information. More details here.
  • The RuleTable and RuleTree algorithms have been replaced by a new algorithm called RuleLoader. If asked to load a rule called "Foo", RuleLoader will look for Foo.rule first, then Foo.table, then Foo.tree.
  • The Control menu has a new command called Convert Old Rules that can be used to convert all your old .table/tree/colors/icons files into new .rule files (it won't overwrite any existing .rule files). After the conversion finishes you're given the option of deleting all the old files.
  • If File > Open Clipboard or Edit > Paste sees clipboard text starting with "@RULE rulename" then Golly will save the text as rulename.rule in your rules folder and switch to that rule.
  • All Python scripts that created a .tree file (and possibly .colors/icons files) now create a .rule file containing the same tree data (and any color/icon info).
  • Two new scripts allow Golly to be used as an icon editor. First, run icon-importer.py to import any icons for the current rule and display their bitmaps in a new layer for you to edit. When you've finished, run icon-exporter.py to extract the icon images and create or update the @ICONS section in the appropriate .rule file, then display the icons in a separate test layer.
  • A script has been added: goto_expression.py. It works like goto.py, except that it also accepts expressions. An example of an "expression" is "17*(2^(3*143)+2^(2*3*27))".
  • The status bar now displays quantities larger than 10308 in scientific notation. Golly can easily exceed this in both the Generation and Population statistics. For example, open the pattern puffer-train.rle, then run the script goto_expression.py and enter "f10^2000".
  • Added a new pattern: partial-constructor.mc.gz.
  • Patterns can now be displayed at scale 1:32. If you want to use that scale when creating a new pattern then choose the appropriate pop-up menu option in Preferences > File.
  • Support for monochrome icons has been extended to allow grayscale icons, where shades of gray can be used to do anti-aliasing. See the icons in WireWorld.rule for a good example. Most of the default icons are now grayscale bitmaps.
  • The current directory is now inserted at the start of sys.path for Python scripts.
  • The "Load Icons" button in Preferences > Color has been removed (it's no longer possible to change an algorithm's default icons).
  • The RuleTableToTree program is no longer included (you can use the RuleTableToTree.py script instead).
  • Fixed bug in Linux app: the shift key wasn't toggling cursor mode.
  • Fixed bug in Linux app: the space key wouldn't stop a pattern generating.
  • Fixed bug in Mac app: resizing the window could cause the sash position to change unexpectedly.
  • Fixed bug in Mac app: the first keyboard shortcut after a Paste command might be ignored.

New in Golly 2.4 (Jun 14, 2012)

  • Fixed bug that prevented 64-bit Windows app using more than 4GB of hash memory.
  • Fixed bug that caused corrupted macrocell files if saved with timeline data.
  • Fixed bug in Langtons-Ant.tree that had ants colliding incorrectly.
  • Fixed Mac app crashing if user's language setting is non-English.
  • Clipboard data on the Mac now uses LF as the end-of-line character rather than CR.
  • A pending paste is aborted if the main window becomes inactive.
  • Error messages from each algorithm are shown if a pattern file can't be loaded.

New in Golly 2.3 (Dec 2, 2011)

  • QuickLife and HashLife support rules using the von Neumann neighborhood or the hexagonal neighborhood. More details here.
  • The default icon for most rules is now a circular dot rather than a diamond. A diamond is the default icon for rules using the von Neumann neighborhood and a slanted hexagon is the default icon for rules using the hexagonal neighborhood.
  • A number of new script commands have been added to allow mouse interaction and better keyboard interaction: getevent, doevent and getxy. The getkey and dokey commands still work but are deprecated. In particular, there is no longer any need for scripts to call dokey(getkey()). See the description of getevent for more details.
  • Some scripts have been added to take advantage of the new commands: draw-lines.py, flood-fill.py, move-object.py and move-selection.py.
  • New patterns: ComputerArt.rle, CrittersCircle.rle, CrittersOscillators.rle, HPP.rle, HPP_large.rle, Sand-Test.rle, TMGas.rle, TMGas_largeWithHole.rle, TripATron.rle, TripATron_BlockAligned.rle.
  • Scripts that create table/tree files have been moved into Scripts/Python/Rule-Generators.
  • Langtons-Ant-gen.py now accepts turns 'U' and 'N' (U-turn and no-turn) as well as 'L' and 'R'.
  • The hash() command uses a better hash function in a two-state universe.
  • Pattern rendering is faster at scales 1:16 and 1:8, especially in the Linux app.
  • The mouse wheel now zooms in/out from the current cursor location rather than the middle of the viewport.
  • Patterns can be saved as gzipped files (*.rle.gz or *.mc.gz).
  • If an algorithm can save patterns in macrocell format (currently all except QuickLife) then the Save Pattern dialog now prefers that format over RLE; ie. the file type order is *.mc, *.mc.gz, *.rle, *.rle.gz.
  • While waiting for a paste click, the keyboard shortcuts for flipping or rotating a selection now modify the paste pattern rather than the current selection.
  • Fixed a bug in Win and Linux apps that prevented keyboard shortcuts being used while waiting for paste click.
  • Pasted patterns are no longer truncated if the RLE header info is incorrect.
  • Quitting Win app no longer clears clipboard.
  • Fixed unwanted cursor changes while running a script.
  • Fixed bug if layer was changed while recording a timeline.
  • Fixed bug in EmulateMargolus.py when using square4_* neighborhoods.
  • Removed emulate-Margolus-table.py script (use RuleTableToTree.py instead).
  • Fixed bug that could result in all buttons and menus being disabled after hitting the tool bar's Reset button.
  • Fixed cursor problems if shift key is used in a keyboard shortcut.
  • The Mac app now runs on Lion (10.7). There are two Mac apps: a 64-bit version for 10.6 and 10.7 (based on Cocoa), and a 32-bit version for 10.4 and 10.5 (based on Carbon).

New in Golly 2.2 (Nov 22, 2010)

  • Golly supports bounded grids with various topologies (plane, torus, Klein bottle, etc.). Such grids are created by adding a special suffix to the usual rule string. The details are in Help > Bounded Grids.
  • Two new script commands, getwidth and getheight, return the size of the current grid.
  • The new scripts, make-torus.py and make-torus.pl, can be used to convert the current selection into a toroidal universe.
  • Any BOARD and WRAP settings in an MCell file are now obeyed (e.g. Bloomerang.mcl).
  • Golly can record and play back a pattern's "timeline", a sequence of steps saved by the new Start Recording item in the Control menu. Use the Delete Timeline item to delete a timeline. Timelines are supported by all the hashlife-based algorithms (ie. all except QuickLife).
  • Show Timeline in the View menu toggles the new timeline bar below the viewport window.
  • If a timeline exists when you save a .mc file then all the steps will be stored in the file. On opening such a file, Golly will load the timeline and automatically show the timeline bar.
  • Multi-color icons are supported and allow both icon and color information to be stored in the one file (more details here).
  • Rule tables now support hexagonal and oneDimensional neighborhoods and the permute symmetry.
  • Added a section on naming conventions for .table and .tree files.
  • Added a new Python script, make-ruletree.py, that allows you to write rules in Python and have them installed in the form of .tree files. See the comments at the top of the script.
  • New script: RuleTableToTree.py, that converts rule tables to trees. It provides emulation for several neighborhoods not natively supported by Golly: triangularVonNeumann, triangularMoore, Margolus, etc. More details here.
  • New Turmite scripts, e.g. Turmite-gen.py, for generating rule trees and icons for relative- and absolute-movement turmites on square, hexagonal and triangular grids.
  • The goto.py script is much faster (thanks to PM 2Ring).
  • Hitting escape aborts a script that has called a lengthy run() or step() command.
  • Langtons-Ant.table has been replaced with Langtons-Ant.tree. The new rule is faster, handles multiple ants correctly, and matches most other implementations of this CA.
  • Reorganized the Patterns folder: moved Conway's Life patterns into Life subfolder, moved rule subfolders out of Other-Rules to top level under Patterns, added Life-Like folder.
  • Added new Turmite patterns, e.g. WormTrails.rle.
  • Other new patterns: golly-ants.rle, Langtons-Ant.rle, JvN-loop-replicator.rle.gz, Herschel-conduit-stamp-collection.rle, Boustrophedon-replicator.rle.
  • Increased the maximum base step from 10,000 to 2,000,000,000.
  • Help > Keyboard Shortcuts lists unassigned actions at the end.
  • The drawing state can be changed by creating keyboard shortcuts for two new actions called Next Higher State and Next Lower State (see Preferences > Keyboard).
  • You can turn off the beep sound by unticking the option at the bottom of Preferences > Edit.
  • Loading a pattern won't proceed if the "save changes" dialog appears and you select Save but then decide to cancel the "save pattern" dialog.
  • Fixed bug that caused cells to be created in the wrong location when editing very large patterns.
  • Fixed bug drawing incorrect selection rectangle if very large.
  • Fixed cursor problem if the shift key is used in a keyboard shortcut to open a dialog/window.
  • Fixed weird bug on Mac that could cause the viewport to lose keyboard focus after clicking in the layer bar's "delete layer" button.
  • Fixed undo history getting out of sync if you tried to reset to a saved starting pattern that had been deleted.
  • Fixed a bug drawing incorrect icons when layers are stacked.
  • Fixed a bug not updating the paste image when colors are inverted.
  • Fixed a problem with the hash() command in a multi-state universe.
  • Fixed problems using a keyboard shortcut or menu command while a script is running.
  • Dropped support for Mac OS 10.3.9.

New in Golly 2.1 (Sep 14, 2009)

  • Golly can download patterns, rules and scripts from various online archives. You can change the location of downloaded files using the new button at the bottom of Preferences > File.
  • Zip files can be opened and processed as described here.
  • If the mouse moves over a link in the help window then the link reference is displayed at the bottom of the window. Ditto for links in the Set Rule dialog.
  • The algorithm info in the Set Rule dialog can now be accessed from the new Algorithms help item.
  • Translucent buttons for speed/scale/scroll functions now appear in a corner of the viewport whenever the mouse moves over that corner. The initial location is the top left corner, but you can use Preferences > View to specify any other corner or disable the buttons.
  • Layer bar buttons now show each layer's name rather than its numeric position.
  • New rules: Codd2, Devore, DLA, Ed-rep, LifeHistory, Perrier, Sand.
  • New patterns in Other-Rules/, Other-Rules/Codd/, Other-Rules/Codd/Devore/, Other-Rules/Margolus/, Loops/.
  • New scripts: FredkinModN-gen.py, make-Devore-tape.py, Margolus/emulate-Margolus-table.py, Margolus/convert-MCell-string.py.
  • All Python scripts now need to explicitly import the golly module. This wasn't strictly necessary in previous versions, but only because it was an undesirable side-effect of the way Golly ran scripts.
  • The open command can now be used to run a given Perl/Python script.
  • New scripting commands: opendialog, savedialog, getclipstr, setclipstr, getdir, setdir.
  • The appdir and datadir commands are deprecated; use the new getdir command.
  • The color of dead cells (state 0) is now handled like all other states, so it's possible for each algorithm/rule to have a different background color.
  • The setcolors and getcolors commands can be used to set/get the color of state 0.
  • Golly restores a layer's default colors whenever you create a new pattern or open a pattern file (and not just if the algorithm or rule changes). If you have any scripts that use setcolors then make sure it is called after calling new/open.
  • The base step can now be changed temporarily via the new Set Base Step dialog in the Control menu. Golly will restore the default base step (set in Preferences > Control) when you create a new pattern, open a pattern file, or switch to a different algorithm.
  • The setbase command also changes the base step temporarily, so if you have any scripts that use setbase then make sure it is called after calling new/open/setrule/setalgo.
  • The setoption/getoption commands can use "drawingstate" to set/get the edit bar's current drawing state, and they can use "restoreview" to set/get the state of the "Reset/Undo will restore view" option set in Preferences > View.
  • Paste now supports "And" mode.
  • The RLE reader allows alphabetic characters other than "o" to represent live cells.
  • Menu items can show single-character keyboard shortcuts.
  • When a lexicon pattern is loaded, Golly automatically switches the current rule to B3/S23 (and changes the algorithm to QuickLife, if necessary).
  • Fixed a bug with Random Fill. Golly wasn't initializing the seed, so the internal rand() calls were returning the same sequence of "random" integers each time!
  • Fixed a bug that prevented the getkey command from returning uppercase letters.
  • Fixed oscar.pl/py to handle B0-and-not-S8 rules correctly (they no longer report some spaceships to be stable patterns).
  • Fixed a couple of bugs when duplicating a layer's undo/redo history.
  • Fixed crash in Mac app if a script saved a pattern and the progress dialog appeared.

New in Golly 2.0 (Dec 3, 2008)

  • Golly now supports multiple algorithms and multi-state universes (up to 256 states).
  • The Generations algorithm supports an entire family of new rules, including Brian's Brain (/2/3), Star Wars (345/2/4), and Transers (345/26/5).
  • The JvN algorithm implements John von Neumann's classic 29-state CA, plus a couple of 32-state variants created by Renato Nobili and Tim Hutton. See Patterns/JvN for a variety of self-replicators.
  • The RuleTable and RuleTree algorithms allow you to add new rules by creating .table and .tree files and storing them in the Rules folder or your rules folder. A number of example rules are supplied, including Langtons-Loops, Evoloop, LifeOnTheEdge and WireWorld.
  • The tool bar has a new button for switching algorithms, or you can use the Set Algorithm submenu in the Control menu. The Use Hashing option has been removed.
  • The Control > Set Rule dialog also has a menu for changing the current algorithm. A help button can be used to expand the dialog and display information about the current algorithm, along with examples of the rules it supports.
  • Golly can read some MCell files (if an algorithm supports the given rule).
  • The ten layer-specific colors have been replaced by a more flexible approach to cope with multi-state universes. Each algorithm has a default color scheme that can be changed in Preferences > Color.
  • Each algorithm also has a default set of icons, small bitmaps that are only drawn at scales 1:8 and 1:16, and only if the Show Cell Icons option (in the View menu) is ticked. The default icons can be changed by using the Load Icons button in Preferences > Color.
  • Rule-specific colors and icons can be created by adding suitably named .colors and .icons files to the Rules folder or your rules folder. Golly looks for these files whenever it switches to a new rule.
  • The Layer > Set Layer Colors dialog can change one or more colors used by the current layer (and its clones). These changes are temporary and only remain in effect while the layer exists, or until the layer's algorithm or rule changes.
  • The View > Swap Cell Colors option has been changed to Invert Colors.
  • New script commands have been added to support the above changes: setalgo, getalgo, numalgos, numstates, join, setcolors and getcolors.
  • Some script commands have been modified to handle multi-state patterns. Perl users should read the section on cell arrays. Python users should read the section on cell lists.
  • The getrule command now returns a canonical rule string.
  • The setcursor/getcursor commands now accept/return strings.
  • Modified oscar.pl to use arbitrarily big integers.
  • It's now possible to open a pattern or run a script from the Help window by clicking on special links. For example, open golly-ticker.rle or run bricklayer.py.
  • Diagonal scrolling is supported. Open Preferences > Keyboard and assign keys to the new scrolling actions: Scroll NE/NW/SE/SW.
  • A new check box in Preferences > View can tell Reset/Undo not to restore the view.
  • View > Show Edit Bar toggles the new edit bar. The cursor mode buttons have been moved from the tool bar into the edit bar.
  • View > Show All States toggles the display of colors and icons for all states in the current universe. A box is drawn around the current drawing state.
  • Help > File Formats describes the various file formats used by Golly.
  • Rendering speed in the Mac and Linux apps has been improved.
  • Fixed a problem with ampersands not being displayed in the recent pattern/script menus.
  • Fixed a bug in the Linux/GTK app if a recent pattern/script path contained an underscore.
  • The Linux and Win apps require Perl 5.10 or later to run .pl scripts (older Perl versions are not binary compatible).
  • The Linux/X11 app is no longer supported due to limitations in wxX11.

New in Golly 1.4 (May 26, 2008)

  • Editing and other actions are now allowed while generating a pattern.
  • Golly saves files in the standard user-specific data directory on each platform rather than in the application directory. However, you can still keep the GollyPrefs file in the application directory if you prefer that option.
  • Right-click or control-click on a pattern/script file to open the file in a text editor. Use the new button in Preferences > File to select your preferred text editor.
  • Pasting a clipboard pattern can now change to the specified rule, depending on the option set in Preferences > Edit.
  • The Preferences dialog can be opened from the help window by clicking on special links like the examples above.
  • Added Reset button to tool bar and Duplicate Layer button to layer bar.
  • A duplicated layer now gets a copy of the original layer's undo/redo history.
  • Improved the automatic detection of Perl/Python code used by Run Clipboard.
  • Added datadir command so scripts can save files in Golly's user-specific data directory.
  • Added help command to open given HTML file in help window.
  • A warning is displayed if a bad rule string is detected while loading a pattern.
  • Added support for reading WinLifeSearch output.
  • An error message is displayed if you try to load a JPEG file.
  • Fixed some problems if you quit Golly while running a script.
  • Fixed problem shrinking selection while generating a pattern.
  • Fixed "Rules differ" warning when undoing/redoing generating changes using hashing.
  • Fixed problems with incorrect file selections in Win app's directory pane.
  • Fixed bug in Mac app's activate event handler.
  • Fixed bug in Linux/GTK app that prevented using shift-space as a keyboard shortcut.
  • Mac app allows option-E/I/N/U/` to be used as keyboard shortcuts.
  • Golly can be built for 64-bit platforms.