Running SaVi and Geomview under Windows

SaVi and Geomview run under a unix environment. If you only have Microsoft Windows to hand, you can run SaVi and Geomview under Windows by providing the unix functionality that they need.

There are a number of different ways to do this:

  1. Run Ubuntu or Debian Linux in a virtual machine under VirtualBox or similar, and install packages there.
  2. On Windows 10 or 11, you can install Microsoft's Windows Subsystem for Linux (WSL), install Ubuntu to live alongside Windows, and install the Xming X server, and install the Ubuntu packages.
  3. Install Cygwin to run unix applications alongside Windows applications, and install packages there.
For any of these, you can install the available Geomview and SaVi packages along with a range of useful tools, and even compile the latest SaVi beta releases from source.

Installing under VirtualBox

You can install the free VirtualBox application in Windows, install a debian-based Linux such as Ubuntu from a downloaded ISO disk image under VirtualBox, then type in a terminal window:
sudo apt-get install geomview
sudo apt-get install savi
geomview -run savi &

(These are also in the Synaptic package manager). Do turn on 3D acceleration in VirtualBox.

Installing under Windows 10

Windows 10 and 11 support the Windows Subsystem for Linux (WSL). Search the Microsoft Store for 'WSL', install it, then install Ubuntu from the Store. Alternatively, you can install WSL from the command line. With earlier versions of WSL you needed to add graphical X server functionality for Geomview, by installing e.g. the free Xming, and running it. This is no longer necessary on the latest WSL.

Once WSL and Ubuntu are installed, you can open Ubuntu from the Search box to get a unix bash command prompt, where you can type:

sudo apt-get install geomview
sudo apt-get install savi

echo $DISPLAY
If no display is set, do:
export DISPLAY=:0

then finally
geomview -run savi &

Installing under Cygwin

Geomview and SaVi can now be installed from Cygwin's own graphical installer. This is much easier than attempting to compile Geomview yourself. This is available for both 32-bit and 64-bit Cygwin. Cygwin's own installer instructions will get you started.

then do:
geomview -run savi &

Compiling Geomview under Cygwin

Cygwin's own installer instructions will get you started.

These instructions are primarily for 32-bit Cygwin. Note that Cygwin and its packaging system is ever-changing. These instructions attempt to be useful, but may not reflect recent Cygwin changes. Corrections are welcome. While Cygwin can be used to install on versions of Windows earlier than Windows 10 Anniversary, a Linux virtual machine under e.g. VirtualBox is preferable, unless memory is tight.

64-bit Cygwin, introduced in March 2013, is much newer, and has some differences. In August 2013, OpenGL did not work on 64-bit Cygwin for some time, and SaVi and Geomview could not communicate under 64-bit Cygwin. 32-bit Cygwin was preferable. You can build geomview on 64-bit Cygwin by using the replacement instructions:
MOTIFLIBS='-lDtPrint -lMrm -lXm -lXt -lXmu -lXp -lXext -lX11 -lSM -lICE'
./configure --with-motif=/usr --with-opengl=/usr CPPFLAGS="-DglBindTextureEXT=glBindTexture -DglDeleteTexturesEXT=glDeleteTextures"
make
Installing the Cygwin package is far easier.

Note that compilation on Cygwin can fail if Windows anti-virus applications interfere with autoconf's detection tests. Cygwin refers to this as the BLODA (Big List of Dodgy Apps) problem.

Note: the Cygwin developers made major changes to their X server distribution in November 2008. Prior to those changes, Cygwin's X server supported hardware acceleration, and Geomview use was robust and reliable. After those changes, robustness, reliability and hardware acceleration have suffered. You can launch geomview with geomview -noopengl (or configure before compiling without specifying --with-opengl) for slow reliability. In April 2016 OpenGL broke, but was fixed in an update to llvm.

Questions about installing Geomview under Cygwin can be taken to the Cygwin and Geomview users mailing lists.

  1. Install cygwin and its packages using the net installer you can download from http://www.cygwin.com/. Along with all the packages installed by default, you will need to install a minimum of the following packages. You can also search package contents for needed files to check that you have the packages you need for a missing file:
    Under the Devel category:
    • byacc (only if you're a developer planning on building from Geomview's CVS repository. ln -s /usr/bin/byacc /usr/bin/yacc)
    • flex (for developers)
    • gcc-core
    • gcc-g++ (cc1plus is used)
    • make
    • zlib-devel and source (optional for both Geomview and SaVi)
    Under the Graphics category:
    • opengl (if building with OpenGL, if available)
    Under the Libs category:
    • libGL-devel and source
    • libjpeg-devel and source
    Under the Publishing category:
    • Optional if problems building documentation at end: texlive-collection-basic, texlive-collection-fontsrecommended and texlive-collection-latex for fonts necessary for documentation. Fortunately, the pdf documentation is now built after the geomview binary is, so you're not completely at the mercy of your TEX install.
    Under the Tcl category:
    • tcl-tk and source (needed for some Geomview modules and for SaVi.)
    Under the Text category:
    • tex
    • Optional if problems building documentation at end: texinfo-tex for texi2dvi - you may have to set TEX=/usr/bin/tex
    Under the X11 category:
    • libGLU-devel and source (if building with OpenGL)
    • libX11-devel and source - also needed for Tcl/Tk and so for SaVi.
    • libXm-devel and source - this provides the needed Xm/Xm.h. (libXm2 is no longer used.)
    • motif (this has replaced the alternative lesstif for Motif support)
    • xinit (which loads in all the necessary xorg server components as dependencies)
    • xterm for terminal sessions.

    If also building SaVi, under the Tcl category:
    • tcl-tk libraries for use with SaVi. These libraries are also used by other Geomview modules. Although SaVi does not require X itself, the tcltk libraries that it depends on do, so you will also need to install libX11-devel, as noted above, if it has not already been installed, in order to compile SaVi with Tcl/Tk.
      Do not attempt to install Tcl/Tk yourself. Use the option in the Cygwin installer.

  2. Launch cygwin, and prepare to type commands at its bash shell prompt. As Geomview requires X to run, it makes sense to launch the X server and work in an xterm window, which provides ctrl-mouseclick menu configuration options for left-, right-, and middle-click. (These options can be repeated in a menubar at the top of each xterm.) This should be an option in the Start menu if you install menu shortcuts, or from the system tray icon. (You may need to alter e.g. trackpoint preference in the Mouse control panel to access the ctrl-middle-click menu. Middle-click is used for pasting highlighted text, so you want a three-button mouse.) If you have launched Cygwin's bash shell, type startx in the cygwin window to launch the X server. This will load a new Cygwin icon into the system tray at the bottom right of the screen, in the Windows taskbar. Right-click on that icon and select System Tools/Xterm to bring up an xterm window that you can now use to type all commands in. (If the startx command fails, try xinit -- -multiwindow.)
  3. Create a directory within in your Cygwin home directory that you can work within: Cygwin lives under C:\cygwin or C:\cygwin64, and your unix home directory is /home/username (or C:\cygwin\home\username on 32-bit cygwin). The Windows filesystem is accessible from Cygwin under /cygdrive/c etc.)
  4. Download the Geomview 1.9.5 release. This release builds easily with modern compilers, and is far more robust in pipe and I/O communications than the previous 1.8.1 release. With SaVi, this can make working with piping of cone and footprint LISTs to Geomview much more reliable. (Should you choose to pull a more recent Geomview from CVS, you will need to run the top-level reconf script to attempt to generate some files already built in official releases. reconf requires the autoconf, automake, and libtool development tools - see the README.cvs file.) Use the 1.9.5 release!
  5. Move the downloaded geomview tarball into the directory you have created and unpack e.g. geomview-1.9.5.tar.gz with:
    tar xfvz geomview-1.9.5.tar.gz
    to create a local folder. That folder becomes the working directory for the following instructions.
    Alternatively, you could pull a Geomview CVS snapshot from the sourceforge CVS head. You will need to run ./reconf to generate a configure file and Makefiles before running ./configure and make as detailed below. ./configure and Makefiles are not stored in CVS.
  6. This step is optional and only needed to use all of the interesting Geomview modules that are also available with gve-module: get xforms (from http://savannah.nongnu.org/projects/xforms where you download latest-stable) and save a copy in the geomview directory. xforms requires libjpeg-devel and libXpm packages installed. Unpack xforms with e.g.: in the geomview-1.9.5 directory. Then do: xforms is not required by SaVi or base Geomview.
  7. Build a local copy of Geomview with the following commands: If that is unsuccessful, you can try the more detailed: configure and make both take a while - be patient.
  8. If you haven't already, click on Cygwin's xterm icon in the Start Menu program list, or execute startx to spawn the X server and desktop display and get an xterm console window. (An alternative is xinit -- -multiwindow -clipboard for better integration with Windows.)
    Once X is running, look for the new icons in the system tray. Right-click the Cygwin XDG icon and select the XTerm option from the System Tools menu. Now you have an xterm on screen, run:
    ./geomview
    in the spawned xterm window that knows it's part of the X display, rather than in Cygwin's initial console window, to check that Geomview works.
  9. You can then put a working copy of Geomview in /usr/local if you desire, with:
    make install
  10. Unpack and make a copy of SaVi in a local directory. See the instructions in SaVi's README file and on building SaVi 1.4. You will be typing:
    make ARCH=cygwin
    in SaVi's topmost directory.
  11. Run Geomview and SaVi together from the Geomview directory with:
    ./geomview -run $SAVIDIR/savi
    (replace $SAVIDIR with the absolute location of the SaVi directory.)

Though SaVi could be ported to Microsoft Windows and use a native Tcl/Tk interpreter there, there is no native Geomview for Microsoft Windows, so SaVi would have to be modified to output to a different 3D renderer or directly to OpenGL. These separate approaches let SaVi and Geomview run in the Microsoft Windows environment.

These instructions are based on original instructions and work by Matthias Foehl and Chris Hoffman, and advice from Belinda Marchand, Will Wray and Brad Barber, with thanks.


Lloyd Wood (lloydwood@users.sourceforge.net)
this page last updated 5 July 2017