I started thinking about what creativity is made out of. Take a look at my thoughts;.
https://thinkinghat1.wordpress.com/2023/05/04/the-types-of-creativity/
Once, some time ago, I taught a small class of gifted kids at MIT about water clocks. I had a lot of fun doing it, and it was a good excuse for me to develop my ideas about how to build a clock that is similar to a digital one, but using water as the main source of "electricity". If anyone out there wants to actually BUILD this thing, PLEASE let me know! Also if you have a different idea for a design, I am always interested.
I have been toying with the ideas of self-organization, genetic algorithms, artificial intelligence and so forth for a while. One simple thing that has fascinated me is the idea that an intelligent robot could teach itself how to move and perform useful tasks.
So I designed a simple computer experiment. I wrote code for a robot that has certain movements that he can do. Then, I made a sort of blueprint of what action I want him to perform. But I didn't specify it from the perspective of what movements he needs, rather, what outcome I wanted to see. In my case, I wanted to robot to draw a pattern, so I drew a template of that pattern. But I didn't care which joints within the robot moved and by how much. To my delight, the concept works well.
It is set up such that you can teach it a series of steps, and then you can have it draw those steps, even though it needs to learn how to do this. Note: I think you need psychtoolbox to run it.
Extending the ideas from the 2D robot above, I designed a 3D robot that also use a similar learning algorithm to select proper joint positions. The purpose here is to demonstrate that an arbitrarily designed robot does not require detailed programming to achieve a specific output movement sequence - rather an algorithm simply needs to make sure that the sequence is done.
In the first video, Zoomer will show what happens when I ask him to a) look at what he is drawing and simultaneously b) draw a circle. VIDEO LINK - Zoomer.
In the second video, a similar robot will jump up and down (for demonstration of 3D drawing purposes mainly, but the same robot can use the same basic learning algorithms even though his design is different) VIDEO LINK - BEAN.
Matlab source code for both robots is here.
This was a cool little experiment I did for one of my PhD courses. I asked a bunch of people to tell the difference between a computer generated song, and a human composed song. In both cases, a computer played the music. Participants were asked to decide if it was made by AI or human. You can listen to the songs here. The final report is here. Full project with source code here.
Lie back and close your eyes. You are in a secluded beach, with no phones, no distractions, no stress. The only sound you hear is the gentle roll of the waves from the ocean.
This 1 hour audio CD will take you away from the pressure of life, and help you reclaim yourself. Using advanced technology, the sounds engage your hearing pathways and rapidly bring about relaxation. Although it sounds much like being at the ocean, the sounds are actually scientifically designed to include a broad spectrum of frequencies. Using such signals is a simple yet effective way to activate the many neural circuits your brain uses for sound processing. Because the waves are slow and somewhat rhythmic, the CD is optimal for helping to increase alpha rhythms in the brain - shown to be associated with relaxation.
This CD is perfect for the following uses:
- Helping to get to sleep
- Taking a relaxing break
- Soothing a young infant to sleep
1 hour CD file (m4v format) - you may need VLC player if you don't have software to open this
HOW IT WAS DONE
The principles here are pretty simple. I use Guassian white noise as a base - known to activate most of the cochlear pathways that are tunes to distinct frequencies. Then I modulate the amplitude of the white noise up and down, using some simple functions to simulate waves rising and falling. There is always a low level background of white noise - like at the ocean. I vary the parameters of the "wave" randomly each time one is generated, so there should not be any sense of repetitiveness. To save space I converted the file to m4v format.
Note: the sound file is entirely computer generated. If you actually like this audiofile, please let me know!
For a long time I was into cryptography, that is, making and breaking codes.
I present an extremely simple matlab code for encoding and decoding files. If
you want to keep files secret from someone, use something like this. Obviously
if you want REAL security, this is a "weak" encryption scheme. Use a good
public key encryption scheme for more serious applications.
Liquid State Computing is a algorithm which describes one possible way the brain may recognize patterns which arrive temporally. For example, when you listen to music, all the information does not arrive at one moment, therefore traditional neural network models will not recognize patterns in music - they assume the information all arrives simultaniously. Others have written papers on the subject, but no one went to the very simplest theoretical level that this paper does. In my paper (written for one of my PhD courses), I basically explain some experiments I ran to demonstrate that the concept works at a very fundamental level. I then expand my models to increasing levels of complexity until they begin to approach complex neuron models, though simpler than the ones reported in the literature. The LSM Paper 2002
So I was sitting around at home with my roommate, who's name is Jeremy Nimmer. He and I were working on a theoretical problem related to his work. And he got me thinking. So much so, that I ended up writing up the mathematics behind my thoughts on his problem. It is a problem of statistics and probability. The thing about it is, that the problem is not fully solved!
Use this free code I developed to make a raspberry pi make genuine grandfather clock sounds every quarter hour.
https://github.com/dgoldenholz/bigben.git
This is a simple exploration into using genetic algorithms, specifically to solve a maze. First, I used a public algorithm that I modified to build a 2D maze of a given size. Then I score this maze to produce a "cost function". Next I generate using some relatively simple genetics rules a series of creatures, called "zots" that will evolve a genetic code that tells them exactly where to go in order to solve the maze. Feel free to play around with this code. It is suprisingly simple, yet the idea is very powerful.
https://github.com/dgoldenholz/zots.git
Physics mysteries:
https://en.wikipedia.org/wiki/Sonoluminescence
https://en.wikipedia.org/wiki/Quantum_entanglement
Robot projects:
http://www.lego.com/en-us/mindstorms/?domainredir=mindstorms.lego.com
https://www.arduino.cc/en/Main/Robot
http://www.instructables.com/id/EXTREME-Snap-Circuits-Programmable-Robot/