Home | SDK Introduction | Installation | API Documentation | Trac | License | Downloads | FAQ | Back
syntheractive aims to offer a wide range of high-quality services. For this reason, we are open to collaboration with those companies or developers interested in creating services for the synthetrick platform. This is the mission of the syntheractive Developer Program.
syntheractive services are independent hot-pluggable software modules that can be loaded or unloaded from any synthetrick vnode. These modules are assigned a version number, that allows the correct management of software updates and ensure compatibility with the platform version.
A syntheractive service is composed by the following elements:
The native execution environment for syntheractive services is GNU/Linux. However, the SDK is available for other operating systems, so you can develop and test syntheractive services in Windows or Mac evironments.
syntheractive services are developed using C++ as programming language. The SDK provides some libraries that give the developer the functionality needed to create an interactive service.
The core of the rendering engine is based on the open-source library OpenSceneGraph (OSG), an abstraction layer over OpenGL that organizes 3D contents in a hierarchical structure called scene graph.
The synth core library (libapp) provides the infrastructure needed to implement the service and communicate with other subsystems of synthetrick platform, such as the video encoder, the client or the control system.
In addition to the synth core library and OSG, other external libraries are used for specific functions. They are available for these services that require them, so they just have to link and use its functionality, ensuring compatibility among versions of all interrelated libraries.
As an example of additional libraries available, we use the Bullet Physics Library as dynamics simulation engine.
The low level layer provided by synth core library, allows the development of full featured syntheractive services. However, there are some common operations that are usually performed in most services. To make the development of syntheractive services easier, faster and less error prone, the Coolkit library provides a set of preconfigured modules ready to use in any service. These modules include creation of graphical elements, animation effects (transformations, fadings), user login screens, text rendering, state management, audio effects, content internationalization, etc.
Over the core and Coolkit libraries, the UI library supply a higher level layer to build user interfaces based on widgets, events and actions. These widgets may be used in 2D or 3D layouts. The UI configuration can be defined in a JSON-based language and stored in files, in addition to the C++ interface.
syntheractive SDK includes the following elements:
(*) Currently the documentation is in the web site
The synthetrick SDK provides the following features:
The synthetrick SDK also provides a collection of modules to perform the most frequent operations with very little code, so reducing development time and making the code less error prone.
Services developed on the synthetrick platform can be consumed in High Definition and 3D stereoscopic visualization when available. There is no need to perform any additional task in the service code. More information in the stereoscopic 3D page.
The creation of a syntheractive service involves several tasks of technical as well as artistic nature. The result of the development will include the software, the configuration files, the documentation and the assets. For assets we mean additional files such as 3D models, materials, textures, animations, video clips and audio clips.
The creation of 3D contents with their materials, textures and animations is usually performed with the aid of Digital Creation Content (DCC) tools, such as Autodesk Maya, 3ds Max, Softimage or Blender.
3D models with all the associated information, including materials, shaders, textures, animations, cameras, lights, etc. is exported from the DCC tool to our OSG-based engine either using interchange file formats supported by OSG or using directly an OSG native file format. There are several OSG exporters for the most widespread DCC tools.
syntheractive actively collaborates with the open source project Maya2OSG, that provides a plug-in that perfectly integrates in the Autodesk Maya interface to make easy the exportation of 3D contents to OSG in general and to syntheractive services in particular. The features supported by both Maya2OSG and the synthetrick platform include the following:
For the sake of stability, security and robustness of the system, services developed by external developers should be certified by syntheractive before going into a production environment.
Also, it is necessary to perform an analysis of the cost of the service sessions in resources (CPU, GPU, memory, network, ...), so the resource manager and the scheduler in the control system can distribute sessions among the system nodes to balance the load and optimize resource usage.
This certification process will be the final stage in the development of a service to become part of the syntheractive catalog.