To understand what is Cellular Automata, I strongly recommend you to read wiki and the chapter of CA in Nature of Code.

Given that you've already know what CA is, there is a lot of variation possibilities from several aspects:

#### 1. Grid

Usually the grid of 2D CA is **square**, but as long as the grid can be regular, they all apply to CA algorithm, such as **Triangular, Hexagonal**.

#### 2. State

In classic CA there are **two states** of Alive or Dead. But it is also possible to have **multi-state** where more complicated rules can apply, resulting more complex and unpredictable outcome.

#### 3. Neighborhood

In classic 2D square grid, one cell can have 4 neighbors using von Neumann Neighborhood Thoery, or 8 neighbors using Moore Neighborhood Theory. When this comes to 3D, the neighbors are 8 or 26 respectively. Based on different neighborhood counts, different rules can apply to it.

#### 4.Rule

Rules can increase exponentially from 1D CA to 3D CA. So usually 2D and 3D CA adopt numbers of neighbors instead of exact state rule(for 3D CA one-to-one rule can reach 2^26 rules).

#### Demo

This is a research showing 3D CA application. Basically I adopted cubic grid, 2 states and Moore Neighborhood(26 neighbors).

The rule is : Survive : 13,14,16 to 26 | Birth: 17,18,19

Here’s another video showing the generation process.