Game of Life: Tribes

#Packing

#Purpose

The Packing section chooses how many bits are used to store each cell. Lower values reduce VRAM and recording/storage size. Higher values support more tribes and can make shader math simpler.

#Controls

Packing section

  • Bits/cell:
    Segmented control with 11, 22, 44, 88, 1616, and 3232-bit options.
  • Frame size:
    Read-only estimate for the grid using the pending packing value.
  • Bytes:
    Exact pending frame byte count.
  • Max recording size:
    Recording frame limit for the current device.
  • Max supported size:
    WebGPU buffer limit for the current device.
  • Apply:
    Commits the pending packing and rebuilds GPU resources. Disabled while running, downloading, unchanged, or over the allowed frame limit.
  • Restore:
    Resets the pending value back to the committed packing.

#Choosing A Value

A packing value must support the number of states in the ruleset, including dead. The maximum state count is max(2bitsPerCell,256)\max\left(2^\texttt{bitsPerCell},\,256\right):

Bits/cell States Cells per u32 word
11 22 3232
22 44 1616
44 1616 88
88 256256 44
1616 256256 22
3232 256256 11

As covered in the benchmark results, tighter packings are most useful when recording and to support larger grids, while wider packings are better suited to non-recording runs with small grids and to rulesets that need more tribes.

The app disables packing choices that cannot represent the current tribe count. If a preset or snapshot requires more states, the app chooses the smallest fitting format that also fits current buffer limits.

Game of Life: Tribes · Simulation v1.0.0 · Open source