Lupa é um ambiente de visualização e animação de sistemas distribuídos que utiliza o conceito de checkpoints para construir sequências de animação de algoritmos
Ao construir-se um sistema distribuído, programa-se cada um de seus componentes isoladamente, o que torna complicado, ou, às vezes, impossível a visualização do sistema como um todo. Uma visão global de todo o sistema facilita tarefas como verificação do funcionamento de algoritimos e depuração de sistemas complexos.
O objetivo principal do Lupa é proporcionar ao usuário um ambiente onde ele possa selecionar determinados estados do sistema (os checkpoints) e mostrar a partir deles uma visão da computaçã que seja consistente com a execução do sistema.
O sistema Lupa consiste de um framework, onde alguns programas de teste são executados e seus estados capturados para futura visualização; e um ambiente de visualizacção e animação, que utiliza os estados capturados para gerar diagramas espaço-tempo e sequencias de animação definidas pelo usuário, em uma linguagem de script que relaciona os estados à ações no ambiente de animação.