-
Notifications
You must be signed in to change notification settings - Fork 15
Description
Title: Add 3D Graph Plotting Functionality Using Plotly
Description:
We should add functionality to visualize the graph structures in 3D using Plotly. This will help in better understanding the spatial relationships between nodes and edges in our graph-based neural weather prediction models.
Tasks:
- Implement a function to plot the graph structure in 3D using Plotly.
- The function should support both hierarchical and non-hierarchical graphs.
- Add options to save the plot as an interactive HTML file and to toggle axis visibility.
- Ensure that the function can handle different types of edges (e.g., M2G, G2M, M2M) with distinct colors and line widths.
- Integrate the function into the existing codebase, ensuring compatibility with the current graph data structures.
Example:
https://github.com/mllam/neural-lam/blob/5b71be3c68d815e0e376ee651c14f09d801f86de/plot_graph.py
Challenges:
The html files can easily be >100MB in size, crashing most browsers. We might need to implement some performance/size tricks to prevent this.
Surplus:
3D objects could be rendered for Blender, which supports a Python-like DSL as a backend. This would allows us to benefit from all the 3D modeling techniques (e.g. shaders) for even nicer looking graphs.