Inspiration

While working with linearized physics graphs, I saw how a graph can look convincing even when its interpretation is off. Squaring the x-variable changes the slope’s units, and fixing a line through zero adds an assumption. I built LabLens to help students catch those issues while they analyze their data.

What I Learned

I learned that fitting a line is only one part of analyzing an experiment. Students also need to understand which variables were transformed, what units the coefficients should have, and which assumptions shaped the model. A strong fit can support a model, but it does not prove a physical law.

For example, if acceleration is plotted against time squared, the slope’s units should be ( (\mathrm{m/s^2})/\mathrm{s^2} = \mathrm{m/s^4} ). LabLens uses this example to show why checking dimensions matters.

How I Built It

LabLens lets students enter measurements or import a CSV, choose units and a model, and inspect the fitted coefficients, residuals, and reasoning checks. The web app uses Next.js, React, and TypeScript; a Python API validates requests and runs the analysis. Pint handles unit conversions, SciPy fits the model, and PostgreSQL stores saved data and results.

The calculations and checks are deterministic. Optional AI can rephrase existing findings, but it is not needed to analyze data.

Challenges

One challenge was deciding when the app should reject an analysis instead of producing a misleading graph. For example, a reciprocal transformation is undefined at zero. LabLens flags that row rather than silently dropping it. I also worked through unit conversions, numerical edge cases, preserving saved results, and making exported results checkable.

I tested the app with synthetic examples, automated tests, and browser checks on desktop and mobile. I have not yet tested it in a classroom, so its effect on student learning remains to be measured.

AI Use

OpenAI's ChatGPT/Codex was utilized for project research, aiding in code generation, tests, documentation, and debugging. LabLens's numerical calculations and findings use deterministic code, not AI-generated answers. Its optional AI explanation feature requires a provider key; the submitted demo does not rely on one. All AI generated content was reviewed before submission in order to ensure accuracy, relevance, and consistency with the final project.

Built With

Share this project:

Updates

Submission history