Very nice and satisfying, but I would suggest ramping up the difficulty a little faster. I got until lvl 15 by just flipping the obvious areas, taking no more than 2 seconds. It's otherwise very cool and minimalist.
Edit: limiting it to square flips was a great idea. There are just enough moves to make the answer non-obvious (after lvl 15), but not so many possible moves that you get overwhelmed.
---
Edit 2: I just remembered I made a similar "game"[1], where you select columns to XOR with other columns and try to reach the target pattern. Use the scroll wheel and shift+wheel to change the pattern and size.
That was actually part of a real research project in optimizing circuits for computing binary finite fields, where the "game" was a sandbox to try different algorithms. The best algorithm was actually found by someone playing in this sandbox and coming up with an efficient strategy.
Thanks! And yeah, I've gotten the suggestion to ramp up difficulty faster from a few people.
Although interestingly some other people in the comments here say they liked how the progression goes.
And that's an interesting little game you made.
And I spent quite some time creating an algorithm and solver to find the par for Unflip. I'm planning to release a blog post about it soon
I think if you make the par visible in the "result screen" and add a "try again" option to "next" this could make it more interesting without the need to ramp up difficulty. I think I solved a few cases with a bunch of random shifts, for example, and may have switched to thinking mode if I was faced with that.