What is it about

Keywords: Computational Geometry, Programming Environment, Algorithm Animation, Dynamic Visualization, Voronoi Diagram, Delaunay Triangulation, Convex Hull, Euclidean Minimum Spanning Tree

GeoLab (which stands for Computational Geometry Laboratory) was developed at the Institute of Computing at UNICAMP (State University of Campinas) as a programming environment for implementation, testing and animation of geometric algorithms. GeoLab was conceived to be a tool for the working researcher or a group of them, since at its root lie the use of shared libraries of algorithms and an incremental approach to aggregating new types of geometric objects, data structures and extensions accessed through dynamic linking.

GeoLab is written in C++ and makes extensive use of object oriented programming for a hierarchical modeling of geometric objects and of geometric algorithms. It currently has about 40 algorithms in its dynamically linkable libraries which are made up of roughly 45,000 lines of C++ code (plus an additional 30,000 lines for
the environment itself).

Animation Modes
Two animation modes supported by GeoLab are illustrated in the accompanying video. The first mode is called dynamic move. It basically animates the geometric objects produced by any given algorithm as the input undergoes changes in real time conducted interactively by the user manipulating the mouse. No changes in the code of the algorithms are required for this mode to operate. This mode serves well the purpose of illustrating the relationships between input data and output geometric constructs, which is of great value for teaching computational geometry.

The second mode, which is truly characterized as algorithm animation, requires the inclusion of code for graphical display of the geometric actions performed by an algorithm. In order to ease this task, a library of graphical routines, the "GeoLab Animation Toolkit," is provided so that programmers need not use the lower level Xlib functions.

Key Benefits

bullet A graphical and interactive programming environment for the manipulation of geometric models;
bullet Mechanisms for the inclusion of (dynamically linked) new algorithms and external geometric objects;
bullet Support for algorithm animation;
bullet Support for analysis and debugging;
bullet Tools for handling secondary storage;
bullet Input generators for program testing.


bullet You may read about GeoLab in:
  1. This paper: P. J. de Rezende and W. R. Jacometti. GeoLab: An Environment for Development of Algorithms in Computational Geometry. Proceedings of the 5th Canadian Conference on Computational Geometry. Waterloo, Canadá: University of Waterloo, 1993. p. 175-180.
    Available here in this report: P. J. de Rezende and W. R. Jacometti. GeoLab: An environment for development of algorithms in computational geometry. Technical Report 26/93, Institute of Computing, UNICAMP, 1993.
  2. This short paper: P. J. de Rezende and W. R. Jacometti. Animation of Geometric Algorithms using GeoLab. In: Proceedings of the 9th ACM Simposium on Computational Geometry. New York, EUA: Association for Computing Machinery, 1993. p. 401-402.
    Available here in this report: P. J. de Rezende and W. R. Jacometti. Animation of Geometric Algorithms using GeoLab. Technical Report 101a, Systems Research Center (DEC/SRC), 1994, p. 22-26.
  3. This video: P. J. de Rezende and W. R. Jacometti. Animation of Geometric Algorithms using GeoLab. In: Video Review of the 9th ACM Simposium on Computational Geometry.
    Available as: Technical Report 101b, Systems Research Center (DEC/SRC), 1994.

License Terms

bullet Open Source License

GeoLab is available under an Open Source license. More exactly, it is under the GPL License. If you intend to modify or write your own software based on components of GeoLab , make sure you read the GPL license and abide by the terms therein.


bullet GeoLab is available here: Readme, Copyright, GeoLab.pdf, How to compile, Source Code=tar.gz.
bullet As well as at:

Contact Information

If you have questions not answered in these pages, feel free to contact us. However, we should point out that all the documentation we have available is posted here.

People involved
  • Pedro J. de Rezende
  • Welson R. Jacometti
  • César N. Gon
  • Laerte F. Morgado
  • Electronic mail
    General Information:
    Postal address
    Institute of Computing, UNICAMP, Campinas SP, Brazil
    +55 19 3521-5860
    +55 19 3521-5847


    (c) 1998-2008 Pedro J. de Rezende. Last modified: 2008.08.06.