Final Project

The purpose of the final project is to provide hands-on experience designing, implementing, and evaluating a visualization method, algorithm or tool, or conducting a piece of visualization research. Projects will be carried out by a teams of 1-3 people (TQE students may work in teams as well). Your project should address a concrete visualization problem and propose a novel, creative solution. The final deliverable will be an implementation of the proposed solution and a paper written in the format of a conference paper submission. Though the majority of projects concern the development of a software artifact, design studies or evaluations of visualization techniques may also be acceptable projects — please talk to the course staff if you have questions.

In addition, you will be responsible for participating in a design review and presenting your final results. Due to COVID-19 disruptions, the specific format for the design review and final presentation are to be determined.

Prior to starting your project, it is helpful to gain a sense of what goes into formulating a successful visualization project and to beware of common pitfalls. We encourage you to read A Nested Model for Visualization Design and Validation by Tamara Munzner.

Team Registration & Project Proposal

The proposal should include the names of the members of your group and a short (1 to 2 paragraph) description of the visualization problem you plan to address.

Register your team in our Google Docs form. Similar to A4, we will use form responses to generate GitHub teams and repos for the final submissions. Unless granted instructor permission, you may not work in groups larger than 3 people. If you are looking for project partners, we have posted a team finder spreadsheet in Piazza.

After the proposal deadline, we will add you to a team and create a repository in which you should put your code, project page, readme and final submission.

Milestone Review (Week 13)

Updated requirements for the milestone review have been posted to Piazza in @203 and presentation/critique assignments in @206.

Develop an initial prototype of your project and publish your work in your GitHub repo. If applicable, publish any web-based visualizations using GitHub pages, similar to A4. Your work will be reviewed by the course staff and critiqued by your peers (similar to A4) to provide feedback on your designs and progress. It is fine if your project is not yet in a "complete" state; however, by this point you should have made substantive progress, including working (if rough) prototypes of your main visualizations and interactions.

Your milestone materials should be pushed to GitHub by 4/26 at 11:59pm ET. Our class sessions on Mon 4/27 and Wed 4/29 will be used for design review presentations.

Final Deliverables (Wed 5/13)

All final deliverables should be in your GitHub Repo. All deliverables are due 11:59pm, Wed 5/13. Please also complete the submission form.

The specific final deliverables include:

  • Video Demonstration: a 5-minute video that introduces your domain/dataset, describes the goals of your final project, gives us a full demonstration of your completed work, and highlights 1-2 cool insights/findings your work has enabled.
  • Paper: a 2-4 page paper (not counting references) written in the form of a conference paper submission. The paper should present your goals, related work, a detailed description of your system, and a discussion of your design.
  • Project Page: List title, team members, summary image, abstract, link to paper, video, running instructions for the software and other optional materials. Host the page with Github Pages.
  • Readme File: In the repository's, include a breakdown of how the work was split among the group members and a commentary on the project process.
  • Code: an implementation of your system (source code and, if necessary, MacOS executable or build instructions).
  • Application: if feasible, publish your visualizations on GitHub pages.


The final paper should be in the style of a conference paper submission. The paper might include content that is typical of papers that appear at IEEE VIS, or CHI. In particular it should contain:

  • Introduction – An explanation of the problem and the motivation for solving it.
  • Related Work - A description of prior research or work related to your project.
  • Methods – An explanation of the techniques and algorithms you used or developed.
  • Results – The visualizations your system produces and any data to help evaluate your approach. For example, you might describe a case study that illustrates how your visualization(s) to address your chosen problem.
  • Discussion – What has the audience learned from your work? What new insights or practices has your system enabled? A full blown user study is not expected, but informal observations of use that help evaluate your system are encouraged.
  • Future Work – A description of how your system could be extended or refined. We have read papers from a number of conferences throughout the course, but if you are having trouble figuring out how to write your paper, take a look at representative papers from the conferences listed above.

Your final paper should be formatted using the 2 column formatting of papers that appear at IEEE VIS or ACM CHI. Although there are some differences in format between these conferences, you are free to pick from either of these. If you need help finding a formatting template talk to us. Templates for VIS and CHI are available online. Your paper should be between 2-4 pages, not counting references.


Your implementation should be able to handle typical data sets for the problem at hand, and run at speed compatible with the intended use (for example interactive visualization should run at interactive frame rates). Developing algorithms that scale to large data sets can be particularly challenging and interesting. However, the project is not a programming contest and mega-lines of code is seldom associated with a good project.

We are very flexible about the underlying implementation of your projects. However, we encourage you to use an available visualization toolkit (see Resources) that supports web-based publication. However, software projects must include some new code written by your group. You should not simply use existing software such as Excel, Tableau, Illustrator, etc. to create the visualizations for your final project.

Explain how can we run your code in the project page. If your application is web-based, include a URL and if possible publish it using GitHub Pages. Note that GitHub Pages only supports vanilla HTML/CSS/JS; it does not support server-side logic. You will likely need to use another hosting option for your application if you need server-side logic support. If your project is not web-based, provide detailed build and running instructions as needed.


  • Put your final paper pdf file and your video in the final folder in your project repo's master branch.
  • Include a project page on Github Pages (your "docs" folder). Include title, team members, summary image, abstract, link to paper, video, running instructions for the software and other optional materials. (Or in if you have privacy concerns.)
  • Include a breakdown of how the work was split among group members and a commentary on the research/development process in the
  • The final code (and, if not web-based, executable binary) should also be in the default branch. If your visualization is web-based, also publish it online using GitHub pages.


The final project will count for 40% of your final grade in the course. We will consider the novelty of the idea, how it addresses the problem at hand, the methodology you employ in doing the research, and your proficiency in implementing the idea. We will particularly focus on the usefulness of your results, as well as your choice of visualization and interaction design decisions.

Please do not submit late!