Life on a Donut

About Life on a Donut

Life on a Donut is a "solitaire game" which simulates two different types of cellular automata:

Each of these games is iterated on a 2-dimensional space that is rendered on a 3-dimensional torus (a donut). Using high performance GPUs now available on smartphones these games run at up to 60 frames per second while allowing you to rotate and view the donut from any perspective in real time.

Why a Donut?

Normally, cellular automata are played on an infinite grid. To be practical on a computer the grid is made finite. Because the boundaries of the grid have incomplete neighbourhoods, it causes a problem in that the same rules no longer apply.

A donut is a space that has no boundaries so you don't have to create artificial rules at the boundaries. It makes for a more "pure" mathematical game played on a finite grid.


Game of Life

The Game of Life follows the rules of Conway's Game of Life with this additional enhancement. There are up to three species of cells, each represented by a different colour. The decision on which colour to use for a "birth" is simply the majority colour of the neighbourhood.

Billiard Ball Machine

This game is based on a reversible cellular rule called the Billiard Ball Machine with a slight modification. The modified rule allows propagation of "negative" cells (holes) to produce more interesting patterns. Like the Game of Life, this version also supports 3 species of cells.


Using the Controls

Play/Pause

Iterates the current space or pauses the play.

Randomize

Generates a random pattern. The kind of pattern generated depends on whether you are in Game of Life or Billiard Ball Machine.

  • In the Game of Life, random either creates a "primordial soup" of cells, or randomly selects a handful of patterns from the colony library.

  • In Billiard Ball Machine, random creates a set of starting rectangles that are designed to maintain symmetry. The goal is to generate pleasing patterns.

Next Palette

Selects the next colour palette to apply to the donut.

More (or Less)

Expands the current menu or collapses the current menu if it is already expanded.

Select "Game of Life"

Switches to the "Game of Life" mode. The underlying pattern remains untouched even if created in Billiard Ball Machine mode.

Select "Billiard Ball Machine"

Switches to "Billiard Ball Machine" mode. The underlying pattern remains untouched even if created in Game of Life mode.

Replay

Restarts the current game from the starting pattern. The starting pattern would be the last time a randomize operation of an edit operation was used.

Reverse

Switches the Billiard Ball Machine to run in the opposite direction (forward or backward) from what it is currently iterating.

Next Speed

Switch to the next iteration speed. When on the last speed, it starts back at the beginning. The following speeds are supported:

  • 1 frame per iteration (top speed: 60 iterations per second)

  • 2 frames per iteration

  • 4 frames per iteration

  • 8 frames per iteration

  • 16 frames per iteration

  • 32 frames per iteration

  • 64 frames per iteration (slightly more that 1 second per iteration)

Edit Pattern

Allows Game of Life colonies to be placed on the donut. The following strategy to place patterns is recommended:

  • Rotate the donut to a spot facing you where you want the colony to appear

  • Cycle through the pre-defined colonies using the "previous/next" controls until you see one you want

  • Apply any transformation (species, rotation, flip) you want to the colony

  • Add the colony using the "add" control

Note: there is a limitation. Currently we only support adding a colony at one height on the donut.

Clear Pattern

This edit control clears the donut of cells (except for the currently selected colony)

Previous/Next

This edit control moves through the pre-defined library of colonies.

Flip Colony

Flip the colony pattern as if in a mirror

Rotate Colony

This edit control rotates the current colony by 90 degrees

Change Species

This edit control selects the next species for the current colony.

Gallery

Known Issues

  • Stability detection could be better. I could increase the max period of short oscillators that can be detected.

  • Sometimes when you use gesture controls to change the view of the donut, the entire point of view goes out of whack. I don't have a good way of resetting the view yet. So the only workaround I know of is to quit the app and restart.

  • Here's what I do know about controlling the 3d view:

    • Single finger "pan" will tilt and orient the donut

    • Pinch gesture will zoom in/out

    • Two finger "pan" will translate donut

    • Three finger pan up will move back/away from the scene

    • Three finger pan down will move closer to the scene

Support and Contact Information

Life on a Donut was created by Larry Hamid.
For questions and support please use this email address: lifeonadonut@gmail.com

Privacy Policy for Life on a Donut

This privacy policy governs your use of the software application Life on a Donut (“Application”) for mobile devices that was created by Laurence Hamid. The Application is for amusement and education. It allows you to run Conway's Game of Life, or a Billiard Ball cellular automata on the surface of a torus (donut). The automata is animated and displayed in real time, and allows you to view the donut from any point of view.

What information does the Application obtain and how is it used?

User Provided Information

There is no registration required and no user information needs to be provided to use the Application.

Automatically Collected Information

The Application does not collect any information about you or your mobile device.

Does the Application collect precise real time location information of the device?

This Application does not collect precise information about the location of your mobile device.

Do third parties see and/or have access to information obtained by the Application?

No data is collected or shared with any third parties by the Application.

What are my opt-out rights?

You are free to uninstall the Application at any time. You may use the standard uninstall processes as may be available as part of your mobile device or via the mobile application marketplace or network.

Data Retention Policy, Managing Your Information

No data about you is collected, retained, or managed by the Application or its creator.

Security

No data about you is collected, retained, or managed by the Application or its creator.

Changes

This Privacy Policy may be updated from time to time for any reason. You are advised to consult this Privacy Policy regularly for any changes, as continued use is deemed approval of all changes.

Your Consent

By using the Application, you are consenting to our processing of your information as set forth in this Privacy Policy now and as amended by us.

Contact us

If you have any questions regarding privacy while using the Application, or have questions about our practices, please contact us via email at lifeonadonut@gmail.com.