Final Project
The final project will provide hands-on experience designing, implementing, and deploying interactive visualizations. Your project should address a concrete visualization challenge and should propose a novel, creative solution. The final deliverable will take the form of a visualization, dashboard, or narrative article deployed as an interactive web page. Project teams may consist of 1-3 people.
Prior to diving in, 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.
Theme: Explorable Explanations
Your task is to create an Explorable Explanation: an interactive article that explains a complex subject to the reader. The topic could be a scientific phenomenon, a computer science algorithm, a mathematical concept, a sociological theory, or some other topic that you’re passionate about. Focus on creating one or more interactive diagrams interlinked with explanatory text or annotations. We urge you to focus on a highly visual and/or interactive experience, as opposed to expecting a viewer to read large amounts of article text.
Examples highlighted in class include Harry Stevens’ simulitis visualizations and Barry & Card’s visualizations of the Boston subway system. For more examples, visit the explorabl.es site or the Idyll gallery. You might take inspiration from Bret Victor, who helped popularize this style of article.
Please do not choose a sorting algorithm or common graph algorithms, as these have been done many, many times before. If you are unsure about a topic, please discuss with the course staff.
Submission Details
Each project milestone (see below) has its own submission requirements. However, most of the project involves developing and deploying a dedicated website. You are free to choose among multiple deployment options:
- Use your existing personal GitLab repo for the course.
- Use a new, project-specific GitLab repo that we provide. For multi-person teams, this option is preferable to personal repos to ease collaboration.
- Host your application on an external site, such as GitHub. However, you must ensure that the website is publicly accessible, and that the course staff also has access to your source code.
Each project team should indicate which of these options they intended to use when submitting a final project proposal.
Project Milestones
-
Proposal (due before class, Week 8). Propose your chosen topic, dataset(s), and team members. Complete the registration form (one per team, using a link shared on Ed). If requested, we will create a new, dedicated GitLab repo for your project.
-
Milestone Prototype (due before class, Week 9). Develop a testable prototype of your project and publish it to the web. This prototype will be used to provide feedback on your designs. It is expected that your project will not yet be in a “complete” state; however, by this point you should have the structure of your project laid out, rough prototypes of your main visualization(s) and interactions, and at least basic descriptive text. Each team should submit the URL for their project milestone materials on Gradescope. Teams will then share peer review feedback in class.
-
Deliverables (due before class, Week 10). Publish your final project web page. For your visualizations you are free to use any web-based library, including D3.js, Vega, Vega-Lite, and Observable Plot. Each team should submit the URL to their published project page on Gradescope.