Quiver mutation in JavaScript and Java/Mutation des carquois en JavaScript et Java

Back to main page


These applications implement quiver mutation (and cluster mutation for the Java version) as invented in joint work by Sergey Fomin and Andrei Zelevinsky in 2000, cf. their foundational article. Quiver mutation is related to a large number of subjects in mathematics and to Seiberg duality in physics, cf. for example section 6, page 21 of this article.

A quiver is an oriented graph: it has vertices (nodes) and arrows between the vertices. To mutate with respect to a vertex, click the vertex. To adjust the picture after mutation, drag the vertices. Note that arrows may lie one over the other.

Back to top

Quiver mutation in JavaScript

Canvas not supported

Click or drag nodes


Back to top

Quiver mutation in Java

The Java application has many more features. You can download it to your computer and run it without web access. For this, you need to have a Java runtime environment (JRE) installed. You run the application (without web access) by double-clicking it or via the command line:

java -jar MutationApp.jar

If you wish to use more than the 64 Mb of default memory, you can use

java -Xmx200m -jar MutationApp.jar

to allocate 200 Mb to the application (for example for computing large mutation classes). In the cluster menu, you can activate the cluster variables and observe how they change under mutations. This part of the application is based on the Java ring library from ring.perisic.com. In contrast to the JavaScript version, the Java application allows you to save, open and print quivers. Moreover, it can compute the complete mutation class of a given quiver (if it is finite).

Back to top

Example files

Here are some example files which you can open in the Java application:

Back to top

Source code

Here is a link to the source code of the Java application and here a link the non compiled source code of the applet in JavaScript. Additionally, for the application, one needs

Back to top


Thanks are due to Michel Van den Bergh and Andrei Zelevinsky for feedback on the Java application, to Bill Crawley-Boevey for suggesting the translation to JavaScript and to Laurent Demonet for help in making it work on the iPad.

Back to top


Back to top

Back to main page

April 6, 2018