CellularPoetry
For the 9th Prompt of Genuary2026 : Crazy Cellular Automata, CellularPoetry rules are coded in Python. Where poems are made from various cellular rule sets to make the images come to life and give restrictions to the poet.
Poem
Achieving Every Assumption covered in Aerial Areas, Calculating Creative endeavours endlessly
Futuristic Foresight fading away, consistency constantly evaporating, Pleasure Pausing,
Intermission Awaits
Fulfilling any hypothesis unhidden around airborne dreamscapes, Arriving and Pollinating Plots
Cell & Cellular Output for Poem 1
Cells
[1 1 1 1 0 0 0 0 0 1 1]
[0 0 1 1 1 0 1 0 0 1 1]
Cellular Automata Outputs
vowel vowel vowel consonant vowel vowel vowel consonant consonant vowel vowel
consonant consonant consonant vowel consonant consonant vowel consonant consonant vowel vowel
synonym synonym synonym antonym synonym synonym switch switch switch switch switch


Cell & Cellular Output for Poem 2
Seeing, Strolling, Swimming and Actions and Abbreviations may make no sense
Admiring all aspects profoundly with deliberate intentions, isolating and intertwining insights
Blinded, rushing, drowning plus efforts plus thoughts, freeing negating sparsely ignorance
Without Aspirations, Ambition, Emotions, Interactions, Internalizing, instructions,
Openness, Observing, Unity, Union
Emitting overdosing amounts of Thoughts with flowing concern, capturing the aspiring influences
With considerations mounting beyond connections, communication, explanations, freeing gazes,
Relatable Sequences?
Cells
[1 0 0 1 1 0 1 1 0 0 0]
[1 1 0 0 0 1 1 1 1 1 1]
[0 1 0 1 1 1 1 1 1 1 1]
[1 1 1 1 0 0 0 0 0 1 1]
Cellular Automata Outputs
consonant consonant consonant vowel vowel vowel vowel consonant consonant consonant consonant
vowel vowel vowel consonant consonant consonant vowel vowel vowel vowel vowel
antonym antonym antonym synonym synonym synonym switch antonym antonym antonym antonym
consonant vowel vowel vowel vowel vowel vowel vowel vowel vowel vowel
vowel vowel vowel vowel consonant consonant consonant consonant consonant vowel vowel
antonym switch switch switch synonym synonym synonym synonym synonym switch switch


More Images


Rule Sets
Follows the traditional Neighbourhood model asscoiated with Cellular Automata but with the addition of the second rule, CellularPoetry plays with the concept of what happens if a cell met their doppelganger that occupies the same spot as them.
0’s are Vowels and 1’s are Constants
'''
000 = 1
001 = 1
010 = 0
011 = 1
100 = 1
101 = 0
110 = 0
111 = 0
'''
'''
000 = 0
001 = 1
010 = 1
011 = 1
100 = 1
101 = 0
110 = 0
111 = 0
Rule 2 : For Synonyms , Antonyms & Switches
'''
00 = 1
01 = Synonym of word from 0
10 = Antonym of word from 1
11 = 0
'''
Python Code
import numpy as np
C = np.random.randint(low=0, high=2, size=(5, 11))
print(C)
def PoetryPrep(x):
x = x.tolist()
x = x + x[:2]
neighbours = []
for i in range(0, len(x)-1, 3):
neighbours.append(x[i:i+3])
neighbours.append( x[i+1:i+1+3])
neighbours.append(x[i+1:i+1+3])
neighbours.pop()
return neighbours
def AutomataPoetry1(cells):
AutomataVocab = []
vowels = [[0,0,0],[1,0,1],[1,1,0],[1,1,1]]
for i in range(0, len(cells)):
if (cells[i] in vowels):
AutomataVocab.append("vowel")
else:
AutomataVocab.append("consonant")
print(*AutomataVocab)
return AutomataVocab
def AutomataPoetry2(cells):
AutomataVocab = []
vowels = [[0,1,0],[1,0,0],[1,1,0],[1,1,1]]
for i in range(0, len(cells)):
if (cells[i] in vowels):
AutomataVocab.append("vowel")
else:
AutomataVocab.append("consonant")
print(*AutomataVocab)
return AutomataVocab
def FinalAutomataCheck(poem1,poem2):
AutomataFinale = []
for i in range(0,len(poem1)):
if( poem1[i] == poem2[i]):
AutomataFinale.append("switch")
elif( poem1[i] == "vowel" and poem2[i] == "consonant"):
AutomataFinale.append("synonym")
else:
AutomataFinale.append("antonym")
print(*AutomataFinale)
FinalAutomataCheck(AutomataPoetry1(PoetryPrep(C[0])),AutomataPoetry2(PoetryPrep(C[1])))
Data Visualization Code
def PoetryPrep(x):
x = x + x[:2]
neighbours = []
for i in range(0, len(x)-1, 3):
neighbours.append(x[i:i+3])
neighbours.append( x[i+1:i+1+3])
neighbours.append(x[i+1:i+1+3])
neighbours.pop()
return neighbours
def AutomataPoetry1(cells):
AutomataVocab = []
vowels = [[0,0,0],[1,0,1],[1,1,0],[1,1,1]]
for i in range(0, len(cells)):
if (cells[i] in vowels):
AutomataVocab.append(0)
else:
AutomataVocab.append(1)
print(AutomataVocab)
return AutomataVocab
def AutomataPoetry2(cells):
AutomataVocab = []
vowels = [[0,1,0],[1,0,0],[1,1,0],[1,1,1]]
for i in range(0, len(cells)):
if (cells[i] in vowels):
AutomataVocab.append(0)
else:
AutomataVocab.append(1)
print(AutomataVocab)
return AutomataVocab
def FinalAutomataCheck(poem1,poem2):
AutomataFinale = []
for i in range(0,len(poem1)):
if( poem1[i] == poem2[i]):
AutomataFinale.append(10)
elif( poem1[i] == 0 and poem2[i] == 1):
AutomataFinale.append(2)
else:
AutomataFinale.append(-1)
return AutomataFinale
FinalAutomataCheck(AutomataPoetry1(PoetryPrep(d[0])),AutomataPoetry2(PoetryPrep(d[1])))
FinalAutomataCheck(AutomataPoetry1(PoetryPrep(d[2])),AutomataPoetry2(PoetryPrep(d[3])))
FinalAutomataCheck(AutomataPoetry1(PoetryPrep(d[4])),AutomataPoetry2(PoetryPrep(d[0])))
plt.imshow(newMap, cmap='hot', interpolation='nearest')
plt.show()
plt.imshow(newMap, cmap='Blues')
plt.show()
plt.imshow(newMap2, cmap='Oranges', interpolation='nearest')
plt.show()
plt.imshow(newMap2, cmap='bwr_r')
plt.show()