Inspiration

We wanted to create a mental wellness app to make tracking one's emotion state throughout the day intuitive and comfortable via weather visuals and metaphors.

What it does

MoodForecast basically translates your emotional state throughout the day into dynamic weather visuals. It tracks your moods throughout the day (allows you to input timestamp, a slider for how you feel from a scale of 0 to 10, and an explanation why) and reflect on your mood patterns later in the day wit guided improvement prompts for less subpar events that you logged using this app.

How we built it

Built with Godot, we implemented cubic spline interpolation for estimating the user's mood at any given point of the day and developed a rudimentary rule-based sentiment analysis system to evaluate the user's responses to improvement/reflection prompts after "bedtime". We also used Godot to make most of the UI and navigation.

Challenges we ran into

Initially used Lagrange interpolation but encountered Runge's phenomenon which basically caused "extreme mood swings" due to numerical instability. Was hard to balance interpolation model on the spectrum numerical stability (e.g. linear interpolation) vs. accuracy/smoothness (e.g. Lagrange/cubic splines). Training a proper sentiment analysis AI model was infeasible in the 1-1.5 days we had, so we built a rudimentary rule-based system instead.

Accomplishments that we're proud of

Created a fully functional mood tracking app (albeit with rudimentary sentiment analysis and interpolation) in under 24 hours.

What we learned

Rule based AI systems can be an effective toy model when more sophisticated machinery isn't available, and sometimes technical sophistication needs to be balanced out with pragmatism.

What's next for Mood Forecast

Upgrade sentiment analysis to AI-based (neural network/machine learning), mathematically optimize the choice of mood interpolation method, expand the only 24 hour scope of the app to be able to keep track of/log many days of emotional states and have the user compare "weather trends" over time, make the UI neater and more polished

Built With

  • godot
Share this project:

Updates