GNU Gama

GNU Gama logo 
Geodetic measurement of the
displacement of metro tunnels on route B in Krizikova station 

GNU Gama package is dedicated to the adjustment of surveying networks. It is intended for use with traditional geodetic surveyings which are still used and needed in special measurements, e.g. underground or high precision engineering measurements (engineering geodesy), where the Global Positioning System (GPS) cannot be used.

Adjustment in the local Cartesian coordinate systems is fully supported by the command-line program gama-local that adjusts surveying (free) networks of observed distances, directions, angles, height differences, 3D vectors and observed coordinates (coordinates with given variance-covariance matrix). You can use any orientation of XY axes and observed directions.

Adjustment in global coordinate systems is supported by gama-g3 program for observed 3D vectors, distances and coordinates.

example of small
geodetic network


For parsing XML documents Gama uses XML parser expat, originally written by James Clark. If for any reason expat library is not installed on your system, Gama still can be compiled and built with old version 1.1 of expat, that is distributed with Gama (make dep-expat-1.1; make). XML parser expat is not part of GNU Gama, but is used with GNU Gama.

GNU Gama requires adjustment input data in XML format, see documentation for details.


GNU Gama can be found in the subdirectory /gnu/gama/ on any of GNU FTP server mirrors

All archive files on GNU FTP server mirrors are gpg signed. Read how to verify the signature files.


To get anonymous read-only access to the GIT repository for the latest GNU Gama source, issue the following command

git clone git://

If you are interested in a Qt based GUI Qgama, build the application by following the steps given below.

git clone git://
cd  qt
git clone git://

mkdir build
cd build

export CMAKE_PREFIX_PATH=~/Qt/6.0.1/gcc_64/  # export path to Qt
cmake .. -G Ninja
cmake --build .

The collection of sample networks is available separately. To checkout the gama-local examples from GIT use the command

git clone git://


The manual is available online in several formats.

Related projects


Qgama is a Qt application for adjustment of geodetic networks with database support, where the database can be a simple SQLite3 flat file, used for storing geodetic network data, or any full-featured relational DBMS with Qt driver available like PostgreSQL or MySQL. It is build on the GNU gama adjustment library

Qt based GUI Qgama

Binary builds for Windows

Contact us

GNU Gama has two moderated mailing lists:

If you prefer, you can always directly contact Aleš Čepek.