Toody Machine Logo

A Toody Machine is a software model of a sentient entity. It inhabits a 2D world generated by the host system. Its eyes are a 512 x 512 bitmap. Each pixel is 24 bits. It can hear/speak one ASCII character at a time. Its right hand can click on one pixel at a time. Its left hand can select one 24-bit color at a time. Its feet can walk one pixel at a time up, down, left, or right. Here is the Pascal pseudocode of the possible events:

GetPixelChange(var Rect: TRect);
   // Rect is the bounding rectangle of those pixels that have changed
GetPixel(Point: TPoint; var Color: TColor);   // Toody senses a pixel
SetClick(Point: TPoint);   // Toody has clicked on a pixel
SetColor(Color: TColor);   // Toody has selected a color
SetMove(Dir: TDir; var Valid: Boolean);
Toody has tried to move or pan one pixel; Valid is false 
if move operation was denied.
If Valid is true, the GetPixelChange event is triggered, 
and Rect is a one by 512 rectangle containing the 
newly revealed pixels at the edge of Toody's visual field.
GetChar(var Ch: Char);   // Toody heard a character 
SetChar(Ch: Char);   // Toody spoke a character 

My Toody Machine is just about the simplest digital sentient entity that you can (potentially) carry on an intelligent conversation with. Similarly, a Turing Machine is the simplest possible digital computer. A Turing Machine can only do 5 things: read a bit, write a bit, move its infinitely long one-dimensional array of bits one position to the left, move it one position to the right, and halt.

In order to simplify Toody's visual processing algorithms, all graphics in its 512 x 512 visual field are composed solely of the following picture elements: vertical, horizontal, or diagonal lines, circular arcs (in 45-degree slices), rectangles, triangles which are at the same time right-angled and isosceles, circular disks and 45-degree pie slices. Picture elements are allowed to overlap other picture elements.

I realize that the actual implementation of a Toody Machine is probably 10 or 20 years away, but by taking baby steps towards that far off goal, I hope to gain insights into how a natural Toody Machine (the human brain) works. Toody will be coded using Delphi/Windows, and will involve simulating neural networks.

Back to Top