Summary & Learning Objectives
For my senior project, I will be working collaboratively on a small development team working on VISTAS, a 3-D scientific data visualization tool. This project is taking place under the mentorship of Judy Cushing and is funded by the National Science Foundation. VISTAS has already been under development for several years, so a big challenge of my project will be learning my way around an existing large C++ codebase. The rendering engine in the application is mostly complete; however, the tool is currently slightly buggy and can be somewhat unintuitive to use.
My role will be to focus on learning user interface design & programming with the goal of enhancing the usability of the program. I also hope to learn about modern source control methods as well as obtain practice at working on collaborative software projects. Throughout the course of my project, I will also be fulfilling additional developer responsibilities within the VISTAS team, including attending weekly online meetings and contributing to code reviews, bug fixes, and collaborative readings of select research papers.
The existing VISTAS UI uses a cross-platform library called “wxWidgets” for all of its graphical UI elements. There are official wxWidgets tutorials as well as a reference page online– these will be my primary resources for this project.
VISTAS-related resources can all be found at the project’s webpage.
My plan initially is to target making addition and removal of visualization scenes more intuitive. I also hope to add context-driven mouseover tooltips for user interface elements and a basic in-application help menu complete with a quick-start guide.
When it comes to exactly what I mean by “making addition and removal of scenes and visualizations more intuitive”, I had in mind:
- Add ability to delete items from Data & Visualizations tabs. Currently, removing a scene requires rebooting VISTAS.
- Add “Add” buttons to the Data & Visualizations tabs. Right-clicking is not intuitive to a new user. This could be simple as a small “+” or “Add” button next to Project Visualizations/Project Data.
Beyond this, I’ve compiled a list of some user quality-of-life features that I think would be good additions. The big two in my mind are the ability to Save/Open/Close projects and the ability to add annotations/pins to visualizations, but I’d like to work up to these.
Evaluation of Work
All of my code commits to the project can be viewed at my bitbucket profile (https://bitbucket.org/jmangue/profile/activity). Furthermore, I will be keeping weekly online journals detailing my work on VISTAS.