Posts

Showing posts from August, 2020

An infinite set of things called Al

Image
I love that you can use generators to represent infinite lists. There is something about representing things that it feels like you shouldn’t be able to represent in a finite machine that excites me. Language has incredible representative power, so large that it is easy to create contradictory sentences such as the sentence. “This sentence is false” You can use language to talk about things you can’t imagine such as when talking about infinity. You can define it by saying: “The number that is bigger than any other number.” Or a more accurate description of the aleph-null infinity, (because there are different kinds of infinity!) “The size of the set of natural numbers” You can go further and say that there is this thing which is: “The thing you can’t represent using words” Which similarly to “This sentence is false” is contradictory. If the thing truly can’t be represented using words then the sentence “The things that can’t be represented using words” can’t rep...

Artful code

Image
One of the things I want to achieve through the blog is the ability to compose a small project in an evening. Rather than just have ideas that never get implemented into even the most basic of MVP, the blog would encourage that I move to build my ideas quickly. Moving back to javascript has helped with that as the setup required to be able to get something visual working on an HTML5 canvas is much smaller than the equivalent elsewhere. Javascript was the language I started learning when I first learnt to code. It was the easiest to run because every computer already had a browser and notepad.exe. One of the things I like to do is create something akin to computational art and that is what I would argue I have done in this week's post. Artificial intelligence has been a long time interest of mine and one element of that is the interaction of agents. In this post, I have created a system of creatures which live in a world inspired by agar.io . If you are not familiar with the game i...

Speeding up life

Image
 Exploring ideas for speeding up the computation of Conway's game of life. Conway's game of life is a zero player game devised by the late John Conway in 1970. It is the first widely publicised example of the emergence of lifelike "creatures" from simple laws. The game is played on an infinite grid, where each cell of the grid can either be alive or dead. The following rules then define how the game is played going forward: Any live cell with two or three live neighbours survives. Any dead cell with three live neighbours becomes a live cell. All other live cells die in the next generation. Similarly, all other dead cells stay dead. Following these simple laws and given some live cells to start, strange patterns emerge. Creatures seem to crawl across the grid, other objects oscillate in peculiar ways.  The natural implementation and indeed the one that is used in most implementations is a boolean array in which each element of the array represents a single s...