QuickLife

QuickLife is an algorithm used in Golly to efficiently and quickly run isotropic non-totalistic cellular automata. It was written from scratch, but originally inspired by both xlife and the algorithm used in Alan Hensel's Java-based Life applet.[note 1]

QuickLife uses a tree structure to represent the universe, with each level increasing one of the dimensons by a factor of 8; this makes it possible to avoid using coordinates, and thus restricting the size of the universe. Distinct structures are used for 4×8, 32×8, and 32×32 sections of the universe; the sizes at the following levels are 256×32, 256×256, 2048×256, 2048×2048, etc. The tree contains both an even and odd generation, along with flags indicating if a subtree is stable, oscillating with period 2, or active. Details of the algorithm can be found in Golly's source code, specifically in the files qlifealgo.h and qlifealgo.cpp.

Notes

  1. Cf. Alan Hensel's description for details on his applet.
gollark: I should really try and figure out how to make skynet distributed-ish, i.e. capable of supporting multiple linked servers.
gollark: Rednet is its own library. Modems are a peripheral.
gollark: Rednet is a dumb™ protocol on top of modems.
gollark: WRONG!
gollark: The new version runs over skynet.
This article is issued from Conwaylife. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.