An investigation graph tool built with Pygame — visualize and connect entities like people, organizations, emails, phones, documents, databases, and social media accounts.
- 10 Entity Types — Person (Male/Female), Organization, Email, Phone, Document, Database, Social Media, Device, Location
- Visual Graph — Drag nodes, create directed edges, pan/zoom canvas
- Properties Panel — Edit labels, properties, and multi-line notes for each node
- Edge Labels — Name your relationships
- Save/Load — Native
.investigraphfile format - Unsaved Changes Tracking — Never lose work
- Zoom-Responsive UI — Everything scales smoothly
| Action | Control |
|---|---|
| Pan canvas | Left-click + drag (empty space) |
| Zoom | Scroll wheel |
| Select node/edge | Left-click |
| Move node | Click + drag selected node |
| Create edge | Right-click source node → move mouse → right-click target node |
| Delete selection | Delete key or trash icon |
| Add node | Click "Add Node" → choose type → click on canvas |
- New — Clear current graph (prompts to save if unsaved)
- Save — Save to
.investigraphfile - Load — Load from
.investigraphfile
git clone https://github.com/mohammedfarhannp/InvestiGraph.git
cd InvestiGraph
pip install -r requirements.txt
python main.py- Python 3.8+
- Pygame 2.5+
- tkinter (included with Python)
InvestiGraph/
├── core/ # Node, Edge classes
├── entities/ # Entity types (Person, Email, etc.)
├── ui/ # Canvas, Camera, Ribbon, Properties Panel
├── utils/ # File I/O helpers
├── assets/icons/ # 24x24 PNG icons
├── saves/ # Default save location
├── main.py
└── settings.py
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Mohammed Farhan N P
