Lattice Drawing Component

Ralph Freese

This is the site of my lattice drawing component, a java component for drawing lattices. There are instructions at the end of this page for getting the source code. Here is the link to the api documentation.


  • An applet demonstating how it works.

  • John Snow's javascript lattice drawer. The algorithm he uses is described in his paper in the references below.

Main application:

This component is used in my Universal Algebra Calculator for drawing congruence lattices, subalgebra lattices and algebras that have a natural order.

This site also features some simple applications which use this drawing component. One is an application for drawing ordered sets obtained from a collection of partitions to be used with Mel Janowitz's cluster analysis. The other illustrates some of the ideas of Formal Concept Analysis.

A program for Mel Janowitz's cluster analysis:

(If the Launch button doesn't work, try this link.)
Two partition poset files that can be used with the program:

A simple program for concept analysis:

(If the Launch button doesn't work, try this link.)
A sample context file, fig1_17.cxt
To get this you should right click on the link and choose "save link as".
It should suggest the name fig1_17.cxt but it may be fig1_17.cxt.txt.
Delete the .txt from the name.


Source Code and jar file

  • LatDraw.jar
  • source (as a tar file)
  • Directions:
    • untar the file and cd to LatDraw2.0/src and do
    • ant dist
    • cd ..
    • java -jar dist/lib/LatDraw.jar
    • or, if you are interested in concept lattices, do
    • java -jar dist/lib/LatDraw.jar examples/fig1_17.cxt
    • Remember this sample app is just meant to be an illustration.

Explanation of the drawing algorithm

  • R. Freese, Automated Lattice Drawing, Lecture Notes in Artificial Intelligence, 2961, Springer, Berlin, 2004, 112-127.
  • B. Loft and John Snow, A genetic algorithm for drawing ordered sets, Texas College Mathematics Journal. 3:10-26.