A picture where pixels function as a real computer. These images were generated by a software called, "Circuit Artist". It is a cellular automaton where every pixel in the image is either a conductor, a non-conductor, or a NAND-Gate. It shows how all of computation can be reduced to a function of boolean logic gates, and the NAND-Gate is the only function you need to do all computations. The image itself becomes a simulation of a computer that can perform real computations. You can simulate a whole computer entirely in your GPU using a simple convolution function that runs the cellular automaton.
Devices for computing can take many shapes and forms, from the humble abacus to the modern System-on-Chip (SoC). They can built of many things: electrical currents in copper wires, water flowing through hollow glass fibers, marbles rolling along tracks, even rows dominos. From a mathematical perspective, abstract computers can take the form of Turing machines, Beta-Reduction machines for Lambda Calculus expressions, and Von Neumann and Berkeley architecture machines. There are also "analog" computers, where you physically construct something that such that the arrangement of parts is somehow analogous to the answer you are trying to compute.
The computers in your smartphone, laptop, or other common household devices, are System-on-Chips, which implement a VonNeumann architecture computer in the physical electrical circuits. I will call non-SoC-VonNeumann computers "alternative computers." And is one such class of "alternative computer," the cellular automata, with which I am most fascinated. Probably the most famous of these is "Conway's Game of Life," but there a huge variety of all different kinds of cellular automata.
Boolean Logic Circuits
Modern electronic computers encode information as binary digits, and boolean logic circuits can perform computations on binary digits. To keep things simple, I will focus on just two computations: addition and multiplication.
Addition of two input bits is performed by a half-adder circuit with it's carry bit (to carry the one to the next column) connected to a neighboring full adder circuit. By placing any number of these adder circuits next to each other, you can perform addition numbers that are as many digits long as you have adders. Modern computers typically provision 64 digits for all integer arithmetic and logic operations.
A full-adder circuit shown as a network of boolean logic gates. Adds three numbers: A, B, and the digit Cin carried from the previous neighboring column, produces an output number S and a carry Cout to be connected to the next neighboring column.
A multiplier circuit is a grid of adder circuits, arranged in such a way as to shift and add one number many times in a row. Since multiplying two numbers can at most double the number of digits you need, a multiplier with a 64-digit output usually only works on the lowest 32 digits of each input.
A unit multiplier circuit shown as a network of boolean logic gates. Two 2-digit numbers A and B are multiplied to produce a single 4-digit number C.