Caxman Innovation Shop Caxman Innovation Shop


3.8.1 GoTools


3.8.1 GoTools


A one-, two- and tri-variatespline library targeting CAD, Isogeoemtric-mdoeliing and big data modelling based on splines and elementary surfaces. It is as far as we know the only spline library with this wide range of dimensionalites addresssed.

GoTools is a collection of C++ libraries related to geometry targeting Computer Aided Design (CAD), Isogeometric Analysis (IgA) big data approximation & analysis, and Additive Manufacturing
GoTools includes algorithms for creation geometric object in explicit (parametric) and implicit form, interrogation of such objects as well as calculation of the spatial relations between objects (e.g., calculating intersection between objects). GoTools also include data structures for building structures of geometric objects (b-rep, and trimmed tri-variate spline blocks).
GoTools started out as a tool targeting the needs of Computer Aided Design (CAD)

Since 2008 GoTools have been extended to support IsoGeometric Analysis

From 2013 approximation and analysis of big data have been added to GoTools
In CAxMan from 2015 extension to GoTools have been made to support Additive Manufacturing focusing on tri-variate spline representations
Interoperability to b-rep CAD is support by the use of Jotne ICT's Express Data Manager™ (


GoTools is the name of a collection of C++ libraries related to geometry. The libraries are organized as a core module with additional modules added on top. The core module contains generic tools and spline functionality. The additional modules contain functionality for intersections, approximative implicitization, parametrization, topology, and more.

This toolkit contains the modules GoTools Core, Parametrization, Implicitization, Intersections, Igeslib, Trivariate, TrivariateModel, CompositeModel, Topology, Viewlib, IsogeometricModel, LRsplines2D and QualityModule. Also included is SISL, TTL and Newmat for convenience.

The GoTools geometry/spline toolkit was written by the Geometry Group at SINTEF ICT, Department of Applied Mathematics.

Newmat was written by Robert Davies,


  • CMake - see:
  • Linux: Tested with gcc version 4.8. Older versions are not supported.
  • Windows: Tested with Visual Studio 2015. Older versions are not supported.


  • PugiXML
  • JsonCpp
  • Qt4/Qt5 (required for viewlib only)
  • OpenGL (required for viewlib only)
  • GLUT (required for viewlib only)

Optional dependencies (disabled by default):

  • Boost (required for running the test suite)
  • OpenMP

A few comments on the current distribution:

  1. You can generate doxygen information by typing 'doxygen' in the base directory.
  2. In order to compile/install the library, you need to use CMake. See the INSTALL file.
  3. GoTools provides a file format: g2. Various test applications produce g2 files as output. See the Doxygen generated documentation for more information on this format. The viewer application 'goview' is provided in Viewlib in order to view g2-files.


CaxMan D2.2 - IGA based Shape Representation (Initial Version)
GoTools Homepage
GoTools - Readme File
GoTools - SINTEF Geometric Tools


GoTools - SrcCode on github
SINTEF Collection of Geometric Tools

Additional Information

Originator: Tor Dokken (SINTEF)
Technology Readiness Level: 8
Environment: 2 SaaS