Description
Using JavaScript, this method creates an interactive visualization of a simplicial complex in a modern browser. While viewing the simplicial complex, the user has the ability to manipulate and run various tests. Once finished, the user can export the finished result back to the Macaulay2 session.
The workflow for this package is as follows. Once we have loaded the package, we first open a port with openPort for Macaulay2 to communicate with the browser. Once a port is established, define an object to visualize. In this example we could use the command openPort"8080" before or after we define the following simplicial complex.
i1 : R = ZZ[a..g]
o1 = R
o1 : PolynomialRing
|
i2 : D = simplicialComplex {a*b*c,a*b*d,a*e*f,a*g}
o2 = simplicialComplex | ag aef abd abc |
o2 : SimplicialComplex
|
At this point we wish to visualize D. To do this simply execute H = visualize D and browser will open with interactive image. You can view this image in the link below.
Visualize Simplicial Complex example
Once finished with a session, you can keep visualizing. For example if you were to say H = visualize D, once you ended the session, the last simplicial complex on the screen would be assigned to H. After running various computations on this simplicial complex, you can then visualize it once more with the visualize method. You can keep using this method until the port is closed with closePort or Macaulay2 is restarted.
Browser Menu Options
On the side of the browser will be several options to interact with the simplicial complex using the SimplicialComplex package. Below is a brief overview of the options.
-
Force Variables: The 'charge' slider will force the vertices to repel or attract each other while the 'links' slider increases and decreases the length of the edges.
-
Enable Editing: In the browser, you can edit the simplicial complex (add/delete vertices or edges) by clicking Enable Editing. For example, in order to remove the edges {0,1} and {1,3} click on 'Enable Editing' and select the edges and press delete on the keyboard. You may also add vertices and edges with the mouse/trackpad. When editing is enabled, you can move the vertices around by holding down the shift key. Further, to create a face, hold down the 'f' key and select three distinct nodes.
-
Hide Labels: Removes the labels from the vertices.
-
Highlight faces: Allows you to see the connecting faces when a vertex is selected.
-
Reset Nodes: When you move a vertex, it will pin it to the canvas. If you have pinned a node to the canvas, you can undo this process by reseting the nodes. Clicking this will reset all nodes.
-
Turn off force: The force is what creates the charges on the nodes. Turning this off will make the vertices not repel each other.
-
Generate TikZ code: Clicking this will generate the TikZ code for a black and white version of the simplicial complex that is being viewed. You will then have to copy this to the clipboard by clicking a new button. The TeX file will only need '\usepackage{tikz}' in the preamble. If you decide you want to modify the simplicial complex, feel free. All you need do in order to get a new TikZ code is click on 'Generate TikZ code' once more, and then click the button. This button will look the same, but it will be a new code.
-
Boolean tests: Clicking this will pull up a submenu of boolean tests supported by the SimplicialComplex package. Clicking on these tests will send a request to Macaulay2 to calculate the answer for the current simplicial complex on the screen. Warning: If your simplicial complex is too large, clicking a menu item could take a very long time. In order to cancel the process you need to kill the session of Macaulay2 with 'Ctrl+c+c' in the instance of Macaulay2.
-
End session: When you are finished editing, you can end the session and send the current simplicial complex to Macaulay2. The output of visualize D is the simplicial complex on the screen when end session is clicked.