|  |  | 16 History and acknowledgments

# 16 History and acknowledgments

Many people have contributed with ideas, inspiration, and moral support over the years that I wrote and used Ipe. Based on my experiences with Idraw, XFig, and Jean-Pierre Merlet's JPDraw, I wrote the first version of Ipe at Utrecht University in the summer of 1993. It used IRIS-GL and Mark Overmars' FORMS library, and run on SGI workstations only. Due to popular demand, I finally gave in a year later, and spent two weeks in the summer of 1994 to teach myself Motif and to rewrite Ipe to run under the X window system. Unfortunately, two weeks were really not enough, and the 1994 X-version of Ipe has always been a hack. I didn't have time to port the code that displayed bitmaps on the screen, it crashed on both monochrome and truecolor (24-bit) displays, and was in general quite unmaintainable.

These two first versions of Ipe were supported by the Netherlands' Organization for Scientific Research (NWO), and I would never have started working on it without Geert-Jan Giezeman's PLAGEO library. For testing, support, and inspiration in that original period, I'm grateful to Mark de Berg, Maarten Pennings, Jules Vleugels, Vincenzo Ferrucci, and Anil Rao. Many students of the department at Utrecht University served as alpha-testers (although I would still like to find out who coined the phrase "the cute little core-dumper").

I gave a presentation about Ipe at the Dagstuhl Workshop on Computational Geometry in 1995, and made a poster presentation at the ACM Symposium on Computational Geometry in Vancouver in the same year. Both served to create a small but faithful community of Ipe addicts within the Computational Geometry community.

Ipe proved itself invaluable to me over the years, especially when we used it to make all the illustrations in our book "Computational Geometry: Theory and Applications" (Springer 1997, with Mark de Berg, Marc van Kreveld, and Mark Overmars). Nevertheless, the problems were undeniable: It was hard to compile Ipe on other C++ compilers and it only worked on 8-bit displays. It is only due to the efforts of Ipe fans such as Tycho Strijk, Robert-Paul Berretty, Alexander Wolff, and Sariel Har-Peled that the 1994 version of Ipe continued to be used until 2003.

I was teaching myself C++ while writing the first version of Ipe, and it shows--Ipe 5 is full of elementary object-oriented design mistakes. When teaching C++ to second-year students at Postech in 1996 I started to think about a clean rewrite of Ipe. My first notes on such a rewrite stem from evenings spent at a hotel in Machida, close to IBM Tokyo in July 1996 (the idea at that time was to embed Ipe into Emacs!). It proved impossible, though, to do a full rewrite next to teaching and research, and nothing really happened until the Dagstuhl Workshop on Computational Geometry in 2001, where Christian Knauer explained to me how he uses Pdflatex to create presentations. I realized that PDF was ideally suited for a new version of Ipe. By parsing the PDF output of Pdflatex, Ipe can obtain a PDF representation of text objects, including all the necessary fonts. The advent of scalable Latex fonts means that Ipe can then create a scalable PDF or Postscript figure including the processed text information. Directly after the workshop I implemented a proof-of-concept: I defined the Ipe XML format, wrote "ipe5toxml" (reusing my old Ipe parsing code) and a program that runs Pdflatex, parses its PDF output, extracts text objects and font data, and creates a PDF file for the whole Ipe figure. This was only possible, of course, due to the existence of Hàn Thê Thàn's Pdflatex and of an open-source PDF parser in the form of Derek Noonburg's Xpdf.

Now all that remained was to rewrite the user interface. Since there is plenty of demand for both Windows and Linux versions, I wanted Ipe to run on both operating systems, and had to use a toolkit supporting both. I had experimented with V, FLTK, and Qt over the years, and had used V and Qt in teaching. On the other hand, FLTK is small and compact, free software on both Windows and Unix, and smells pleasantly like the original FORMS library from which it is derived--the same that I had used in Ipe 2 in 1993. I actually started writing an FLTK main window and canvas for Ipe, until Sariel Har-Peled stated with authority that Qt was the only sensible choice. Fortunately, I had been able to purchase a Windows developers license for Qt using funding from the Hong Kong Research Grants Council. What a pleasure to work with Qt, compared to my Motif experiences from 1994!

Finally, Mark de Berg and the TU Eindhoven made it possible for me to take some time off from teaching and research. The final design changes were made during the Second McGill-INRIA Workshop on Computational Geometry in Computer Graphics at McGill's Bellairs Research Institute, and much inspiration is due to the atmosphere at the workshop and the magnificient cooking by Gwen, Bellair's chef.

For code actually used in Ipe, I wish to thank

- Hàn Thê Thàn for Pdflatex,
- Derek Noonburg for Xpdf,
- Werner Lemberg and the rest of the Freetype team for Freetype 2,
- Trolltech for finally seeing the light and making Qt 4 open-source on all platforms.

Looking at the history described briefly above, it is clear that the Dagstuhl series of workshops has always been a major influence in the existence of Ipe. It is for that reason that I released Ipe 6.0 formally at the Dagstuhl Workshop on Computational Geometry in March 2003.

|  |  | 16 History and acknowledgments