In the game braid, you can undo your moves and step backwards in time if you mess up. I wanted to replicate that for programming.

How it works

The debugger capture the state of the entire program after stepping forwards, and adds it to a stack. Then, when you step backwards, you can just pop a state off the stack. This allows you to "time travel" though your program.

Challenges I ran into

Communicating between the web and the server was annoying.

Accomplishments that I'm proud of

This is one of the bigger haskell programs I've worked on, it's pretty cool as well.

What I learned

  • managing state
  • websockets

What's next for The Time Travelling debugger

Make a version for a mainstream language like python.

Built With

Share this project: