From CS294-10 Visualization Sp11

Revision as of 22:38, 6 April 2011 by Matthew Can (Talk | contribs)
Jump to: navigation, search


A Code-Minimizing Front End for Creating Flexible Visualizations

Group Members

  • Michael Cohen
  • Thomas Schluchter


Domian-specific visualization toolkits such as protovis enable users with pre-existing programming experience to create data-driven visualizations concisely and quickly. In Jeff Heer's lecture, he specifically mentioned that in designing protovis, he was seeking a middle ground between expressive but low-level graphics libraries and simple-to-use but highly constrained charting tools like Excel. While we believe that protovis succeeds admirably for designers with javascript experience, we think its elegant mark-based architecture opens the door to further simplification that would allow a designer to access much of the flexibility of the system while minimizing the amount of programming knowledge required to a level approximately equivalent to that required to write formulas in Excel. To situate the proposed tool in the space of current visualization options, we believe that protovis can provide the substrate for a web-based tool with a learning curve comparable to Tableau, but with greater expressive flexibility. This tool will allow non-programmers to access much of the power of protovis, while also facilitating quicker, interactive "scaffolding" of new visualizations by programmers. The research value will be in pushing the quality and complexity of data visualizations that can be expected from non-programmers to new levels, without resorting to expensive hand-rendered art (e.g., with Illustrator).

Given the timeline of this project, it is not feasible to implement a front end that allows access to all of the facilities of protovis. However, at a minimum, users of the system should be able to replicate all of the protovis examples in the "conventional" category and a significant fraction of the "custom" ones. Interaction will be out of scope since it requires customized javascript for most practical uses. Hierarchies and networks will probably also be out of scope for the first cut due to time limitations, although unlike interaction we don't see any conceptual reason why they couldn't be added.

Initial Problem Presentation

  • Link to slides here

Midpoint Design Discussion

  • Link to slides here

Final Deliverables

  • Link to source code and executable
  • Link to final paper in pdf form
  • Link to final slides or poster

Brandon Liu - Apr 06, 2011 03:44:58 pm

Nice that you mentioned Scratch, I think a fundamental idea in Scratch that could be applied is the little puzzle pieces on each object that indicate what kind and how many arguments each part takes. Since Protovis methods have well defined input/output, find some way to leverage this in the interface to make the editing easier.

Jvoytek - Apr 06, 2011 03:30:17 pm

It would be really cool if you could move from the GUI to code and back again. For example, you create a simple line graph, export the code then modify the code outside of the system (maybe the system doesn't allow for this type of modification in the GUI), then import it again and make other modifications using the GUI. Very cool idea.

Dan - Apr 06, 2011 03:33:36 pm

ProtoWiz seems very cool! I like the inheritance ideas and how you can tie different marks together. Were the images you showed part of the prototype, or mock-ups? Very good so far. The graphical (or layer) approach seems very logical, I agree, and I don’t think protovis supports that very well right now, at least there is no GUI for it. Your storyboards were really well thought out. The prototype you have is great! Very cool idea for emulating the code in a form.

David Wong - Apr 06, 2011 03:53:32 pm

I think that this is a very interesting and promising idea. I like the idea of layering visualizations as it is intuitively conveying the modular aspect of protovis. Given the feedback from others in the class, it'd be interesting to see any other related systems (eg the one for Google Charts) and see where your system is making key contributions. Also, another good thing to do is to make a list of what protovis functions are supported by your system and what are not supported. I also think that ProtoWiz could be a helpful learning tool for the language so examples of code in relation to the functions of the system would be very helpful.

Siamak Faridani - Apr 06, 2011 03:52:42 pm

I liked the demo and I believe it will be a great tool in people's toolbox. I personally look forward too seeing this tool completed. As I mentioned in class a similar tool for ggplot2 that may give you some inspiration too. I personally like the terminal/code window at the bottom and I have used it extensively to correct my R visualization and I highly recommend it to those who may do visualization in ggplot.

Web interface for ggplot2

Matthew Can - Apr 06, 2011 05:28:36 pm

This would be quite a useful tool. Aside from the layering, how are you planning to supported nested marks and their relationship to nested data? For example, I think the way Protoviz works is that if your data is an array of arrays, and you feed that into a panel, each mark in the panel gets an array. The interface for this should be easy for users to understand.

[add comment]
Personal tools