The Program

    The 'Dragon' program was developed for Professor Strichartz of the Cornell Department and Mathematics in Spring of 2001 by Theodore Kim and Scott Bailey. The program runs under Windows 98, 2000, or NT 4, and a 3D accelerator card is strongly recommended. If you are currently running a copy of Windows 95 purchased after 1997, there is a good chance that the program will still run.

    Both the Windows program and the source code can be downloaded here:

    The source code was written in C++ using Visual C++ 6, and uses the Win32 and OpenGL APIs. The VC6 workspace file is included in the download.

Using the Program

    The program consists of three windows.

    1. The approximation window:

2. The interior window:

3. The toolbar window:

    When the program starts, there are only two triangles in the approximation window, and the interior window is empty:

    The view can be changed by clicking and dragging the left mouse button within either window.

    The triangle in green is the currently 'active' dragon. The active dragon can be split to its next level by pressing the 'Split' button on the toolbar. Clicking 'Next Dragon' on the toolbar will switch the 'active' dragon to the triangle on the right and clicking again will switch back.

    The toolbar has the following features:
    • Zoom In - Zoom into the center of the current view.
    • Zoom Out - Zoom out from from the center of the current view.
    • Next Dragon - Toggle which dragon to split.
    • Split - Divide the active dragon to its next level.
    • Save - Save the current view and dragons.
    • Load - Load a new view and dragons.

    The toolbar also gives the following information:

    • Dragon 1 - The number of splits performed on the left dragon.
    • Total 1 - The number of triangles being shown from left dragon.
    • Dragon 2 - The number of splits performed on right dragon.
    • Total 2 - The number of triangles being shown from right dragon.
    • Idle - Status bar that shows the current operation being performed.
    • Top - The Y coordinate of the top edge of the window.
    • Bottom - The Y coordinate of the bottom edge of the window.
    • Left - The X coordiante of the left edge of the window.
    • Right - The X coordinate of the right edge of the window.


    The Dragon program is still not very stable, so please save all your other work before running.

    For performance reasons, only 50,000 triangles can be shown for each dragon at any time. In practice, this has shown to be a reasonable ceiling. If you find that you have exceeded 50,000 triangles but still wish to split further, zoom into your region of interest and press the 'Split' button. The triangles that do not contribute to your current view will be deleted, allowing further splitting of the visible triangles. (Note that the triangles that will not contribute to the view differs slightly from just the triangles that are not in view.)