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

Back to main page

### Explanations

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.

### Quiver mutation in JavaScript

Canvas not supported

Click or drag nodes

#### Instructions

• Press "New quiver ..." and enter side length 3. The resulting quiver can be transformed into a tree of type D6 in four mutations.
• Press "New quiver ..." and enter side length 4. The resulting quiver cannot be transformed into a quiver without oriented cycles. This can be proved either using representation theory (cf. section 2.3 of this article) or using brute force: Indeed, it turns out that the mutation class of this quiver is finite. It contains 5739 quivers up to isomorphism and can be conveniently computed using the mutation application in Java below. One then checks that each of these quivers contains at least one oriented cycle. The quiver can be transformed into a quiver containing a double arrow in eight mutations. It cannot be transformed to a quiver containing arrows of multiplicity 3 or greater (indeed, it is not hard to check that this would imply that its mutation class is infinite). This quiver is associated with the elliptic root system of doubly extended type E8.
• Press "New quiver ..." and enter side length 5. The resulting quiver has an infinite mutation class. To convince yourself of this fact, press "Random ..." to perform 15 random mutations. Repeat this several times by pressing "Repeat random". Chaos!
• You can experiment with quivers of your own invention. Make them by adding/deleting nodes and arrows in the given examples (delete arrows by adding arrows in the opposite direction!).

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).

### Example files

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

### 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

### Acknowledgments

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.

April 6, 2018