Inspiration
We saw this as an opportunity to automate a repetitive task to help free up lab workers' time, so they can spend their time with other tasks instead of doing repetitive graphing. This also seemed like the perfect project for a 36 hour hackathon, and it doesn't even need a decent UI, just a working one.
What it does
Spectroilmeter is a tool used to visualize data coming from a baseline CSV file and one or more sample CSV files. The application plots data points from the sample CSV files and the baseline CSV file to create graphs that has a green line for the baseline CSV file and a blue line for the sample CSV file. Graphs can be selected to be previewed on the center of the application through a panel on the right side of the application where the user clicks the name of the CSV file to select its graph for previewing. The right side panel also includes three buttons to remove the selected file from the list, to batch save all graphs in a folder the user chooses through the left panel as either a PNG or JPG image file.
How we built it
Spectroilmeter was built using R and Python, with R plotting the graphs and Python creating the UI. We used PyQt5 to create the breadcrumbs, progress indicators, and buttons. We used other Python libraries, including matplotlib to generate fallback preview, and pandas to parse CSV files. The graphing was done by R using the tidyverse, ggpubr, and cowplot libraries and was integrated into the Python script through rpy2. The AI analysis was done by Python through an HTTP POST request using the requests library. AI tools (OpenAI, OpenRouter, Anthropic, Gemini, and Qwen-3) were used to accelerate development through structured planning and code generation.
Challenges we ran into
We ran into some problems with rpy2, including local-variable shadowing, which we debugged by using the AI tools. We also had a problem with the graph where it increased in size whenever a CSV file was selected on the right panel, and after a certain amount of times, the window would increase in size proportionally indefinitely. Another bug was where the output would be three parent folders above where the output was supposed to be.
Accomplishments that we're proud of
We're particularly proud that the UI surpassed our initial expectations. It has a breadcrumb navigation system, a toggle between the graph and AI analysis, and colored buttons to help guide the user without confusion. Everything works, the R graphing engine produces valid graphs, the AI analysis provides clear recommendations, and saving the analysis as a PDF makes further action easier by allowing the analysis to be printed
What we learned
We developed better ways to use AI tools, including using AI to create an outline/plan to give us a clear starting point to construct different parts of our project. While AI tools were generating code, they left helpful comments that we could go back to and read to get a general idea of what that code does and use that knowledge to help with debugging.
What's next for Spectroilmeter
Future improvements would focus on improving user experience through the implementation of small audio and visual feedbacks. Audio features would include audio indicators to notify the user of successes, failures, errors, and other important events to make the user interface feel more engaging and interactive. Visual features would include small animations when buttons are clicked or have a mouse hovering over them. They could darken their color if they have a cursor hovering over them and have some other visual feedback to tell the user that they have clicked it.

Log in or sign up for Devpost to join the conversation.