Game of Life page element and built-in page

A new page element runs Conway's Game of Life in an area (the whole display
by default), one per page. Start: random dots, one pattern, or the icons
whose names start with a text in turn or in random order. Edges: wrap
around, dead, or a hidden margin where gliders fly out of view (leftovers
that stay put in the margin are cleared, so a glider gun runs cleanly).
It restarts when the board is still or repeats within 16 generations
and/or after a number of generations, after a hold time (an empty board
at once).

logic/life holds the board and timing (tested), display/life_player runs
the board of the shown page, ticked before each frame; frames are paced
like scrolling text. The element reuses existing fields, so the page
format stays the same. The Icons tab has a library of 17 LifeWiki
patterns (checked with a simulation), and the built-in page "Game of
Life" shuffles through the life_ icons. About 12 KB flash, 8 KB RAM.

Version 2.17.0, tested on the display over OTA.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mangavalkandClaude Opus 5.5 committed 2026-10-20 17:52:25 +02:00
1 parent 948087077d
commit a91d2550d7
29 files changed
+1402 -31

No files matched your search

+12 -2
View File
@@ -25,8 +25,9 @@ Bitmaps that pages or rules use are in their own subsection.
Dynamic pages: a background per time of day, a bitmap or an [icon](#icons) (e.g. Pikachu
from 00:00, yawning Pikachu from 17:00) with up to 16 elements on top. The preview is drawn by the ESP32, so it
is exactly what the display shows; drag the elements on it, or select one and use the
arrow keys. The Clock page (Pikachu, the default) is a normal page that can be changed;
its Reset button brings back the original. See the [pictures of the pages](pages.md).
arrow keys. The Clock page (Pikachu, the default) and the Game of Life page are normal
pages that can be changed; their Reset button brings back the original. See the
[pictures of the pages](pages.md).
| Element | Options |
|---------|---------|
@@ -38,6 +39,7 @@ its Reset button brings back the original. See the [pictures of the pages](pages
| Stopwatch | `4:05`, `0:04`, `0:04:05`; started in the [Stopwatch](#stopwatch) tab or Home Assistant |
| Image | An icon (or a bitmap) at a position, fixed or chosen by a Home Assistant state (`weer ` + `cloudy` = the icon `weer cloudy`, `weer default` when there is none) |
| Progress bar | Filled from the left by a Home Assistant number: value x multiplier / "full at" (a percentage: full at 100). Width, height, with or without a frame. Optionally the percentage on top (e.g. 42%, rounded down, in the chosen font): its dots invert the bar, so it stays readable on the filled and the empty part; left out when it doesn't fit inside (Small needs a height of 7 with a frame) |
| Game of Life | [Conway's Game of Life](https://conwaylife.com/wiki/Conway%27s_Game_of_Life) in an area (the whole display by default), one per page. Start: random dots (density %), one pattern, or the patterns whose names start with a text (e.g. `life_`) in turn or in random order, in the middle or at a random place. Edges: wrap around, dead, or a hidden margin (the world is 16 dots larger on every side, so gliders fly out of view and disappear). Speed in generations per second. It restarts when it stops changing (still, or repeating within 16 generations) and/or after a number of generations, after running on for a few seconds (an empty board at once) |
Every element has a position, alignment, font and overlay (on top, box that clears the
dots behind it, inverted). Entity ids can contain `{plex_user}`, replaced by the Plex user
@@ -98,6 +100,14 @@ size), show it on the display. "Make bitmap" turns an icon into a full screen bi
firmware: they are stored as icons at boot and can be edited, the firmware keeps the
originals.
**Game of Life patterns**: 17 famous patterns from [LifeWiki](https://conwaylife.com/wiki/)
(glider, the three spaceships, a copperhead turned to fly sideways, the Gosper glider gun,
pulsar, pentadecathlon, queen bee shuttle, figure eight, Kok's galaxy, beacon and the
methuselahs R-pentomino, acorn, diehard, thunderbird and pi-heptomino). Add adds one as
an icon named `life_...`, Add all adds the missing ones. A Game of Life element starts with
one of them, or goes through all icons whose names start with `life_`, also the ones you
draw yourself. The patterns live in the web page (RLE text), not in the firmware.
Firmware 2.10.0 made icons of all uploaded bitmaps that only pages used (backgrounds and
images, not shown by the schedule, a rule, the chosen page or the off image), once, after
the new firmware was marked as good. They keep their names and land on the same dots, so