Inspiration

So I told my friends that I was doing a datathon with my girlfriend, and they thought "date-athon?" That's when it hit me that we should make an app to help couples plan their dates. My girlfriend and I have a bucket list of activities that we want to do together, but it is a pain to keep track of it and combine activities to make a full-fledged date.

What it does

Cue Plan-et Rendezvous (We like space!), a 3D visualization that combines language models and vector stores to depict your endless bucket list with your partner in an informative and eye-popping way. The proposed recommendation system leverages a transformer-based model to convert user-input date ideas into vectorized representations. These vectors capture key factors like timeframe, mood, weather, and categories (e.g., indoor, nightlife, fitness). The system then uses these embeddings to create an interactive 3D graph, where each node represents an activity and the edges indicate the strength of pairing between them. This design not only allows for intuitive visualization of how activities relate but also aggregates them into a full-fledged date or hangout itinerary. Our dataset was used as mock data for graphing and visualization.

How we built it

We employed open-source language transformers from HuggingFace to create our vector embeddings, which encoded features such as timeframe, mood, weather, and categories into the representation of the activity. Then, we stored these vectors in a SingleStore vector database, where we connected a Flask/Python backend to the frontend interface.

Challenges we ran into

We struggled to connect to SingleStore for quite some time as it was a new technology. Then, we spent the majority of the time connecting our react application to the backend (many issues with API coherency).

Accomplishments that we're proud of

We used a react library for the 3D graph visualization called React-Three-Fiber and React-Drei, which were very cool to use. They make the application pop and fun to interact with. We are proud of our use of technologies to facilitate the complex pipeline of operations for an application such as this to function.

What we learned

We learned how to connect to a SingleStore database. Next, we learned how to use a transformer to encode natural language into vector embeddings. Lastly, we learned some dynamic frontend magic (3D models on a webpage)!

What's next for Plan-et Rendezvous

Next comes the Integration of more complex and representative encoding processes to generate better and more polished recommendations. This could include testing different models, cleaning up the visualization, etc.

Built With

Share this project:

Updates