Release Notes

SEDRIS SDK Release 4.1.4

July 1, 2011

  1. Introduction
  2. Distribution Packages
  3. Recommended Reading
  4. Installation
  5. SDK Documentation Overview
  6. Applications and Data
  7. Runtime Environment Variables
  8. Included Upgrades
  9. Bug Reports and Feedback
  10. Web Pages


Thank you for downloading this release of the SEDRIS Software Development Kit (SEDRIS SDK). The SEDRIS SDK is the development environment for building applications and components that can unambiguously represent and interchange environmental data.

This release has been tested on multiple platforms, such as Linux, Windows 98/Me/NT/2000/XP, Irix, and Sun. For detailed information on platform and compiler versions supported see the Build Kit.

The SDK includes tools useful for accessing, testing, and viewing SEDRIS transmittals (also called STF transmittals). Some of these tools are designed to be used from the command line, but there is also an application that can display 3D geometry present in a transmittal using the OpenGL libraries. More information on these applications is available in the Tools and Utilities page.

This release is compatible with the following SEDRIS technology components:

This release includes the following SEDRIS implementations:

This reference implementation is compliant with the following SEDRIS IS specifications:

The EDCS and SRM will be updated on a regular basis, probably at a faster rate than the other SEDRIS technology components. New versions of these components will easily integrate into your current SEDRIS environment using simple file replacements.

For help, comments, and bug reports please send email to If you are an associate, please use

Return to: Top

Distribution Packages

This version of the SDK is being made available in multiple distribution formats. In addition to source code, pre-compiled binaries for all supported platforms can be downloaded from the SEDRIS web site ( You may also download separate distributions of the EDCS SDK and SRM SDK technology components in both source and pre-compiled binaries form.

The following matrix shows the contents of the different packages for the SEDRIS SDK distributions and the directories in which you will find them:

Package and Contents bin:

Executable binary applications


Documentation, including Release Notes, Migration Guide, and Reference Manual


Headers for SEDRIS Technology Components


Compiled binary libraries


Source code for SEDRIS Technology Components and Applications


Sample SEDRIS STF transmittals

Complete Source Suite:
  • All SEDRIS Technology Components
  • All SDK Applications
  X X1   X X
Complete Binary Suite:
  • All SEDRIS Technology Components
  • All SDK applications
X X X X   X

1 Note: Headers are generated during the build process

Return to: Top

Recommended Reading

The following table may assist developers in finding the documentation that best matches their needs:

  Release Notes Fixes and Limitations Build Kit Migration Guide Tools And Utilities SDK Reference Manual
New user with
binary distribution
Read Read     Read Read
New user with
source code distribution
Read Read Read   Read Read
Experienced user with
binary distribution
Read Read   Read   Read
Experienced user with
source code distribution
Read Read Read Read   Read

Return to: Top


The SEDRIS SDK is distributed as a GNU-zipped tar file for Unix systems and a zip file for Win32 systems. If you have obtained a source distribution, you will need to build the SDK after installation in order to run the applications and test your setup.

The binary releases include the OS/architecture type as part of the file/directory hierarchy. This allows binary releases associated with different OS/architectures to be installed on a common "sedris" SDK directory. The OS/architecture-specific libraries and executables are stored under separate sub-directories in the "lib" and "bin" directories.

To install, extract the contents of the compressed file:


Use the "tar" and "gzip" commands to extract the contents of the SDK:

gunzip -c sdk_file.tgz | tar xf -
using the appropriate filename for "sdk_file.tgz".

If you have GNU tar installed, you can use the following command instead:

tar xzf sdk_file.tgz

Unzip the zip file using a decompression utility (such as WinZip or 7-Zip) to extract the contents of the SDK.

The next step is to build, test, and use the SDK. See the Build Kit page for information on building the SDK (if you downloaded a source distribution), testing the build, and linking your applications and/or libraries against the libraries in this SDK.

Return to: Top

SDK Documentation Overview

The SDK Documentation is divided into the following areas:

Release Notes (this document)

Describes the capabilities of this release, its contents, and supported platforms and compilers.

Build Kit

Details the build options and procedures for compiling and linking the software, how to test the build, and how to link applications and libraries against the SDK.

Fixes And Limitations

Describes the fixes and known limitations of this release.

SDK Reference Manual

Provides links to detailed documents for the DRM, EDCS, SRM, API, and STF technology components.

Tools and Utilities

Describes the tools and utilities included with this release, such as Depth and Model Viewer.

Migration Guide

Provides information on procedures and utilities available to migrate applications from previous releases of the SDK.

Return to: Top

Applications and Data

This release includes several applications and sample data that demonstrate the use of the SEDRIS SDK to create and access STF transmittals. For more information on these applications see the Tools and Utilities page.



An application that traverses an STF transmittal and displays the objects in text format. See a sample run of the Depth tool.

Model Viewer

A 3D viewer that can display <Model> geometry and textures using OpenGL. See a sample run of the Model Viewer tool.

ITR Test

An application that demonstrates the use of the Inter-Transmittal Referencing mechanism to link multiple STF transmittals.

STF Test

A sample application that creates and populates an STF transmittal with <Data Table> data.

Rules Checker (C SDK only)

A tool that checks the semantical correctness of an STF transmittal. See a sample run of the Rules Checker tool.

Syntax Checker (C SDK only)

A tool that checks the syntactical correctness of an STF transmittal. See a sample run of the Syntax Checker tool.

Sample STF transmittals and related files:


Contains one <Model> with 3 polygons. Uses LSR for its environment. There are no textures, features, or grids. There is one green polygon in the <Environment Root> and an instance reference for the <Model>. (green color).


Contains a model of a communications console. It demonstrates texture mapping.


Contains a somewhat complex model of an office chair.


Contains sample atmospheric data (wind speed and temperature) stored in a <Property Grid> class instance.


A sample SEDRIS resolution file for resolving transmittal Uniform Resource Names (URNs) to STF transmittals.

Return to: Top

Runtime Environment Variables

The SDK can use several environment variables to control and configure its runtime execution.

Environment variables common to both the C and C++ SDKs:


This variable specifies the path(s) where the API should look for SEDRIS resolution (*.rsl) files.

Environment variables unique to the C SDK:

Note: These variables rarely need to be set.


This variable allows the user to specify, at a high level, the amount of memory to use. Its allowed values are SMALL (default), MEDIUM, and LARGE. Each choice will set the default values of the subordinate memory model environment variables SE_RAIF_MAX_OBJECT_CACHE_SIZE and SE_STF_BLOCK_CACHE_SIZE.


The API maintains a cache of objects. This cache is made up of objects that the user has a handle for and objects that have been previously processed. This reduces the need to re-create previously seen objects. SE_RAIF_MAX_OBJECT_CACHE_SIZE specifies the maximum number of objects in the cache before the API will delete objects that don't have a user handle. The default is 4096.


This variable specifies how many STF memory blocks to keep in memory. Every file contains 2048 blocks; the more blocks in memory the less they have to be instantiated. The default value is 500.

If SE_API_MEMORY_MODEL is set and the user overrides the subordinate variables, then the overriding values will be used.

The following are the default values for each memory model choice:

Memory Model Default Setting

The following considerations can be used when deciding to set these variables in order to attempt performance improvements:

Object interconnectivity

If a transmittal has a high amount of object sharing and hence is highly interconnected, the user could benefit by enlarging the memory model, which causes more objects to be maintained in memory. Since in highly interconnected transmittals the same objects will be encountered many times, maintaining them in memory means that they will not have to be re-instantiated each time they are encountered. The API can directly access them and the user will have immediate access, rather than having to read them from disk or convert them in memory.

Traversal algorithm

The second area of impact depends on the user's traversal algorithm. The user could benefit from larger memory models if the user consumes/produces transmittals in a manner in which the same transmittal areas are visited repeatedly. In the case where the user has simple depth-first traversal and processes most objects only once, there is no benefit in enlarging the memory model.

<Data Table> production

The third area affected is specific to data providers of <Data Tables>. Using a small memory model while a <Data Table> is being produced will optimize the <Data Table>'s size on disk, while a large memory model will optimize it for speed of consumption.

Return to: Top

Included Upgrades

The following table provides a short summary of changes in this release. For a full description of software fixes and known limitations in this SDK release see Fixes And Limitations.

SEDRIS Change Requests (SCRs) addressed None
DRM None
  • Build environment cleanups/fixes.
  • Added support for builds on Cygwin 1.6/1.7, Visual Studio 2008 and 2010.
  • Build environment cleanups/fixes.
  • Added support for builds on Cygwin 1.6/1.7, Visual Studio 2008 and 2010.
Transmittal Access C API
  • Build environment cleanups/fixes.
  • Added support for builds on Cygwin 1.6/1.7, Visual Studio 2008 and 2010.
Transmittal Access C++ API
  • Bug fix in getRelationsCount()
  • Build environment cleanups/fixes.
  • Added support for builds on Cygwin 1.6/1.7, Visual Studio 2008 and 2010.
  • Additional checks in Rules Checker
  • Several bug fixes in Model Viewer

A SEDRIS Change Request (SCR) is the means by which users make their requests for SEDRIS technology changes as either a functional enhancement or a software problem. Users can make such requests via the SCR Form Web Site. The SEDRIS Associates can review the status of the SCRs at the SEDRIS website while the non-associates can obtain their status by sending a request for specific SCRs to

Return to: Top

Bug Reports and Feedback

Questions, comments, and bug reports should be sent to

If you are an associate, please send email to

Return to: Top

Web Pages

These links require Internet access:

Return to: Top

Copyright © 2011 SEDRIS