Skip to content

RyanJK5/GOLDE

Repository files navigation

GOLDE

Game of Life Designer and Engine (GOLDE)

C++23 CMake License: MIT Platform: Windows | Linux | macOS

Build Status

Overview

GOLDE is a high-performance Conway's Game of Life simulator with an intuitive GUI and an implementation of HashLife for jumping billions of generations instantly.

GOLDE 1.0.0 is now here! Check it out under Releases!

Also check out this article I just published about GOLDE's HashLife engine!

Features

  • Interactive GUI: Full-featured interface with intuitive controls
  • Simulation Control: Play, pause, step, and adjust speed in real-time
  • Hyper Speed: Jump any number of generations into the future using HashLife
  • Customizable Rules: Experiment with outer-totalistic rules and toroidal topologies
  • Pattern Editor: Create and edit patterns with all the quality of life features of a paint program
  • Customizable Shortcuts: Edit keyboard shortcuts in real-time through shortcuts.yml
  • Pattern Library: Pre-loaded classic patterns from Golly
  • Multi-threaded: Separation of concerns for maximum responsiveness
  • Cross-platform: Windows, Linux, and macOS support
  • Production Quality: Comprehensive test suite with GTest

Quick Start

For general use, download the latest version of GOLDE from the Releases tab.

If you would like to build from source, follow the instructions below.

Prerequisites

  • C++23 compiler (MSVC, Clang, or GCC)
  • CMake 3.29+
  • Ninja (recommended) or other CMake-compatible build system
  • OpenGL 3.3+

Build, Run, Test, and Package

# Configure (Ninja single-config)
cmake -B build -G Ninja -D CMAKE_BUILD_TYPE=Release

# Build
cmake --build build

# Run tests
ctest --test-dir build --output-on-failure

# Launch application (Linux)
./build/GOLExecutable/bin/GOLDE

# Create installers (.zip, .msi, .dmg, etc.)
cpack -B build

Note that on Windows, the produced binary will also have a .exe extension (GOLDE.exe), and on macOS, the executable can be opened by running:

open ./build/GOLExecutable/GOLDE.app

For multi-config generators (Visual Studio, Xcode):

cmake -B build -G "Visual Studio 18 2026"
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure
./build/GOLExecutable/Release/bin/GOLDE.exe
cpack -B build -C Release

Usage Guide

Launching the Application

Start GOLDE and you'll be greeted with an interactive grid and control panel.

Controls

  • Draw cells to the screen by dragging the cursor
  • Select regions of the grid by holding shift and dragging.
  • Edit the selection by pressing copy, cut, rotate, flip, or any other command visible in the sidebar.
  • Shortcuts can be found by hovering over any button, and can be customized by editing shortcuts.yml.
  • Open patterns from the built-in library by selecting a preset from the bottom window.
  • Start the simulation, and freely pause, restart, or stop your simulation.
  • Step billions of generations by inputting any value into the "Step Count" field.
  • Save and Load your universe for future use.
  • Customize your window setup using ImGUI's docking features

Gallery

A simple glider gun running for over 10^1000 generations using HashLife.

A turing machine in GOLDE.

A demonstration of basic GOLDE editing features.

Game of Life simulating itself in GOLDE.

What's Next?

GOLDE will continue receiving updates and is moving towards the goal of supporting modular extensions to the editor. In order of priority, the next major features that GOLDE is targeting are:

  1. Support for multi-state rules
  2. Support for Python and Lua scripting
  3. Robust extension support for adding rules, algorithms, topologies, and data structures (both in C++ and Lua)
  4. Support for making additions and modifications to the UI through extensions, such as additional widgets

License

This project is licensed under the terms of the MIT license.

About

High-performance designer and editor for cellular automata powered by modern C++.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors