Skip to main content

Command Palette

Search for a command to run...

Genuary2026_CrazyAutomata

Poetry, Cells, Neighbors & Universes

Updated
4 min read
Genuary2026_CrazyAutomata

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

#My Rule ??
'''
000 = 1
001 = 1
010 = 0
011 = 1
100 = 1
101 = 0
110 = 0
111 = 0
'''

#Rule 30
'''
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):
    #firstline = [1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0]

    x = x.tolist() #turs numpyarrat to list

    x = x + x[:2] #includes first 2 elements to wrap the list for the celluar automata rules


    neighbours = []

    for i in range(0, len(x)-1, 3):

    #range from the index i , with every 3 elements, the 3 different iterations assures that all neighbours get listed
        neighbours.append(x[i:i+3])
        neighbours.append( x[i+1:i+1+3])
        neighbours.append(x[i+1:i+1+3])


    neighbours.pop() #pop the last element

    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)): #for every element

        if (cells[i] in vowels):
            AutomataVocab.append("vowel")
            #print(" vowel ")
        else:
            AutomataVocab.append("consonant")
            #print(" 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)): #for every element

        if (cells[i] in vowels):
            AutomataVocab.append("vowel")
            #print(" vowel ")
        else:
            AutomataVocab.append("consonant")
            #print(" 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)

    #return AutomataFinale


FinalAutomataCheck(AutomataPoetry1(PoetryPrep(C[0])),AutomataPoetry2(PoetryPrep(C[1])))

Data Visualization Code

#NumberCheck

def PoetryPrep(x):


    #x = x.tolist() #turs numpyarrat to list

    x = x + x[:2] #includes first 2 elements to wrap the list for the celluar automata rules


    neighbours = []

    for i in range(0, len(x)-1, 3):

    #range from the index i , with every 3 elements, the 3 different iterations assures that all neighbours get listed
        neighbours.append(x[i:i+3])
        neighbours.append( x[i+1:i+1+3])
        neighbours.append(x[i+1:i+1+3])


    neighbours.pop() #pop the last element

    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)): #for every element

        if (cells[i] in vowels):
            AutomataVocab.append(0)
            #print(" vowel ")
        else:
            AutomataVocab.append(1)
            #print(" 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)): #for every element

        if (cells[i] in vowels):
            AutomataVocab.append(0)
            #print(" vowel ")
        else:
            AutomataVocab.append(1)
            #print(" consonant ")

    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)

    #print(*AutomataFinale)

    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])))

#Poem 1

plt.imshow(newMap, cmap='hot', interpolation='nearest')
plt.show()

plt.imshow(newMap, cmap='Blues')
plt.show()


#Poem 2
plt.imshow(newMap2, cmap='Oranges', interpolation='nearest')
plt.show()

plt.imshow(newMap2, cmap='bwr_r')
plt.show()

Genuary2026

Part 28 of 48

Explorations during Genuary 2026

Up next

Genuary2026_Bauhaus

Bauhaus Inspirations