A really useful Arduino

Doesn't processing / fritzing allow you to do much of that in simulation?