This project would probably be compatible, since the js portion is just written by a jinja template. Python is just used to build the actual graph data and format it for visjs.
The data attribute is just a dictionary though, so you could really initialize it with anything. I just wrote the schema for visjs.
Curious about the performance of d3 vs vis. I will probably end up doing some rudimentary physics calculation before I write the graph, bit being able to avoid that would be nice.