Math is a very visual subject. When you first start learning algebra, a good portion of the curriculum consists of learning about coordinate graphs and functions, and how to convert functions into said coordinate graphs. When you learn statistics, graphs are instrumental to how you can analyze and interpret data. However, visual representation of math through graphs is limited: it only works if you can see the graph. For the blind and visually impaired, an alternate way of constructing a mental image of what functions and statistics are meant to represent is needed.
Thus, we came up with a solution: Euler’s Vision, which uses audio frequency to assist visually-impaired users in better understanding a function, the shape of its graph, and how its critical points relate to the graph. The user can traverse the graph using arrow keys, and a changing frequency would accompany the function as it goes higher or lower. Additionally, we added support for critical points, playing unique sounds for points such as maximums, minimums, and inflection points.
One of the most difficult challenges was understanding the POV of a visually impaired person. Due to the fact that the majority of the population can see, the option for alternatives is not as prioritized. One of the challenges we had to overcome was to make our features not according to what we feel like is cool, but rather place ourselves in the shoes of our users and prioritize simplicity and usability. This forced us to define our scope clearly very early on so that our MVP included features that truly matter, rather than features that are simply fun to have.
Additionally, most of us have never used GitHub extensively, so we had to learn very quickly about best practices, creating branches, and managing merge conflicts. Although the process wasn’t perfect, and we had a few scares where we accidentally lost progress or broke certain key features, we were able to figure out how to revert or merge our code so that it would work again.
We are proud that we were able to create a product that could help blind and visually impaired people better understand math. By transforming traditionally visual graphs into audio, we can allow previously “visual” concepts to be understood without the need to see. Although similar applications exist, our solution is easily portable and accessible via web-app, and has integrated an AI agent with Gemini capable of allowing voice control for generating functions.
In the future, we hope to add support allowing better audio conversion for slope, derivations, and integrations.
How we built it
-Built a web app that turns function graphs into sound, so users can explore math by hearing pitch changes as they move along a graph.
-Used Math.js to parse user-friendly equations (including shorthand like |x|) and sample values across the domain.
-Rendered graphs with Plotly, then layered keyboard navigation and a live cursor so users can step through points with arrow keys.
-Added a custom critical-point engine to detect minima, maxima, inflection points, and intersections, with distinct audio cues for each.
-Created a Desmos-style multi-function workflow with toggles, color coding, and dynamic graph updates.
-Integrated an optional Gemini + Express backend to generate spoken graph descriptions from the current equation + graph snapshot.
Built With
- css
- dotenv
- express.js
- gemini
- html
- javascript
- katex
- math.js
- node.js
- plotly.js
- speechsynthesisapi
- webaudioapi
Log in or sign up for Devpost to join the conversation.