A Brief History of GNU Dr. Geo


Dr. Geo Ban


I started the design of Dr. Geo in March 1996. I was shocked my school can't afford an interactive geometry software with a modern user interface - windows and mouse based.

At first I wanted a software for PC developed with gratis developer tools.
The inspiration came from Cabri Geometer with its nice graphic user interface, feedback and macro-construction system. Geoplan was another great source of inspiration with its programmable key and some other original features. I was a regular user of this software as it was provided more or less freely to the school, but it was only working in keyboard mode. Windows versions appeared later. It is a great software anyway.

At this time, a friend showed me the DJGPP software suite to write C/C++ application. DJGGP is in fact a DOS port of the GNU GCC et al. software suite.

Therefore, the first version of Dr. Geo was a DOS software. I also integrated Unicode characters handling so Dr. Geo was the first interactive geometry software with Chinese messages. Later in 1999, I ported it to GNU/Linux as a GTK+ application, it was later rated as GNU software by Richard Stallman. For the curious, see its archived web site.

The DOS version was dropped for the GNU/Linux version. Last version included a Scheme interpreter for scripting and programmed sketches, this feature was developed in 2002, I presented it at the FOSDEM 2003, in February. While I was demonstrating what you can achieve with scripting in an interactive geometry software, the audience gave me an ovation, it was a great moment.
The last stable version was 1.1.0 and it is still available in most GNU/Linux distribution. GNU Dr. Geo was one of the first interactive geometry software - if not the first - to integrate a programming language for scripting and source code defined sketches.

Dr. Geo fans started to use the programming facilities to invent new use case of interactive geometry software. Several areas of mathematics and programming were explored:
  • geometry and programming [centomo2004a], [centomo2005a]
  • historical problems in mathematics [centomo2003a],
  • programming related to mathematics education [fernandes2005],
  • model of physical problems [centomo2004b], [ckhung2003]
  • recursive programming with fractal [freeduc2003]
Resulting sketches are still fully interactive, appealing to the learner eyes and they help to demonstrate powerful ideas of sciences.

In 2005 I started porting Dr. Geo to Smalltalk, first to Squeak/Etoys then later to Pharo Smalltalk. With Smalltalk, Dr. Geo becomes multi-platform and truly dynamic thanks to the Smalltalk nature as a reflective, self written language and its interactive programming environment.
This new version brings more possibilities:
  • it runs on OLPC XO laptop for kids, in 2007 [fernandes2007]
  • it is distributed as an universal portable app, for GNU/Linux, MacOSX and Windows.
  • it can be studied and modified from itself - This means Dr. Geo application is distributed with its source code and the source code of the environment and the tools to edit, to compile and to debug Dr. Geo code [busser2011]. Imagine Geogebra application distributed with its source code and the Java source code, Eclipse and the Eclipse source code...
  • it is programmable and scriptable in itself with an important tool set to study, to inspect, to write and to debug Dr. Geo code (including script and programmable sketch).
  • it comes with the session snapshot feature, fully portable.
  • it comes with pre-release update feature [fernandes2011]

This is the today version, with about 3 or 4 releases and 15-20 pre-releases a year.