GSoC/2020/StatusReports/DilsonGuimaraes

From KDE Community Wiki

Project Overview

Project name: Better Graph Layout for the Graph Theory IDE

Rocs (https://kde.org/applications/education/rocs) is a Graph Theory IDE for experimenting with graphs and graph algorithms in a visual way. It is very useful for teachers, students and researchers. Teachers and students can use Rocs to follow the execution of graph algorithms step by step, with visual indications in the graph itself. Researchers can use Rocs to explore graphs easily and experiment with new algorithms and concepts.

Clear visualization of graphs is very important to the effectiveness of Rocs as a tool. The goal of this project is to improve graph visualization in Rocs, providing constrained graph layout algorithms [2] and the necessary user interface. This would benefit users by letting them explore different ways to visualize their graphs in an automatic way.

Work Report

Added features

I created a tool to apply layout algorithms to graphs in Rocs. This tool allows the user to select an algorithm and apply it to a graph. Algorithm specific parameters can also be selected. My GSoC proposal included three kinds of layout algorithms, one for each part of the coding phase. The current state of their implementation is shown next.

Implemented layout algorithms

The layout algorithms in this section are already implemented, tested and documented.

  • Force based layout: A graph layout algorithm based on the simulation of forces acting on nodes.
  • Radial tree layout: A graph layout algorithm specifically designed for trees.

Layout algorithms to be implemented in the future

The layout algorithms in this section will be implemented during the remaining time of the project.

  • A layout algorithm for Directed Acyclic Graphs.

Merge requests

The list of all my merge requests related to this project follows.

First version of the graph-layout-plugin (Work in progress)

Blog

My blog can be found here.. The links to posts related to this project are given below: