Eyesight entails far more than the ability to see anything, it greatly increases your aptitude to learn. Many blind students face great difficulty in mathematics due to their lack of visual understanding of functions and have little more to help them understand these equations than reading values aloud.
We take eyesight for granted everyday and rarely stop to appreciate what a gift it is.
What it does
I envisioned InteGraph as a teacher's resource to help blind students "sense" math. Instructors would simply visit our webpage, enter the function being taught to students, and download a 3D printable model that students could run their fingers along to feel the change of the function of the physical graph in order to gain a better understanding of math's nature.
InteGraph works by accepting a math function from the user's text field, which is then sent to Wolfram Alpha's API to retrieve a processed GIF image of the two-dimensional graph. Each pixel of the image is then analyzed for deviation from the average overall color; using the deviation values, InteGraph compiles a mesh 3D model (STL file - fully ready for your 3D printer software), where each point's depth is determined by it's deviation from the overall average, resulting in a 3D graph that students can track with their fingers.
How I built it
Similar to many web development projects, we created a git repository and devised a 'divide and conquer' approach. Two members worked on the front end while the other two worked on the backend.
We wrote the backend in Python due to its extensive mathematical libraries which helped us write our algorithms in an efficient manner.
The frontend was designed with bootstrap and programmed with JS to allow effective communication between our python scripts and the client.
Challenges I ran into
While trying to use Heroku-Django, we ran into a problem with nginx requiring another library to handle static files, so, to be most efficient, we switched to Flask in order to keep the number of dependencies and platforms to a minimum.
While using Wolfram Alpha's API, I was getting invalid URLs and the error messages weren't helping. After an hour or so, I solved my problem using an XML parser, Beautiful Soup.
Accomplishments that I'm proud of
We're all very proud to have worked together fluidly, to have helped each other, and to have written code that works well together. We divided tasks very evenly and everyone was always busy working on InteGraph
What I learned
We each picked up valuable skills that we lacked coming into ArchHacks (e.g. CSS, Heroku Deployment, Flask, AWS).
What's next for InteGraph
We would like to get funding for web hosting and improve the UI as well as make the inputting format nicer.