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.
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).
Here are some example files which you can open in the Java application:
Examples of quivers of exceptional cluster type (the last two are
associated with an affine respectively an elliptic root system):
E6.qmu, E7.qmu, E8.qmu, E8+.qmu, E8++.qmu.
Mutation class of E8++ (quivers up to isomorphism of the
underlying graphs): E8++mutClass.qmu
(530 k).
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
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.