HackViolet is a 24-hour hackathon hosted by The Association of Women in Computing, a student-run, non-profit organization at Virginia Tech. Through the event, we encourage all individuals to learn about and become change agents for the gender gap in technology by innovating and inspiring with code.
- Edward Stan "NookRitzia" 🔥
- Maximo Xavier de Leon
- Prapti Singh
- Gurkirat Singh
ViMap is an application that displays aggregated data on a 3-dimensional globe that has the ability to be controlled with a user's hand movement captured from a webcam.
ViMap was developed to visualize various data sets 3-dimensionally without the need to use any computer input. We wanted to allow our data-visualization to be accessible to as many people as possible
ViMap was developed using a pre-trained OpenCV model to capture hand movement and gestures paired with a flask app that utilizes plotly-dash to create a viewable 3-dimensional globe.
Throughout the development of ViMap our team encountered issues with
- Creating and joining multiple threads
- Optimizing OpenCV Hand Tracker performance
- Optimizing the web application
- Creating a a transfer-of-data connection between the main and secondary threads
Throughout the development of ViMap our team came together to accomplish
- Integrating I/O
- Addition of datasets
- Rendering the globe figure
- Ability to control the globe with hand movement and gestures
The development of ViMap allowed us to refine and learn skills various technical skills
- Implementing machine learning models
- Multithreading
- Web application using flask
- Parsing economic data
Our development team expects to implement additional datasets, real-time entity tracking, and further optimizing the OpenCV model
Make sure you download the following Python libraries
- flask
- dash
- dash-bootstrap-components
- tensorflow
- opencv-python
- mediapipe
Then
- Run app.py
- Open the flask web-application
- Move your hand around in a closed fist gesture to rotate the globe
- Additionally, the globe may be rotated using the buttons on the web-application