Introduction
Welcome to the Tinman 3D Software Development Kit, you are reading the technical documentation.
- If you have any questions or comments, please write to:
- To obtain technical support, please refer to Support or write to:
- For questions about licensing, please refer to Licencing and Pricing or write to:
- You can find our online issue tracker here:
The screenshots below show the Demo Application, rendering the geodata that is available from the Geodata Examples:


Overview
Tinman 3D is a collection of software libraries and stand-alone tools. Its purpose is to analyze, process and visualize 3D terrain data.
The stand-alone tools can be used by end-users to explore and use the features of Tinman 3D:
The software libraries can be used by developers to incorporate features of Tinman 3D into existing applications. They are available in separate editions, which can be used independently:
-
C# (language version 4)
-
C++ (ISO/IEC 14882:2011)
Framework
Platform Abstraction
Tinman 3D makes use of a compact platform abstraction layer, and contains ready-to-use implementations for popular computing environments:
Platform | C# SDK | C++ SDK | Web SDK | Processor | Demo | Workshop |
---|---|---|---|---|---|---|
Windows |
yes [1] |
yes [2] |
- |
yes |
yes |
yes |
Linux |
v1.0 RC4 [3] |
v1.0 RC4 [3] |
- |
v1.0 RC4 |
v1.0 RC4 |
- |
iOS |
v1.0 RC4 [3] |
v1.0 RC4 [3] |
- |
v1.0 RC4 |
v1.0 RC4 |
- |
Web |
- |
- |
v1.0 RC5 |
- |
v1.0 RC5 |
- |
Android |
v1.0 RC4 [5] |
- |
- |
- |
v1.0 RC4 |
- |
iOS |
v1.0 RC4 [5] |
- |
- |
- |
v1.0 RC4 |
- |
You are not limited to the provided PAL implementations; it is possible to implement your own ones or to modify the existing ones (see Source Code Licence). |
Graphics Abstraction
Tinman 3D routes all rendering through a slim graphics abstraction layer (GAL, see IGraphicsContext). The SDK contains ready-to-use implementations for popular rendering APIs:
Platform | DirectX 9 | DirectX 11 | DirectX 12 | OpenGL 4.1 | OpenGLES 3.0 | Vulkan 1.1 | WebGL 2.0 |
---|---|---|---|---|---|---|---|
Windows Desktop |
yes |
yes |
v1.0 RC4 |
v1.0 RC4 |
- |
planned |
- |
Linux Desktop |
- |
- |
- |
v1.0 RC4 |
- |
planned |
- |
iOS Desktop |
- |
- |
- |
v1.0 RC4 |
- |
planned |
- |
Web Mobile |
- |
- |
- |
- |
- |
- |
v1.0 RC5 |
Android Mobile |
- |
- |
- |
- |
v1.0 RC4 |
- |
- |
iOS Mobile |
- |
- |
- |
- |
v1.0 RC4 |
- |
- |
You are not limited to the provided GAL implementations; it is possible to implement your own ones or to modify the existing ones (see Source Code Licence). |
Application Framework
Tinman 3D includes an application framework (see IApplication), which is used by several plug-and-play application widgets (see IWidget). These components are built upon the low-level API of Tinman 3D and implement commonly used functionality.
The following ready-to-use adapters to popular GUI systems are included in the SDK:
Language | Tinman [6] | WinForms | WPF | MFC | Qt | XamarinForms |
---|---|---|---|---|---|---|
C# |
yes |
yes |
yes |
- |
- |
v1.0 RC4 |
C++ |
yes |
- |
- |
yes |
v1.0 RC4 |
- |
You are not limited to the provided implementations; it is possible to implement your own ones or to modify the existing ones (see Source Code Licence). |
3rd Party Libraries
Tinman 3D has a strong interface-centric design (for example 2D images and 3D models). Custom implementations of these interfaces can be created in order to extend the functionality of the SDK, without having to modify existing binaries.
The following ready-to-use plugins for 3rd-party libraries are included in the SDK:
Library | C# | C++ | Purpose |
---|---|---|---|
yes |
yes |
3D Model Import |
|
v1.0 RC6 |
- |
Physics Simulation |
|
v1.0 RC6 |
v1.0 RC6 |
Physics Simulation |
|
yes |
yes |
Geodata Import |
|
- |
planned |
3D Graphics Toolkit |
|
v1.0 RC6 |
v1.0 RC6 |
Physics Simulation |
|
- |
planned |
Vegetation Middleware |
Roadmap
This is the roadmap of current and future development of the Tinman 3D SDK.
Tinman 3D SDK 1.0 RC4
-
Application framework plugin for Qt / C++
-
Application framework plugin for XamarinForms / C#
-
Built-in file format read: GLB
-
Built-in file format read: GLTF
-
Built-in file format write: GLB
-
Built-in file format write: GLTF
-
Built-in file format write: GeoTIFF
-
Built-in file format write: PNG
-
Built-in file format write: SHP
-
Graphics abstraction plugin for Direct3D 12
-
Graphics abstraction plugin for OpenGL 4.1 Core Profile
-
Graphics abstraction plugin for OpenGLES 3.0
-
Platform support for Android / Mobile
-
Platform support for Linux Desktop
-
Platform support for iOS / Mobile
-
Platform support for iOS Desktop
Components
The Tinman 3D SDK is composed of several libraries and executables.
Libraries are provided in source code form (green) or in binary form (orange). Executables are provided in binary form (blue).
Libraries
Library | C# | C++ | Platform |
---|---|---|---|
Tinman.Licence |
Binary [7] |
Binary |
any |
Implements asymmetric decryption for licence keys, performs licence checks and unlocks initialization data which is required by other SDK components. This component is provided as a separate binary and cannot be embedded into applications. |
|||
CodeX.System |
Binary |
Source [8] |
any |
A concise bootstrap library that provides common runtime semantics for the C# and C++ editions of Tinman 3D. |
|||
Tinman.Core |
Binary |
Obfuscated [9] |
any |
The Core library provides general-purpose functionality and platform-abstraction wrappers for system-specific APIs. |
|||
Tinman.Terrain |
Binary |
Obfuscated |
any |
The Terrain library is is the heart of Tinman 3D. It provides all terrain-related features. |
|||
Tinman.Engine |
Binary |
Obfuscated |
any |
The Engine library provides a light-weight engine for real-time 3D applications. Use of the Engine library is optional. |
|||
Tinman.AddOns |
Source |
Source |
any |
The Add-Ons library provides additional functionality and examples for developing applications with Tinman 3D. Use of the AddOns library is optional. |
|||
Tinman.AddOns.Assimp |
Source |
Source |
any |
Plugin for using the Open Asset Import Library from within Tinman 3D. |
|||
Tinman.AddOns.DirectX9 |
Source |
Source |
Windows |
Plugin for using the Direct3D 9 rendering API with Tinman 3D. |
|||
Tinman.AddOns.DirectX11 |
Source |
Source |
Windows |
Plugin for using the Direct3D 11 rendering API with Tinman 3D. |
|||
Tinman.AddOns.DirectX12 |
Source |
Source |
Windows |
Plugin for using the Direct3D 12 rendering API with Tinman 3D. |
|||
Tinman.AddOns.GDAL |
Source |
Source |
any |
Plugin for using the Geospatial Data Abstraction Library from within Tinman 3D. |
|||
Tinman.AddOns.MFC |
- |
Source |
Windows |
An MFC control that hosts an IApplication object. |
|||
Tinman.AddOns.OpenGL |
Source [10] |
Source [10] |
any |
Plugin for using the OpenGL 4.1 Core Profile rendering API with Tinman 3D. |
|||
Tinman.AddOns.OpenGLES |
Source [10] |
Source [10] |
any |
Plugin for using the OpenGLES 3.0 rendering API with Tinman 3D. |
|||
Tinman.AddOns.Qt |
- |
Source [10] |
any |
A Qt widget that hosts an IApplication object. |
|||
Tinman.AddOns.SQLite |
Source |
Source |
any |
Plugin for using the SQLite database with Tinman 3D. |
|||
Tinman.AddOns.Vulkan |
Source [10] |
Source [10] |
any |
Plugin for using the Vulkan rendering API with Tinman 3D. |
|||
Tinman.AddOns.WinForms |
Source |
- |
any |
A .NET WinForms control that hosts an IApplication object. |
|||
Tinman.AddOns.WPF |
Source |
- |
Windows |
A .NET WPF control that hosts an IApplication object. |
|||
Tinman.AddOns.XamarinForms |
Source [10] |
- |
Xamarin |
A .NET XamarinForms control that hosts an IApplication object. |
|||
Tinman.Processor |
Source |
Source |
any |
This is the source code of the Geodata Processor tool, which is only available in the Source Code licence. |
|||
Tinman.Demo |
Source |
Source |
any |
The Demo Application showcases many features of the Tinman 3D SDK. |
|||
Tinman.Demo.StandAlone |
Source |
Source |
any |
Runs the Demo Application in a stand-alone window. The re-compiled application requires a licence key licence key to run (User, Site or Academic). |
|||
Tinman.Demo.MFC |
- |
Source |
Windows |
Runs the Demo Application in an MFC window. The re-compiled application requires a licence key to run (User, Site or Academic). |
|||
Tinman.Demo.Qt |
- |
Source [10] |
any |
Runs the Demo Application in a Qt window. The re-compiled application requires a licence key to run (User, Site or Academic). |
|||
Tinman.Demo.WinForms |
Source |
- |
Windows |
Runs the Demo Application in a .NET WinForms window. The re-compiled application requires a licence key to run (User, Site or Academic). |
|||
Tinman.Demo.WPF |
Source |
- |
Windows |
Runs the Demo Application in a .NET WPF window. The re-compiled application requires a licence key to run (User, Site or Academic). |
Executables
Executable | C# | C++ | Platform |
---|---|---|---|
tinman3d_demo |
Executable [11] |
Executable |
any |
The Demo Application showcases many features of the Tinman 3D SDK. This application does not require a licence key to run. |
|||
tinman3d_workshop |
Executable |
- |
Windows |
The Workshop Application is a GUI application that exposes many features of Tinman 3D interactively. This application requires a licence key to run with full features (User, Site or Academic). |
|||
tinman3d_bakery |
Executable |
- |
Windows |
The Licence Bakery is a tool for generating licence key requests. This application does not require a licence key to run. |
|||
tinmanpc |
Executable |
Executable |
any |
The Geodata Processor is a command-line utility for importing geodata into Tinman 3D. This application requires a licence key to run (User, Site or Academic). To unlock a content archive, the unlock key is sufficient to run tinmanpc, no other keys are required in this case. |