LifeHex is a cellular automaton system simulator (much like John Conway's so-called Life Game) that attempts to be entertaining. It features fairly fast execution of generations, various rendering effects and lets you create new rules (over 50 interesting rules are initially built-in).
LifeHex (the latest version is 2.1) runs under Macintosh with PPC processor, color monitor of size VGA (640x480) or bigger, MacOS version 8.1 or later and DrawSprocketLib must be installed in the system. (DrawSprocketLib is a part of Game Sprocket library bundled with MacOS which should be installed by default in OS version 8.6 or later).
A cellular automaton is a discrete dynamical system. Space, time, and the states of the system are discrete. Each point in a regular spatial lattice,called a cell, can have any one of a finite number of states. The states of the cells in the lattice are updated according to a local rule; that is, the state of a cell at a given time depends only on its own state and the states of its nearby neighbors at the previous time step. All cells on the lattice are updated synchronously, and thus the state of the entire lattice advances in discrete time steps.
Cells are arranged as a hexagonal lattice with 6 neighbours for each cell. A cell can have only two states: ALIVE or DEAD. The state of a cell is determined by its local state of the previous generation, namely the state of itself and states of its 6 neighbours.Two local states are said to be equivalent if they coincides by rotation or reflection. Two cells that have equivalent local states become the same statein the next generation. Under the equivalent condition, local states are classified to 26 categories, each corresponding to one of the rule controller buttons displayed at the lower left of the screen (provided you locate the mouse pointer to the bottom edge).

Launch LifeHex. The screen will fade out and immediately begin simulation with a default rule. If you move your mouse to the top edge, generation will pause and the menu bar will appear. Move your mouse to the bottom edge, and control buttons will appear, just click on them and enjoy the various effects. I'm tired of explaining about them since there are too many functions, so feel free to explore them and become familiar with them. Almost all keys on keyboard are assigned some functionality, most are just shortcuts of menu commands or buttons but some are not (e.g. scrolling). By using commands in file or edit menu you can save your new creation of rules. You are welcome to send me your new creation of rules via e-mail listed below (rules can be exported as text format by adding a .txt suffix when saving to a file) which will be published on the web.
| File | New | Makes a new empty rule document. A document can contain up to 100 rules. |
|---|---|---|
| Open | Opens an exisisting rule document through a file dialog. | |
| Close | Closes current document, where the checked item in the Document menu points to the current document. | |
| Save | Saves current document. | |
| Save As | Saves current document as a new file through a file dialog. There are 2 kinds of file format available. One is binary and the other is plain text. The plain text format can be made by adding '.txt' suffix to the end of file name in the dialog. | |
| Revert | Reverts any changes made on current document to the last saved state. | |
| Quit | Quits the application with confirming any changes made on documents and saves current settings of rendering to preferences. | |
| Quit Anyway | Quits the application immediately (no confirmation, no saving of current settings of rendering). | |
| Edit | Add Rule | Adds current rule to current file. |
| Rename Rule | To rename the rule currently selected, choose this. | |
| Cut | Copies the rule currently selected to the clipboard and removes it from current document. | |
| Copy | Sets the contents of the clipboard to rules currently selected. | |
| Gather | Similar to Copy, but it appends copied rule to the list of rules held in the clipboard. | |
| Paste | Appends list of rules held in the clipboard to current rule file | |
| Delete | Deletes rules selected in current rule file. | |
| Select All | Selects all rules in current rule file. | |
| Clipboard | Rules stored in the clipboard can be seen in this sub menu. Selecting one of rule changes current rule to the selected one. | |
| Misc | Random | Initializes all cells with random pattern. |
| Clear | Initializes all cells as thier states 'DEAD'. | |
| Map Size... | To change the world's size (i.e. number of cells in both horizontal and vertical), select this. | |
| Alternate Rule | Altrernates current rule (i.e. the semantics of 'ALIVE' is interchanged with 'DEAD'). | |
| Always Alternate | If checked, the semantics of 'ALIVE' and 'DEAD' are always to be interchanged. | |
| Avoid Flashing | Under certain rules (e.g. the rule such that only the leftmost lower button of the 26 rule control buttons is activated), the screen can flash if rendering period is an odd number. If checked, it forces rendering period to the nearest higher even number whenever flashing is detected. If you have epilepsy, it is strongly recommended to keep this menu item checked. | |
| Auto Randomize | Initializes all cells with random pattern whenever cureent rule is modified or changed. | |
| Randomize Fore Colors | Randomizes foreground colors (i.e. colors for cell of 'ALIVE' state). | |
| Randomize Back Color | Randomizes background color (i.e. colors for cell of 'DEAD' state). | |
| Add Color Set... | Records a color set currently using (except in case current color set is one of a color set initially builted in), e.g. after randomizing fore/back color(s). The color set is added to the Color Set sub menu in the Rendering menu. Color sets added to that menu will be saved to the preference file when quitting with Quit menu command. | |
| Rename Color Set... | To rename current color set (except any of color sets initially builted in), select this. | |
| Delete Color Set | To delete current color set (except any of color sets initially builted in), select this. | |
| Status View | This sub menu allows to show current status (number of generations/frames/seconds or number of cells of 'ALIVE'/become 'ALIVE' + become 'DEAD' state) on the screen. |