We built this with applications in robotics and spatial computing in mind but would love to hear feedback from folks that would see this as useful in other domains as well.
Happy to answer any questions!
Here is a tutorial: https://rerun.io/docs/howto/visualization/extend-ui#custom-v...
And here is the corresponding code example: https://github.com/rerun-io/rerun/tree/main/examples/rust/cu...
To write your own graph visualization, you can look into the implementation of our graph view: https://github.com/rerun-io/rerun/tree/main/crates/viewer/re...
In the future we want to provide more types of layouts, dataflow is high up on that list. May I ask what kind of data you want to visualize? Since you mentioned Sankeys, in your case does the structure of the Sankey change as well, or do you only expect the edges to grow/shrink over time?
Once we have that though, there is another approach that you can take before you go down the path of writing your own visualizer/view: you can also log custom positions for each node. Since the node positions don't change in your case that might get you quite far by statically logging the nodes with a Sankey layout computed by your application.
I really wanted live views of my gstreamer pipelines, so I've started to write a tool with egui [0]. Looks like rerun's GraphView doesn't support subgraphs and horizontal layouts yet, but I'm sure I'll soon be able to just have a gstreamer tracer that pushes reruns logs. That's better than having to find the motivation to go through my todo list! Yeah!
It would be super cool to have layered graph drawing in (Sugiyama-style) in Rerun too. The tricky–but super interesting–challenge that we face is that our layout implementations need to be consistent across timestamps if the underlying structure of the graph changes, which is why we initially chose a force-based layout approach. There, the time-varying aspect is handled naturally by the simulation.
The very interactive nature of Rerun also poses more restrictions on the implementation of our algorithms: re-layouts ideally need to be fast, to produce visualizations quickly, especially when scrubbing the timeline.
I still hope we can rid you of some of the todos ;).
You can for instance install and open the viewer natively with just:
> pip install rerun-sdk
> rerun
I especially like that they're also building an (amazing) Rust version of imgui called egui, and open sourcing all the work for the ecosystem: https://github.com/emilk/egui