Feature Overview


Download the Demo Application and explore for yourself!
It’s 100% free, requires no online account and does not collect any data.

Want some examples? Browse the Geodata Examples.

Technically inclined? The Developer Guide awaits you.

Ready to go? Jump over to the Getting Started section.

Missing a feature? Head on to the Roadmap.

Questions? Just write to info@tinman3d.com.

Key Features

Tinman 3D offers a unique set of features. Here are the key ones:

Global Terrain Data

Tinman 3D has its own highly optimized storage format for geodata rasters and giga-textures. Datasets support lossless compression, sparse data and dynamic updates. This takes away all groundwork when importing geodata; Tinman raster datasets will just grow and adapt as you import your data. Datasets have global coverage without singularities at the poles.

Unlimited Detail

The maximum size of a geodata raster or texture that Tinman 3D can use is 2^30+1 by 2^30+1 samples. In other words, Tinman 3D will easily manage a terrain texture or DEM of 1.073.741.825 by 1.073.741.825 samples for you. With these dimensions, the Earth can be captured at a ground sample distance of 9mm, globally.

On-the-fly Data

Datasets do not have to be provided as file-based rasters or online resources, data can also be computed at runtime. This is great if you have a procedural model that computes geodata or if you are using vector data to shape the terrain, for example roads.

Data Processing

With Tinman 3D, you become the curator: you choose each and every data source, no matter if it is a 3rd-party online service offering curated content or your own proprietary data. There are almost endless possibilities on how to combine, merge and adapt your data sources at runtime.

100% Offline / 100% Privacy

Tinman 3D can easily be run in a 100% offline environment: you do not need to register an online account, there is no online activation step, an internet connection is not required at runtime and you may provide all geodata as local or intranet data sources. Tinman 3D never collects any data about you, your computing environment or your customers.

Performance Control

You specify how much memory and CPU resources Tinman 3D shall use, and it will adhere to your specifications. The other way around, Tinman 3D will scale with your system and can utilize all memory and CPUs on a high-end multi-processor machine.

Code-X Framework

Tinman 3D is not just about terrain, it provides a sophisticated Software Architecture with a true polyglot development process, where you can code 95% or more of your software using well-tested and simple APIs and then can have that code being translated to other programming languages, such as C++ or Rust. Code-X produces 100% functional code which requires 0% review or fixing by human beings. The Tinman 3D SDK has been built with this workflow from the ground up, since 2012.

Simple Licensing

For each product built with Tinman 3D, a separate product license is required for distribution (one-time fee, perpetual, updates are optional). Developers need separate user licences (fee per licence period), to get access to email support, debug mode and additional development tools. With a source code license, you can secure your investment and your development efforts (one-time fee, updates are optional).

Terrain Mesh

Tinman 3D uses rasters as input for creating terrain meshes and textures.

The basic process of creating a terrain mesh from raster data is simple:

  1. The full resolution raster is stored using an efficient storage scheme.

  2. The application defines a selection criterion, the terrain engine chooses raster samples accordingly. This creates the reduced raster.

  3. The samples of the reduced raster are arranged into a graphics primitive (e.g. a single contiguous triangle strip). This yields a GPU-friendly triangulated irregular net (TIN).

Tinman 3D provides powerful implementations for these steps.

Table 1. Terrain mesh creation process
1. Full Resolution Raster 2. Reduced Raster 3. Terrain Mesh

raster full

raster reduced

raster mesh

The dynamic Continuous Level-Of-Detail (CLOD) mode of Tinman 3D is optimized for real-time applications.

The basic meaning of CLOD is that the whole terrain is represented by a single triangle mesh. The mesh triangles may differ in size, which makes it possible to capture different levels of detail at once.

A CLOD mesh is always contiguous, it does not have holes or T-junctions. Terrain meshes created by Tinman have an inherent quadtree structure, where each node represents a mesh sector. All terrain operations can be performed on the whole mesh or on specific sectors.

Using a CLOD approach for terrain rendering has various benefits:

Figure 1. Benefits of Continuous Level-Of-Detail (CLOD)
High Detail

CLOD can capture high local detail. If necessary, terrain mesh triangles can become very small - even down to a single pixel. This makes it possible to encode terrain data into mesh vertices which otherwise would have to be packed into textures. Effectively, this will save GPU memory and bandwidth.

Low Detail

Only few triangles are used to represent terrain regions with low detail. The spared triangles will be used to capture high detail instead.

Vertex Colors

The terrain surface texture can be modulated by using per-vertex diffuse colors, at any location, at any resolution. This makes dedicated modulation textures obsolete, which are limited in resolution anyway.

Vertex Materials

Surface materials can be encoded as per-vertex weights. Usually material weights are used to texture near terrain parts. Materials are also used to control placement of ground objects (grass, plants, rocks, etc.). Tinman encodes independent weighted combinations of four materials out of a palette 256 possible materials, for each vertex. This makes terrain detail textures obsolete.

Vertex Normals

A CLOD mesh accurately represents the terrain surface. Because of this, per-vertex normal, tangent and bitangent vectors are accurate enough for being used in shading and lighting computations. It is not necessary to use separate normal textures. Lightmaps can also be encoded as per-vertex data.

Smooth Mesh

Tinman performs cubic interpolation at runtime in order to create smooth terrain surfaces, independently of the resolution of the input terrain data. This provides high-quality per-vertex data, which in turn allows an application to use advanced rendering techniques (for example, displacement mapping using GPU tesselation) with great success.

Figure 2. Game-like terrain with some 3D foliage and a toy castle
Figure 3. 1m DEM + 50cm imagery using smooth texture atlas
Figure 4. Silent City of Rocks - NED 1/9" + GoogleMaps
Figure 5. High resolution reconstruction of mining area
Figure 6. High resolution reconstruction of Switzerland
Figure 7. High resolution reconstruction of the Moon
Figure 8. Global scene building #1
Figure 9. Global scene building #2
Figure 10. Physically-based rendering / glTF 2.0