Inspiration

As students and researchers, we’ve all faced the "tab overload" problem. You start with one paper, open five references, then ten more, and suddenly you're lost in a browser full of tabs, losing track of how they connect.

Traditional citation tools are flat lists. We wanted to build something that feels like an exploration, not a chore. Inspired by the sheer beauty of data visualization, we built Prismarine to turn the research process into an immersive universe.

What it does

Prismarine is an intelligent research assistant that visualizes the "citation universe" of any paper.

  • Semantic Discovery: Beyond just citations, it uses Google Gemini with the paper's content to find papers that are conceptually related, even if they don't cite each other directly.
  • 2D/3D Graph Visualization: It generates interactive 2D and 3D graphs where each papers is a node. Distance represents semantic similarity. Papers with similar ideas float closer together.
  • Audio Summaries: Don't have time to read? It uses ElevenLabs to generate high-quality audio narration of paper abstracts instantly.
  • Code-Mixed Translation: Research is global, but English is a barrier for many. 90%+ of all research publications are in English. We use Snowflake Cortex to translate summaries into "Hinglish" (Hindi+English) or "Spanglish", simplifying the text while keeping critical technical terms in English.

How we built it

The project connects a modern 3D web frontend with a powerful multi-agent backend.

Backend:

  • FastAPI (Python) serves as the high-speed engine orchestrating all AI services.
  • MongoDB Atlas stores graph data, user sessions, and cached vector embeddings.

AI & Cloud:

  • Google Gemini API: Generates 768-dimensional vector embeddings for papers and powers the Grounding search to find relevant arXiv or PubMed Central papers.
  • Snowflake Cortex: We leverage Snowflake's enterprise-grade AI for reliable, structured translation and text simplification.
  • ElevenLabs API: Provides the realistic text-to-speech engine.

Frontend:

  • Built with Next.js 16 and Tailwind CSS v4 for a sleek, dark-mode aesthetic.
  • We used react-force-graph-3d and Three.js to render high-performance 3D scenes in the browser.
  • Framer Motion powers the smooth UI transitions.

Challenges we ran into

  1. The "Too Many APIs" Problem: Coordinating arXiv, PubMed, Semantic Scholar, and three different AI models (Gemini, Snowflake, ElevenLabs) in real-time was tough because we kept hitting the API limits.
  2. 3D Performance: Rendering hundreds of nodes with text labels in the browser can lag. We optimized the Three.js rendering loop to ensure smooth frame rates on standard laptops.
  3. Proxying: Handling secure connections between our Next.js frontend and Python backend required careful configuration of API routes, especially for audio streaming.

Accomplishments that we're proud of

  • It actually fixes our problem
  • It feels magical. Clicking a paper and watching the camera fly to it in 3D space makes research feel more engaging and visually appealing than ever.
  • Rubric-Crushing Accessibility: We didn't just add "translation"; code-mixed translation is a genuinely novel feature that helps ESL speakers understand complex tech without losing nuance.
  • Robust Architecture: The system is fully Dockerized and deployed, ready for real users right now as we speak.

What we learned

  • We learned how to manage vector embeddings effectively. Not just generating them, but using them for real-time k-nearest-neighbor logic in Python.
  • We gained deep experience with Snowflake Cortex, learning how to prompt it to strictly preserve specific entities (technical terms) while translating the surrounding context.
  • We discovered that latency matters. Optimizing the "time to first graph" required parallelizing our API calls to arXiv and Semantic Scholar.

What's next for Prismarine

  • VR Support: Exploring the citation graph in a Meta Quest headset.
  • Collaborative Research: Allowing teams to share a "universe" and annotate papers together in real-time.

Built With

Share this project:

Updates