After studying some rosetta code, I managed to hack in some 1-dimensional cellular automata.
Here it is in three(!) cells, utilizing rule 90 to make some visually pleasing Sierpinksi Triangles.

It’s a little dense what is happening, so I’ll break down.
The program implicitly starts and runs at cell 1.
This is cell 1:
c0 10000000
c1 10000000
c2 00000100
c3 00000000
d0 00000000
d1 00000000
d2 00000001
d3 00000000
c0 tells us that this is a pattern cell
c1 tells us to write the output to wire 1
c2 tells us the size (32 in LE binary)
d0-3 is the pattern information. In this case, a single bit in the middle. Our initial state.
After cell 1 is finished performing the pattern, it goes on to cell 2:
c0 00010000
c1 10000000
c2 11111111
c3 01011010
d0 10000100
d1 00000000
d2 00000000
d3 00000000
c0 tells us that this is metapattern. A metapattern references another pattern in the collection of available cells, and dynamically applies up to 6 transformations to it. After it transforms the pattern, it treats it like a normal pattern cell.
c1 tells us which cell pattern to use. It is encoded in LE binary to use cell 1 (the previous cell).
The remaining 6 rows are used as command bytes to apply transformations. These commands are applied top-down.
c2 is the command to apply one CA state transition to the pattern. Typically transformations take up 1 row, but this one is greedy and takes up 2! The exception to the rule is why I made it look like one solid bar.
c3 acts as data to the CA procedure. It tells which rule to apply. In this case 90 (encoded in LE binary).
d0 is another byte command called “update”. It will copy over metapattern pattern data to the pattern it is referencing.
d1-3 are empty and don’t do anything.
This metapattern will output a 32-step sequence at the end of this, then go to cell 3, which looks like this:
c0 01000000
c1 00000000
c2 00000000
c3 00000000
d0 01000000
d1 00000000
d2 00000000
d3 00000000
c0 tells us that this is a jump statement.
bits in c1-3 are not engaged, so no additional caveats here.
rows d0-3 (aka the data word) are used to graphically show where to go. This VM is built to have 32 cells visualized on a 8x4 grid. In other words, this tells us to jump back to the metapattern in cell position 2.
This final goto statement creates an infinite loop, with the original pattern in cell 1 used to store the state of the previous iteration.