Vavoom (the Visual Virtual Machine)
User interfaces are based on abstractions such as buttons, menus, and other conceptual models through which they explain their behaviours. These abstractions attempt to do two things. One is to create a metaphorical high-level representation, building anaologies to other domains of experience. The second is to hide implementation details, which are the mechanism by which the abstraction is maintained. We believe that metaphorical representations are critically important for interaction, but that information hiding is problematic. By hiding the detail of how the computer will respond and react to user requests and tasks, conventional abstractions and metaphors make it harder, not easier, for people to coordinate their actions and use computer systems. We are exploring a range of approaches that give users a stronger sense of how computer systems work.
As a starting point, we wanted to investigate what kinds of visual representations we might be able to provide of running software systems. Focussing initially on novice programmers, we build an extension to the Java Virtual Machine which we call Vavoom, or the Visual Virtual Machine. Vavoom builds real-time visual depictions of the behavior of unmodified Java class files. These visual representations can be dynamically explored by programmers to get a better picture of what is going on inside the software systems that they are writing.
Sample images showing different views:
You can read a paper about Vavoom here. This work has been carried out with Johan Byttner.