Introduction

Welcome to the Tinman 3D Software Development Kit, you are reading the technical documentation.

To download the Tinman 3D SDK, please go to the Release Notes page.

Download and evaluation of the Tinman 3D SDK is 100% free and requires no registration!
If you have any questions or comments, please write to:

info@tinman3d.com

To obtain technical support, please refer to Contact and Support or write to:

support@tinman3d.com

For questions about licensing, please refer to Licencing and Pricing or write to:

sales@tinman3d.com

This is the Demo Application, rendering content of the Geodata Examples:

screenshot.01
Figure 1. Demo Application - NED 1/9" + GoogleMaps
screenshot.02
Figure 2. Demo Application - NED 1/3" + BingMaps

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:

Table 1. Implementations of the platform abstraction layer
Platform C# SDK C++ SDK Web SDK Processor Demo Workshop

Windows
Desktop

yes [1]

yes [2]

-

yes

yes

yes

Linux
Desktop

v1.0 RC5 [3]

v1.0 RC5 [3]

-

v1.0 RC5

v1.0 RC5

-

iOS
Desktop

v1.0 RC5 [3]

v1.0 RC5 [3]

-

v1.0 RC5

v1.0 RC5

-

Web
Mobile [4]

-

-

v1.0 RC7

-

v1.0 RC7

-

Android
Mobile

v1.0 RC5 [5]

-

-

-

v1.0 RC5

-

iOS
Mobile

v1.0 RC5 [5]

-

-

-

v1.0 RC5

-

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:

Table 2. Implementations of the graphics abstraction layer
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 RC5

-

planned

-

iOS Desktop

-

-

-

v1.0 RC5

-

planned

-

Web Mobile

-

-

-

-

-

-

v1.0 RC7

Android Mobile

-

-

-

-

v1.0 RC5

-

-

iOS Mobile

-

-

-

-

v1.0 RC5

-

-

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:

Table 3. Adapter implementations of the application framework
Language Tinman [6] WinForms WPF MFC Qt XamarinForms

C#

yes

yes

yes

-

-

v1.0 RC5

C++

yes

-

-

yes

v1.0 RC5

-

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:

Table 4. Plugin implementations for 3rd party libraries
Library C# C++ Purpose

Assimp

yes

yes

3D Model Import

bepuphysics v2

v1.0 RC6

-

Physics Simulation

Bullet

v1.0 RC6

v1.0 RC6

Physics Simulation

GDAL

yes

yes

Geodata Import

OpenSceneGraph

-

planned

3D Graphics Toolkit

PhysX

v1.0 RC6

v1.0 RC6

Physics Simulation

SpeedTree

-

planned

Vegetation Middleware

Roadmap

This is the roadmap of current and future development of the Tinman 3D SDK.

Items with a highlight (as well as all upcoming changes) will be included in the next official release and may be included in an earlier stable build.

Tinman 3D SDK 1.0 RC4

Missing SDK features
New file format features
New SDK features
Support for OpenGL

Built-in file format (read)
  • GdalShapeFormat (read)

Built-in file format (write)
Graphics abstraction plugin
  • OpenGL 4.1 Core Profile

New SDK features
Missing SDK features

Tinman 3D SDK 1.0 RC5

Missing SDK features
Missing documentation content
Support for OpenGLES
Support for additional platforms

Application framework plugin
  • XamarinForms / C#

  • Qt / C++

Documentation
Graphics abstraction plugin
  • OpenGLES 3.0

Platform support
  • Android / Mobile

  • Linux Desktop

  • iOS / Mobile

  • iOS Desktop

Missing SDK features

Tinman 3D SDK 1.0 RC6

Missing SDK features
New file format features
Physics engine integration
Terrain / scene editing

Built-in file format (read)
Built-in file format (write)
Physics abstraction plugin
  • Plugin for Bullet

  • Plugin for PhysX

  • Plugin for bepuphysics v2

Missing SDK features

Tinman 3D SDK 1.0 RC7

Support for web-based platforms

Graphics abstraction plugin
  • WebGL 2.0

Platform support
  • WebAssembly / Mobile

Planned

The following features are planned but have not yet been prioritized.

Components

The Tinman 3D SDK is composed of several software libraries, stand-alone tools and other executables.

sdk components
Figure 3. Libraries and executables of the Tinman 3D SDK

Software libraries are provided in source code form (green) or in binary form (orange). Stand-alone tools and other executables are provided in binary form (blue).

Libraries

Table 5. Code libraries of the Tinman 3D SDK
Library C# C++ Platform

CodeX.System

Binary

Source [7]

any

A concise bootstrap library that provides common runtime semantics for the C# and C++ editions of Tinman 3D.

Tinman.Licence

Binary [8]

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.

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 AddOns library provides additional functionality and examples for developing applications with Tinman 3D.

Use of the AddOns library is optional.

Functionality is wrapped in separate library components if it requires 3rd-party libraries at build time.

For the following features, 3rd-party libraries are only required at runtime, so the functionality is present in this library component:

Tinman.AddOns.Assimp
Plugin for using the Open Asset Import Library from within Tinman 3D.

Tinman.AddOns.GDAL
Plugin for using the Geospatial Data Abstraction Library from within Tinman 3D.

Tinman.AddOns.OpenFlight
Plugin for using the OpenFlight API with Tinman 3D.

Tinman.AddOns.OpenGL [10]
Plugin for using the OpenGL 4.1 Core Profile rendering API with Tinman 3D.

Tinman.AddOns.OpenGLES [10]
Plugin for using the OpenGLES 3.0 rendering API with Tinman 3D.

…​ DirectX9

Source

Source

Windows

Plugin for using the Direct3D 9 rendering API with Tinman 3D.

…​ DirectX11

Source

Source

Windows

Plugin for using the Direct3D 11 rendering API with Tinman 3D.

…​ DirectX12

Source

Source

Windows

Plugin for using the Direct3D 12 rendering API with Tinman 3D.

…​ MFC

-

Source

Windows

An MFC control that hosts an IApplication object.

…​ Qt

-

Source [10]

any

A Qt widget that hosts an IApplication object.

…​ SQLite

Source

Source

any

Plugin for using the SQLite database with Tinman 3D.

…​ Vulkan

Source [10]

Source [10]

any

Plugin for using the Vulkan rendering API with Tinman 3D.

…​ WinForms

Source

-

any

A .NET WinForms control that hosts an IApplication object.

…​ WPF

Source

-

Windows

A .NET WPF control that hosts an IApplication object.

…​ 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.

…​ StandAlone

Source

Source

any

Runs the Demo Application in a stand-alone window.

The re-compiled application requires a licence key to run (User, Site or Academic).

…​ 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).

…​ 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).

…​ 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).

…​ 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

Table 6. Executables of the Tinman 3D SDK
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.


1. Requires .NET Standard 2.0 or above
2. Requires Windows 7 or above (32-bit / 64-bit)
3. Requires compliance with POSIX.1-2008 (32-bit / 64-bit)
4. Requires a browser that supports WebAssembly (WASM)
5. Requires Xamarin.Forms
6. Built-in application window for stand-alone use (see ApplicationWindow).
7. Provided as human-readable source code.
8. Provided as a dynamic link library (e.g. DLL on Windows).
9. Provided as obfuscated source code (see Source Code Licence).
10. Not yet available, see Roadmap for details.
11. Provided as an executable (e.g. EXE on Windows).