An interactive web application for editing and analyzing dynamic graphs with a focus on disease transmission and contact tracing.
This project combines automated graph layout algorithms with interactive editing, enabling precise and intuitive exploration of dynamic graphs over time.
Understanding how diseases spread in environments like hospitals requires analyzing who interacted with whom — and when.
Most existing tools:
- rely on time slices
- lose temporal precision
- lack interactive editing capabilities
This project solves that by enabling:
- event-based temporal visualization
- continuous time exploration
- interactive layout refinement
- Seamlessly import automatically generated layouts based on the MultiDynNos algorithm (Arleo et al., 2022)
- Once imported, layouts can be manually adjusted and fine-tuned using a keyframe-based editing system
- Explore dynamic node-link diagrams in a browser
- Smooth zooming, navigation, and animation
- Timeline-based interaction for time navigation
- Interactive timeline with event markers
- Playback controls:
- Play / Pause
- Step forward / backward
- Adjustable speed & FPS
- Jump directly to relevant events
- Create new graphs or import real-world datasets
- Add, delete, and modify nodes and links directly
- Edit:
- Node positions over time (keyframes)
- Link durations
- Infection states
- Save and reload projects (JSON format)
- Undo functionality for safe iteration
- Nodes are color-coded by health status
- Track disease progression over time
- Toggle to visualize interaction locations
- Links and nodes reflect spatial context
- Node trajectories → movement over time
- Link trajectories → historical contact patterns
- Focus on selected nodes/links
- Reduce clutter in dense graphs
- Compare edited layout with original algorithm output
- Frontend: Angular 17 + D3.js
- Backend Tool: Java (MultiDynNos adjustment)
-
Installation of
- Git (Dynamic Graph Layout Editor)
- Node.js 18+
- npm 9+ (MultiDynNos)
- Maven
- Graphviz
-
Clone the repository
https://git.cs.uni-koeln.de/visva-lehre/va-praktikum/dynamic-graph-layout-editor.git
See the ReadMe for MultiDynNos in /Edited MultiDynNos
-
Open the frontend (folder: dynamic-graph-layout-editor) in preferably VS Code
-
For the installation of Angular following command is needed:
npm install -g @angular/cli@17
-
Install all required packages
npm install
-
Open the terminal in the root folder of the frontend
-
Run the frontend on a local webserver
ng serve
-
Open a browser window and go to
http://localhost:4200
Now the Application should run
-
To build the application you can use
ng build --configuration=production
The final application bundle is found in the dist folder
-
Fork the repository.
-
Create a new branch for your feature:
git checkout -b "feature/[your-feature]" -
Make your changes and commit them:
git commit -m "[frontend/backend: your feature description]" -
Push the branch to your fork:
git push origin feature/[your-feature]
-
Open a Pull Request.