def evolve(node):
if node.depth==2:
return evolve node using GoL rules
else:
node1 = Create Auxiliary Node 1
node2 = Create Auxiliary Node 2
node3 = Create Auxiliary Node 3
node4 = Create Auxiliary Node 4
node5 = Create Auxiliary Node 5
node6 = Create Auxiliary Node 6
node7 = Create Auxiliary Node 7
node8 = Create Auxiliary Node 8
node9 = Create Auxiliary Node 9
node1Res = evolve(node1)
node2Res = evolve(node2)
node3Res = evolve(node3)
node4Res = evolve(node4)
node5Res = evolve(node5)
node6Res = evolve(node6)
node7Res = evolve(node7)
node8Res = evolve(node8)
node9Res = evolve(node9)
result = assembleCenterNode(node1Res, node2Res, node3Res, node4Res, node5Res, node6Res, node7Res, node8Res, node9Res)
return result