|
|
A dynamic platform for analyzing and understanding complex codebases Developed for the CAMS2_3bis project |
A dynamic platform for analyzing and understanding complex codebases
Joackim Orcière, HYGEOS
You can try the tool directly online: Live Demo
Or run locally:
- Open
index.htmlin your web browser. - Click "Load Graph" and select a
.gexffile from thedata/folder. - Click "Start" to visualize the call graph.
- Use zoom and pan controls to explore.
- Hover over nodes for details.
- Interactive visualization: pan, zoom, and explore the call graph
- Force-directed layout (Fruchterman-Reingold based)
- Node details on hover (name, file, edge counts)
- Theme toggle (dark/light)
- Advanced filtering (by parent, first letters, presets)
- Search functionality
- Nodes: Subroutines or functions
- Edges: Calls between subroutines/functions
Input files must be in GEXF (Graph Exchange XML Format). For best results, include:
- A
parentattribute for each node (parent folder) — used for filtering and coloring - A
fileattribute for each node (file path) - In metadata: a list of parents, e.g.
<parents><parent>p1</parent><parent>p2</parent></parents>
Note: The format may evolve as the project develops.
Force-directed layouts automatically position nodes to reveal clusters and relationships in your code’s call graph, making complex structures easier to understand—no manual arrangement needed. This project uses an adapted Fruchterman-Reingold algorithm, optimized for large graphs.
- Built with Sigma.js for rendering
- Uses Graphology for graph data structures
- Custom force-directed layout algorithm with configurable forces and real-time rendering
TBD.