Francy is a package for GAP and provides a framework for Interactive
Discrete Mathematics.
Unlike xgap, Francy is not linked with any GUI framework and instead,
this package generates a semantic model that can be used to produce a
graphical representation using any other framework / language.
There is a JavaScript implementation of the graphical representation
that works on Jupyter, embedded in a Web page or as a Desktop Application
(e.g. using electron).