Inspiration
Ever spent hours down a research rabbit hole only to realize you've learned nothing? I wanted to build a tool that gives researchers a visualization for their literature review—something that shows not just what you're reading, but whether you're building genuine depth.
What it does
Research Terrain transforms any collection of articles into an interactive visual map. Paste a URL, whether it's a Wikipedia page, news article, or research paper, and watch it appear as a node on the terrain. The map organizes itself in real-time:
Vertical position shows research depth (lower = depth of information in a topic)
Horizontal clusters group related topics together
Node size indicates novelty (bigger = more unique findings)
Connecting lines reveal semantic similarities between articles
It helps you see where you've been, where you're going, and whether you're sources are repeating the same information.
How we built it
I built Research Terrain using a Python stack:
Streamlit for the interactive web interface Newspaper3k + BeautifulSoup for article extraction Sentence-Transformers for semantic embeddings Plotly for the interactive 3D-style visualizations Scikit-learn for similarity calculations and clustering NetworkX for relationship mapping
The algorithm combines article length, technical vocabulary density, and academic language patterns to position research on a spectrum from 'surface overview' to 'deep technical.
Challenges we ran into
The biggest challenge was trying to find the best algorithm or ML libraries to determine where to place the nodes.
What we learned
I learned about the streamlit library, as it's my first time deploying a website through Python.
What's next for Research Terrain
I want to try to improve the node-placing logic and make it easier for users to interpret. I hope to add a feature that analyzes the visualization and gives users suggestions, such as "85% content overlap, you may be going down a rabbit-hole" etc.
Built With
- beautiful-soup
- networkx
- newspaper3k
- plotly
- python
- scikit-learn
- sentence-transformers
- streamlit
Log in or sign up for Devpost to join the conversation.