Before exploring possibilities for speeding up the computations in Tile Machine, I decided to add one more feature to the prototype: small challenges that allow the player to make incremental progress in the game. Trying to beat the whole game at once is difficult, I spent many hours trying to do that and only got to the average game length of 150 rows. Another reason why challenges are useful is that making patterns for all tetrominoes is a lot of work. It's much more enjoyable to make a program just for one tetromino, optimize it and extend it to handling other tetrominoes later. Thus the first several challenges don't involve the whole set of 7 tetrominoes. There are currently 16 challenges, and I will be adding more later.
Another small improvement is that the program is now stored in browser's local memory and persists when the tab is updated or closed and re-opened. If you need to start over from scratch, you can use the "Reset Program" button. This will erase the program from the local memory, though, so if you want to keep it, you need to download it.