Inspiration

Given the theme of this event, we brainstormed how one can invest in their futures. Our best answer was foresight. Thus, we built a sort of life-atlas that could help you visualize many different alternate choices and scenarios to best prepare you for the road ahead. We wanted to create a tool that helps people reflect on their many possible futures. Tapestry can help people imagine their future, and see how different paths might unfold. The emergence of conversational AI especially Google ADK gave us the perfect foundation to make this vision interactive, personal, and insightful.

What it does

Tapestry guides users through a Google ADK-powered interview, gathering their background, aspirations, and values. From there, a user may also optionally upload an image of themselves to be stored.

From there, the user can begin generating their many life paths via nodes, each representing a core decision or life event. After exploring for long enough, the user can enter any nodes timeline, seeing exactly how they can get to that point in life. Additionally, they can view themselves doing just that, even aging depending on how deep into your life you have simulated. These decisions are made with thoughtful intent about your current state in life, interests, goals, and the previous decisions made prior.

How we built it

  • Frontend: Next.js, React, and Tailwind CSS for a modern, responsive UI.
  • Backend: Python FastAPI, Uvicorn, with Google ADK.
  • Real-Time: Server-Sent Events (SSE) for live updates during the interview and visualization process.
  • Authentication: NextAuth.js for secure user login.
  • Containerization: We used Docker and MinIO for containerized deployment and storage.

Challenges we ran into

  • Integrating Google ADK and handling real-time communication between the frontend and backend.
  • Hosting while ensuring SSE worked reliably in production, especially with proxies and CORS.
  • Designing an interview flow that felt natural and helpful, not robotic.
  • Making the life path visualization both meaningful and easy to use.
  • Managing the cool interactions with the 3D node graph.
  • Making the UI intuitive and easy to use.

Accomplishments that we're proud of

  • Seamlessly integrating Google ADK to create an, AI-driven experience that makes the Tapestry feel alive and thoughtfully intent.
  • Implementing Nano Banana to generate scenario-specific images, and image storage with MinIO.
  • Building a probabilistic graph visualization engine using React and D3, supporting dynamic node creation, weighted edges, and real-time updates based on user input.
  • Achieving Server-Sent Events (SSE) streaming between Python FastAPI and the frontend, ensuring low-latency, real-time feedback during interviews.

What we learned

  • How to leverage Google ADK for empathetic, open-ended interviews.
  • Advanced data visualization techniques in React and D3.
  • Nano Banana is cool!

What's next for Tapestry

We'd love to get Tapestry properly hosted and available for many others to use! The app is a lot of fun to toy around with and we have learned a lot from it (about how to best live our lives and end up retired at 35...)

Built With

+ 6 more
Share this project:

Updates