Elon Musk’s Neuralink just released this video of a monkey playing pong with his mind - two chips implanted near his motor cortex. It’s a the typical ML type rewards based learning and training the model.
So that made me think an MMI/MED Pong would probably be easier to try and experiment with than Pacman. I got a rudimentary version hacked up this morning with Player 1 and Player 2 each with their own MED100KX8. Simple random walk concept … more 1s is up, more 0s is down, 256 bytes per read (for each player’s slab).
Obviously it’s not working well at the moment so I started this thread as a discussion point about where we could possibly go from hear in terms of design/tuning/improving accuracy.
Two suggestions at first glance: 1) The paddle is moving too fast, use more data so it is smoother and moves more like the monkey Pong. I assume you are using the bounded random walk model so when the paddle hits the top or bottom, its position doesn’t walk further beyond the walls. The simplest way to make this bound is to ignore data that would push it further past the bound.
2) May I suggest one player be automated, that is, by using pseudorandom numbers from the program to produce movements at the same rate as the MMI generator. This will take a little playing around to get a smooth movement from the pseudo-player. The purpose of this is to provide a single player game, and to allow comparison between the MMI player and a non-MMI “player.” Note, it’s only necessary to use a single pseudorandom bit to determine up or down movement.
Sorry I took so long to reply, I’ve been crazy busy recently.
In addition to the previous comments I have been thinking about how to control the paddle with MMI data. It’s not at all an easy task since MMI only produces a small effect size, especially for a continuously running application. I think one approach is to make the paddle move at a constant rate, up or down depending on whether the accumulated MMI data is positive or negative. There are several details to consider in this approach and I will say more when I have more time.
Memo for whenever I get back to this project:
Consider merging with this project.