I’ve recently been exploring the Neo4j Visualization Library. It came highly recommended on a comparison list, and looked very promising, but there’s a couple of things I just can’t figure out, and documentation seems to be extremely sparse. I can’t find example code. And coming here, even the pinned post listing several visualization options, does not list NVL at all.
So is NVL actually being used? Is it usable? Or is it too new and not quite mature yet?
For my work I’m exploring both Cytoscape (which we already use) and NVL (which comes from neo4j) as options for visualization libraries, and while I was originally leaning towards NVL, the scarcity of resources makes me lean more towards Cytoscape, which does seem to have a vibrant community.
Are there other options I should have been exploring instead?
Thanks. I’ve seen those, but that’s pretty much all I could find.
A couple of things I couldn’t figure out: how to get hierarchical layout to work. It always puts all the nodes on the same position.
Another is how to display nodes as rounded rectangles instead of circles. I was under the impression that was supposed to be possible, but I can’t find anywhere how to do it.
All the docs are about the most basic stuff only. They don’t even go into detail about what the LayoutOptions actually do, as far as I can tell.
Hi @martijn, thanks for all the feedback, it’s very helpful. While NVL is quite young (we only publicly released it last year, Cytoscape goes back to 2016), I don’t believe that it is too mature to be usable. It’s definitely being used out there and we are actively updating and growing or docs and examples. Anything that’s not there yet, we are happy to help out in the forums.
In regards to the specific challenges you are facing:
The issue you are describing with the hierarchical layout sounds like the layout web workers failed to load. This is usually because the build tool doesn’t include the workers, or the browser doesn’t allow them. If you are using Vite as your build tool, there are some additional settings required for web workers to function properly, which you can find in our boilerplates here. You can also explicitly disable NVL from using web workers by setting the disableWebWorkers setting to false.
Changing the shape of the nodes is unfortunately not supported. You can change colors and sizes. There’s an example with all the different node styling option here.
Hope this helps, please let me know if you have any further questions or comments!