In Cellular, cells form a grid known as the Universe. Each cell can be alive or dead, and its state evolves across generations based on simple rules.
Cells can be grouped into communes, where population density is measured. This density is translated into a modulation signal that controls synthesizer parameters.
Measure the population density of digital life in a group of cells to generate a signal, then use that signal to modulate synthesizer parameters.
The video below demonstrates the core idea: a small lifeform known as a glider moves across a reduced field called the universe. As it occupies a cluster of cells known as a commune, it influences the signal that modulates a slider parameter.
The main module is built on a discrete cellular automaton model. The model defines a space of adjacent cells forming the Universe. Each cell can be alive, dead, immortal, or unable to be revived. The Universe is limited to a 16-by-8 grid with wrapped boundaries: the left edge connects to the right, and the top to the bottom. Each cell interacts with its eight surrounding cells, known as its neighborhood.
universe module interface
Before running the automaton, the initial state of the cells can be set manually or at random.
Cell state transitions are governed by a set of rules defined by the user. These rules apply uniformly to all cells. At each step, the automaton evaluates every cell and determines its next state based on its current state and the state of its neighborhood.
Rules control sliders
The New slider specifies the required number of populated neighboring cells for an unpopulated cell to become populated in the next generation.
Similarly, the Keep slider specifies the required number of neighboring populated cells for a populated cell to remain populated in the next generation.
In all other cases, the cell remains unpopulated.
Both sliders use dual scales: the outer scale indicates the rule combination index, while the inner scale shows the active conditions 0 through 9.
For example, consider John Conway’s Game of Life. In the Universe module, these rules correspond to a New value of 3 and Keep values of 2 and 3.
A single populated cell becomes unpopulated in the next generation because it has no neighbors and therefore does not satisfy the Keep condition.
First generation
Second generation
With two adjacent populated cells, each cell has exactly one neighbor. This is still not enough to satisfy the Keep condition, so both cells become unpopulated in the next generation.
First generation
Second generation
With three adjacent populated cells, the middle cell has two neighbors, which satisfies the Keep condition, so it remains populated in the next generation.
The cells directly above and below the middle cell each have three neighbors, which satisfies the New condition, so they become populated in the next generation.
The two cells at the ends of the original line have only one neighbor each, which does not satisfy the Keep condition, so they become unpopulated in the next generation.
First generation
Second generation
In the next generation, the pattern repeats: the new shape matches the original one, but rotated by 90 degrees. This forms a simple oscillator known as a blinker.
Third generation
Cell occupancy is measured within defined regions of the Universe. These regions are grouped into Communes.
A four-cell commune is shown as light dots
Each Commune either responds to the state of individual cells or interprets overall occupancy as a percentage.
0 of 4 cells occupied — signal 0%
1 of 4 cells occupied — signal 25%
2 of 4 cells occupied — signal 50%
3 of 4 cells occupied — signal 75%
4 of 4 cells occupied — signal 100%
To use a commune signal for parameter modulation, press Select under the Universe cells, tap the desired cell, and use the orange slider to assign it to a commune.
Commune selection slider
Set the mode and adjust the attack and release parameters for the selected commune. You can clone this configuration to other cells by choosing Clone under the Universe cells and tapping the target cells.
Next, find a slider that supports modulation and long-press it to open the modulation settings.
Filter frequency selected for modulation
When the inner rings of the slider indicator turn yellow, the modulation controls in the adjacent panel become active.
The first slider selects a previously configured commune as the modulation source. The second slider controls the modulation depth.
Modulation source and depth
As a result, the evolution of life in the Universe generates a dynamic control signal that can modulate parameters in other cellular modules.
If the video doesn’t cover everything you need, refer to the documentation. It includes step-by-step guides, interface explanations, and detailed descriptions of all features. You can also ask the AI assistant for quick answers.
Core functionality is free. Some features are available only to users who support the project through a subscription or a one-time purchase.
There are two main reasons for the subscription model.
First, Apple allows trial periods only through subscriptions. This makes subscriptions the only way to offer trials within Apple’s rules.
Second, we’re a small team working on Cellular in our free time. Subscriptions help support ongoing development and future projects.
Yes. A one-time purchase option is available. You can choose between a one-time purchase and a subscription.
I’d like to point out that subscriptions play a key role in supporting the ongoing development of Cellular.
If we reach a sustainable number of subscribers, I’ll be able to commit to regular development, including the following improvements:
✓ AUv3 support ✓ Customizable Universe rules (for example, 3/6/7 for New and 3/5 for Keep) – Auto-reset modes (note on, no note off, voice released, sequence looped) – Syncing generation rate to musical note values (not just Hz) – Output commune signals as MIDI CC – Audio track recording and export – Adjustable neighborhood size (currently fixed at 8) – VST plugin for easier DAW integration – Logarithmic envelope in addition to the current linear one – Using envelopes and LFOs alongside commune signals for modulation – Multiple envelope shapes – Multiple LFO types – Vertical drag in the oscillator waveform picker to smoothly blend shapes – Major UI improvements for Sampler mode – Granular synthesis options based on the sampler – Tempo slider accuracy modes – Additional saturation types, including bit reduction and hard clipping – Oscilloscope view
Yes. I run a Telegram channel to stay in touch with users. You can find the link in the website footer and share your ideas there.
This app wouldn’t be possible without my beloved wife Anna, who took care of everything from accounting to promotion. Huge thanks to my friend Pasha for helping test all the things I’ve come up with. And of course, special thanks to everyone who joined the beta test and shared feedback — your contribution is invaluable.