Code Canvas: Spatial Representations of Code

Courtesy of Microsoft Research

By on March 27th, 2009 11:54 GMT
What if code could leave the boundaries of the traditional editors, and call home an infinite two-dimensional surface as a new spatial development environment? Code Canvas makes this possible. A project put together by Kael Rowan, an RSDE in the Human Interactions in Programming group at Microsoft Research, Code Canvas is designed to offer developers a spatial layout and Deep Semantic Zoom for source code. And an entirely new perspective over building software. Essentially, Code Canvas is meant to catalyze the evolution of the software development experience via spatial memory.

“Code Canvas is a research prototype focused on spatial orientation of code as the foundation of an integrated development environment. It is a spatial (2.5D) representation of source code, visual designers, and project-related artifacts that utilizes infinite panning and smooth semantic zoom for navigation. It is also extensible to allow analysis overlays and graph-based relationship visualizations,” revealed Rowan.

In the video embedded at the bottom of this article you will be able to see Rowan showcase Code Canvas, the successor to Code Thumbnails, according to Microsoft Research. Because it involves spatial representations of code, Code Canvas allows developers to centralize all data and resources on a project in a single, spatial location, and to access projects as a whole rather than the sum of their elements. The scalable surface can be seamlessly navigated via a model similar to Silverlight's Deep Zoom. However, at this point in time Microsoft is offering only a demonstration of Code Canvas and no actual bits, although I'm sure that some developers are dying to take it for a spin, or a zoom, if you will.

“In addition to utilizing spatial memory, the ability to overlay visualizations among multiple files at once is proving to be extremely valuable, especially when the visualizations are drawn directly on top of the same source code that you have already been working with. This essentially takes the canvas from a simple code editing surface and turns it into a full-blown diagramming surface,” Rowan added.

Code Canvas
   Code Canvas