Skip to main content
more results
Source Link

Then we randomly select two pixels and swap them. If this does not increase the similarity of the pixels to their neighbors, we swap back and try again. We repeat this process over and over again.


Large Results (512x512)

Using the kernels above with a larger image dimension creates the same local patterns, spaning a larger total area. A 512x512 image takes between 1 and 2 million generations to stabilize.

enter image description here enter image description here enter image description here


OK, now let's get serious and create larger, less local patterns with a 15x15 radial kernel:

0 0 0 0 0 1 1 1 1 1 0 0 0 0 0
0 0 0 1 1 2 2 2 2 2 1 1 0 0 0
0 0 1 2 2 3 3 3 3 3 2 2 1 0 0
0 1 2 2 3 4 4 4 4 4 3 2 2 1 0
0 1 2 3 4 4 5 5 5 4 4 3 2 1 0
1 2 3 4 4 5 6 6 6 5 4 4 3 2 1
1 2 3 4 5 6 7 7 7 6 5 4 3 2 1
1 2 3 4 5 6 7 X 7 6 5 4 3 2 1
1 2 3 4 5 6 7 7 7 6 5 4 3 2 1
1 2 3 4 4 5 6 6 6 5 4 4 3 2 1
0 1 2 3 4 4 5 5 5 4 4 3 2 1 0
0 1 2 2 3 4 4 4 4 4 3 2 2 1 0
0 0 1 2 2 3 3 3 3 3 2 2 1 0 0
0 0 0 1 1 2 2 2 2 2 1 1 0 0 0
0 0 0 0 0 1 1 1 1 1 0 0 0 0 0

This drastically increases the computation time per generation. 1.71 million generations and 20 hours later:

enter image description here

Then we randomly select two pixels and swap them. If this does not increase the similarity of the pixels to their neighbors, we try again.

Then we randomly select two pixels and swap them. If this does not increase the similarity of the pixels to their neighbors, we swap back and try again. We repeat this process over and over again.


Large Results (512x512)

Using the kernels above with a larger image dimension creates the same local patterns, spaning a larger total area. A 512x512 image takes between 1 and 2 million generations to stabilize.

enter image description here enter image description here enter image description here


OK, now let's get serious and create larger, less local patterns with a 15x15 radial kernel:

0 0 0 0 0 1 1 1 1 1 0 0 0 0 0
0 0 0 1 1 2 2 2 2 2 1 1 0 0 0
0 0 1 2 2 3 3 3 3 3 2 2 1 0 0
0 1 2 2 3 4 4 4 4 4 3 2 2 1 0
0 1 2 3 4 4 5 5 5 4 4 3 2 1 0
1 2 3 4 4 5 6 6 6 5 4 4 3 2 1
1 2 3 4 5 6 7 7 7 6 5 4 3 2 1
1 2 3 4 5 6 7 X 7 6 5 4 3 2 1
1 2 3 4 5 6 7 7 7 6 5 4 3 2 1
1 2 3 4 4 5 6 6 6 5 4 4 3 2 1
0 1 2 3 4 4 5 5 5 4 4 3 2 1 0
0 1 2 2 3 4 4 4 4 4 3 2 2 1 0
0 0 1 2 2 3 3 3 3 3 2 2 1 0 0
0 0 0 1 1 2 2 2 2 2 1 1 0 0 0
0 0 0 0 0 1 1 1 1 1 0 0 0 0 0

This drastically increases the computation time per generation. 1.71 million generations and 20 hours later:

enter image description here

clarifications and details
Source Link

Using different definitions for neighborhood, we can influence thethese patterns that emerge and whether they are stable or not. The Kernel is a matrix similar to the ones used for filters in image processing. It specifies the weights of each neighbor used for the RGB delta calculation.

0 1 0
1 0X 1
0 1 0
0 0 1 0 0
0 2 3 2 0
1 3 0X 3 1
0 2 3 2 0
0 0 1 0 0
3 0 0 0 3
0 1 0 1 0
0 0 0X 0 0
0 1 0 1 0
3 0 0 0 3
0 0 1 0 0 0 0
0 1 2 1 0 0 0
1 2 3 0X 1 0 0
0 1 2 0 0 0 0
0 0 1 0 0 0 0

This kernel is interesting because due to its asymmetry the patterns are not stable and the whole image moves to the right as the generations go by.

Using different definitions for neighborhood, we can influence the patterns that emerge and whether they are stable or not. The Kernel is a matrix similar to the ones used for filters in image processing. It specifies the weights of each neighbor used for the RGB delta calculation.

0 1 0
1 0 1
0 1 0
0 0 1 0 0
0 2 3 2 0
1 3 0 3 1
0 2 3 2 0
0 0 1 0 0
3 0 0 0 3
0 1 0 1 0
0 0 0 0 0
0 1 0 1 0
3 0 0 0 3
0 0 1 0 0 0 0
0 1 2 1 0 0 0
1 2 3 0 1 0 0
0 1 2 0 0 0 0
0 0 1 0 0 0 0

Using different definitions for neighborhood, we can influence these patterns and whether they are stable or not. The Kernel is a matrix similar to the ones used for filters in image processing. It specifies the weights of each neighbor used for the RGB delta calculation.

0 1 0
1 X 1
0 1 0
0 0 1 0 0
0 2 3 2 0
1 3 X 3 1
0 2 3 2 0
0 0 1 0 0
3 0 0 0 3
0 1 0 1 0
0 0 X 0 0
0 1 0 1 0
3 0 0 0 3
0 0 1 0 0 0 0
0 1 2 1 0 0 0
1 2 3 X 1 0 0
0 1 2 0 0 0 0
0 0 1 0 0 0 0

This kernel is interesting because due to its asymmetry the patterns are not stable and the whole image moves to the right as the generations go by.

videos added
Source Link
0 1 01 0 10 1 0185000Here are some of the results I created. The videos show the iterative process(1 frame == 1000
:), but sadly the quality is not the best(vimeo, YouTube etc. do not properly support such small dimensions). I may later try to create videos of better quality.
0 1 0
1 0 1
0 1 0

185000 generations:

enter image description here Video (00:06)

enter image description here Video (00:07)

enter image description here Video (00:07)

enter image description here

More details and videos soon to follow Video (01:10)

0 1 01 0 10 1 0185000
:

enter image description here

enter image description here

enter image description here

enter image description here

More details and videos soon to follow

Here are some of the results I created. The videos show the iterative process(1 frame == 1000
), but sadly the quality is not the best(vimeo, YouTube etc. do not properly support such small dimensions). I may later try to create videos of better quality.
0 1 0
1 0 1
0 1 0

185000 generations:

enter image description here Video (00:06)

enter image description here Video (00:07)

enter image description here Video (00:07)

enter image description here Video (01:10)

more details regarding kernels
Source Link
Loading
Source Link
Loading