This app is experimental and has not fully tested !
KudSight is an experimental, Python-based static analysis tool that helps developers explore class relationships in source code using interactive 3D and UML-style diagrams β all directly in the browser.
π Supports Java and C++ as primary languages, with early support for C# and Kotlin.
- Enhanced support for Java and C++
- Toggle between 3D Graph and UML-style diagram rendering
- Dark/Light mode switching
- Auto-refresh analysis results
- Selective class rendering
- Export diagrams as PNG or PlantUML (.puml)
- Improved UI and CSS
- Updated Docker image for easy deployment
| Category | Description |
|---|---|
| Language Support | - Java (primary) - C++ (stable) - C# and Kotlin (experimental) |
| Code Analysis | - Extracts Inheritance, Implementation, and Dependency relations - Supports package/module groupings |
| Visualization | - 3D Graph rendering (with camera controls) - UML-style layout toggle - Selective node rendering |
| UI & UX | - Sidebar filtering by Category and Items - Node focus, reset, zoom/pan controls - Dark/Light theme toggle |
| Export | - PNG and PlantUML output - Screenshot functionality - Node position/layout persistence |
| Tooling | - Web-based UI and CLI options - Dockerized for easy, cross-platform use |
Note
There are two ways to use this app. The first one is installing all the packages and running the app. And the second one is using docker.
I recommend using docker for sake of convenience and avoiding any conflict in installing the packages. So if you want to use docker you can jump to that section.
Quick Start: Run the setup script:
./setup.sh- Clone the repo with submodules:
git clone --recurse-submodules https://github.com/Heydarchi/KudSight.git
cd KudSight- Install Python and dependencies:
sudo apt install python3 python-is-python3 python3-venv default-jre graphviz -y
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtpython app.pyThen open in your browser:
http://127.0.0.1:5000/
python FileAnalyzer.py test/test_files/javaResults are saved to:
app/static/out/
I have provide a docker image including the latest version of the application that you can easily pull and run it without setting up anything on you PC.
Notes:
- Create an out folder in the directory you want to run the docker to store the analysis result. (Mandatory)
- You can mount other folder, drivers and disks if you like. But the first part "$PWD/out:/app/static/out" should be kept.
Pull the image:
docker pull mhheydarchi/kudsight:latestRun it:
docker run -it --rm --network host -v "$PWD/out:/app/static/out" -v "$HOME:/home/$USER" -v "/media:/media" -p 5000:5000 mhheydarchi/kudsight:latestNow visit: http://localhost:5000
if you're interested to build the docker image locally and use it you can follow these steps:
docker build -t kudsight .Create an out folder in the directory you want to run the docker to store the analysis result. (Mandatory) You can mount other folder, drivers and disks if you like. But the first part "$PWD/out:/app/static/out" should be kept.
docker run -it --rm --network host -v "$PWD/out:/app/static/out" -v "$HOME:/home/$USER" -v "/media:/media" -p 5000:5000 kudsightNow visit: http://localhost:5000
We β€οΈ contributions! Whether it's code, bug reports, or docs β you're welcome.
Please read CONTRIBUTING.md for contribution guidelines.
Check TODO.md for upcoming features and known issues. Your input is appreciated.
Licensed under the Apache License 2.0.
Have ideas, feedback, or bugs to report? Open an issue or start a discussion on GitHub!


