I did some visualization of brainfuck quite a few years ago. I do an interpretation and generate a pov-ray script that generates frames that generate a video.<p>Multiplication here: <a href="https://www.youtube.com/watch?v=6PIZTFrkl0w" rel="nofollow">https://www.youtube.com/watch?v=6PIZTFrkl0w</a> , repo here: <a href="https://github.com/maweki/brainfuck2video" rel="nofollow">https://github.com/maweki/brainfuck2video</a><p>The problem I find with basically every brainfuck visualization (mine included): it's only useful with a few memory cells as the tape becomes full. You can't skip over or fast forward specific "widgets" (I've seen multiplication, now move along). At that point, you could find other levels of abstraction and try to allow for some macros that should always take x seconds, independent of the number of actual operations.<p>And I think most projects would be well-served using some simple termination arguments to prevent some simple not so well-behaved programs (of course, this is in general undecidable). But this shown interpreter for example, just does nothing on "+[]" but whether some program in some state is quiescent is easily decidable.
A Brainfuck interpreter that shows how the cellular automaton behaves as your code runs. A description of the language and some challenging puzzles can be found below.
There's something wrong with the status (?) widget at the top of the screen. Here's what I get trying to run a sample .b script - <a href="https://imgur.com/EEcZDym.png" rel="nofollow">https://imgur.com/EEcZDym.png</a>