Inspiration

With the increasing globalization of research across many disparate domains, there is a need for better communication between researchers at different institutions across different countries. China is a world leader in AI research, producing more publications than the US, UK, and EU combined in 2024. But cross-border collaboration between US and Chinese researchers is declining. China-based authors have the lowest rate of international collaboration among major research regions, and the gap is getting wider.

The tools researchers use today (Connected Papers, Litmaps, ResearchRabbit) are all paper-centric. They help you find what to read but not who to talk to. We wanted to build something that maps the people behind the papers, explains why a connection matters, and encourages reaching out across language barriers!

What it does

Enter your institution and a research goal, and WeSearch builds a person-centric knowledge graph from OpenAlex data. Researchers are the primary nodes and papers, topics, and institutions are context. You interact through a chat interface where an AI agent helps you clarify your goal, searches the academic graph, and then hands off to the visualization layer.

The Sigma.js graph view shows the full researcher network laid out by relevance. For deeper analysis, the Lab view renders the same graph in 3D using Three.js and React Three Fiber, running community detection to surface research clusters and tracing the shortest path from your institution to your target using A*. You can explore the 3D graph and see nodes appearing, communities lighting up, the path glowing through the graph, followed by a concrete outreach timeline of who to contact, in what order, and why.

How we built it

Data comes from OpenAlex, which indexes around 250 million works with strong Chinese research coverage. We built a pipeline (Extractor, Minigraph, Merger) that feeds into Memgraph, an in-memory graph database. The backend is FastAPI with NetworkX for graph algorithms like pathfinding and community detection. The frontend is React 19 + TypeScript + Vite, with Sigma.js and graphology for the 2D graph, Three.js/React Three Fiber for the 3D lab view, and deck.gl + MapLibre for the globe. Design was prototyped in Google Stitch. The chat agent runs through OpenRouter.

Challenges we ran into

The hardest part was getting all the components to work well together, especially like graph ontology and getting the ingestion to work properly. Because there are so many different types of connections that you could have, you could ingest, for example a web article or something from Wikipedia or research paper, and research papers have many different formats, there was just so much variation in what we were ingesting, we had to come up with a very thorough set of types and that was hard.

Accomplishments that we're proud of

The core loop works: describe your research goal in the chat, watch the graph build, explore researcher clusters, see the shortest path to your target traced out in the 3D lab view, and get a concrete outreach plan. The globe view with arcs between US and Chinese institutions immediately communicates what the product is about. We also built a real graph database pipeline with idempotent extractors and a single write path, not just a static JSON blob.

What we learned

  • Open academic data is better than we expected. OpenAlex gave us everything we needed for free, including solid coverage of Chinese research.
  • Vibe coding is hard with a lot of different people. We kept overwriting each other's code.

Note:

We worked on this project in multiple GitHub repositories. https://github.com/scaryjoshie/mark3 is our latest iteration, but you can see our other repos here:

Built With

Share this project:

Updates