App-GUI-GoLP

App::GUI::GoLP - A GUI for viewing and editing Life-like cellular automata, in Perl/Prima

Version 1.2

SYNOPSIS

    golp [<filename>]

DESCRIPTION

This program will load and run Life-like cellular automata from .rle or .cells files. A good source for files is https://conwaylife.com/wiki/Main_Page. It uses Game::Life::Faster for the engine and Prima for the GUI. 

Menus

File

The New option allows the user to create a new board. Choose the width and height of the board and whether the initial cell status will be all 'dead', all 'live' or chosen at random according to a specified percentage chance. Use the Rules submenu in the Options menu to change the birth/survival rules used by the simulation.

The Open option provides a dialog box allowing the user to select a .rle or .cells format file to be loaded. 

The Save option will save the current board in .rle or .cells format.

The Exit option exits the program.

Options

Play/Pause starts and pauses the simulation. This can also be done from the space bar.

Grid toggles the cell grid on and off.

Autogrow toggles the 'autogrow' on and off. When activated, the size of the board will be enlarged if there are live cells close to the edge of the board.

Status line toggles the status text which can be displayed along the bottom of the main window. This gives some information as to the current state of the simulation.

Snapshot board will create a .png image file of the board in the current working directory.

Loop delay presents a list of presets which affects the speed of the simulation. 

Rules allows the user to select from a preset list of birth/survival rules, or use the Custom rule dialog to specify one.

Zoom opens the zoom dialog.

Live cell color allows the user to select the color of a 'live' cell.

Dead cell color allows the user to select the color of a 'dead' cell.

Grid color allows the user to select the color of the grid.

Edit mode can be used to switch in and out of 'edit mode'. When in edit mode clicking the left mouse button on the board will toggle the state of the cell under the cursor (indicated by a highlighted cell). Entering edit mode pauses the simulation.

About

Provides a small 'about' dialog.

Mouse interaction

The mouse wheel can be used to adjust the zoom setting (otherwise use the menu option). If the zoom is such that the board is clipped, the user can click and drag within the window to move the viewed section of the board. When not in edit mode, this can be done with both left and right mouse buttons, but when in edit mode the left mouse button will edit the board and the right mouse button can be used to click and drag to move the board.

Keyboard commands

Pressing the space bar will play and pause the simulation.

When paused, the ']' key will step the simulation.

F1 enters 'Edit Mode'.

F5 takes a screenshot of the board.

SEE ALSO

Prima

Game::Life::Faster

INSTALLATION

To install this module, run the following commands:

	perl Makefile.PL
	make
	make test
	make install

SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the
perldoc command.

    perldoc App::GUI::GoLP

You can also look for information at:

    RT, CPAN's request tracker (report bugs here)
        https://rt.cpan.org/NoAuth/Bugs.html?Dist=App-GUI-GoLP

    CPAN Ratings
        https://cpanratings.perl.org/d/App-GUI-GoLP

    Search CPAN
        https://metacpan.org/release/App-GUI-GoLP


LICENSE AND COPYRIGHT

This software is Copyright (c) 2025 by Matt Johnson.

This is free software, licensed under:

  The GNU General Public License, Version 3, June 2007

