ProcessingJS Game of Life I did a few years back.