Gravitas is a full-stack web application for interactive knowledge exploration — combining AI-powered data processing with a dynamic, D3.js-driven knowledge graph interface. It enables users to visualize relationships between research publications, datasets, and concepts, transforming static text into insightful visual connections.
- Data Extraction & Categorization: Uses
PubMedandOpen Science DataAPIs for sourcing and organizing research data. - Vectorization & Semantic Search: Employs custom vectorizers (
vectorizer_pubmed.py,vectorizer_osd.py) for embedding and similarity computation. - Automated Summarization: Generates concise summaries of search results and documents.
- API-driven Architecture: Flask backend (
app.py) handles requests and integrates all processing pipelines.
- Dynamic Graph Visualization: Built using D3.js and TypeScript + React, enabling real-time, animated network exploration.
- Modern UI Library: 50+ reusable components (accordion, chart, dialog, slider, etc.) for consistent design and responsiveness.
- Multi-Page App: Includes pages for network visualization, knowledge graph, and error handling.
- Fast Development with Vite: Optimized build and live-reload experience for front-end developers.
| Layer | Technology |
|---|---|
| Frontend | React, TypeScript, Vite, D3.js |
| Backend | Python, Groq (Gen AI), Flask |
| APIs | PubMed API, Open Science Data API |
| Styling/UI | Tailwind / ShadCN (from ui components) |
| Data Processing | Ollama (Gen AI), transformers |
| Build & Tooling | Node.js, ESLint, TSConfig |
gravitas/
├── client/ # Frontend (React + TypeScript + Vite)
│ ├── src/
│ │ ├── components/ # Reusable UI + graph components
│ │ ├── pages/ # Page-level React components
│ │ ├── hooks/ # Custom React hooks
│ │ └── lib/ # Utilities
│ ├── public/ # Static assets
│ ├── package.json
│ └── vite.config.ts
│
└── server/ # Backend (Flask)
├── app.py # Main entry point
├── scripts/ # APIs, vectorizers, categorization scripts
├── requirements.txt
├── searchTest.json # Sample search results
└── summaryTest.json # Sample summaries
git clone https://github.com/kee5625/gravitas.git
cd gravitascd server
python -m venv venv
source venv/bin/activate # (Windows: venv\Scripts\activate)
pip install -r requirements.txt
python app.pyThe backend will start on http://127.0.0.1:5000.
cd ../client
npm install
npm run devThe frontend will start on http://localhost:5173.
- Run both backend and frontend servers.
- Open the app in your browser.
- Enter a query (e.g., “Space Biology” or “Cancer Genomics”).
- Explore the interactive Knowledge Graph and Network visualizations generated from live research data.
- Hover over nodes for relationships, summaries, and metadata.
Contributions are welcome!
- Fork this repository
- Create a feature branch
- Submit a pull request
Please ensure:
- Code follows ESLint / TypeScript standards.
- Python scripts are PEP8 compliant.
- Add caching for repeated queries
- Deploy to a cloud environment (AWS / Render)
- Integrate user accounts and history
- Add support for additional data APIs
This project is licensed under the MIT License. Feel free to use, modify, and distribute with attribution.