Softimage SDK Programmer's Guide > Getting Started > Introducing the Components of the SDK >

# Understanding the Softimage SDK Architecture

The Autodesk Softimage SDK features three main APIs: the Scripting Command API, the Softimage Object Model (OM) and the C++ API. These can be used independently, or used in tandem in certain circumstances. For example, there are some commands that you may need to run in a compiled tool, and you may also choose to deploy your tools using a scripted interface.

## Scripting Command API

The Scripting Commands API is a function library built on Autodesk Softimage's proprietary command interface language which can be used with ActiveX-compliant languages. All menu items and task buttons are driven by these underlying commands, most of which are available to the casual scripter or the tool developer in one of the compatible scripting languages (VBScript, JScript, and Python ActiveX). These can also be used in compiled tools authored with the C++ API via the Application::ExecuteCommand function.

## Softimage Object Model

The Softimage Object Model (OM) is a collection of classes or interfaces (objects) and their member data (properties) and member functions (methods) which represent the Softimage world. For example, an instance of the X3DObject class represents a specific 3D Object in Softimage and provides ways to get and set data, manipulate it in space and time, and generally perform most of the same operations a Softimage artist can perform but programatically.

The object model can be used with one of the ActiveX-compliant scripting languages (VBScript, JScript, Python ActiveX) or with any .NET language, including C# (see C# Developmentfor more information).

## C++ API

The C++ API provides the same kind of flexibility and power as the Softimage Object Model, but in the form of a pure C++ class library. The C++ API has no reliance on MainWin or any COM dependencies because it was built to handle the interaction between the COM-based Softimage architecture and pure C++ under the hood.

## Putting It All Together

This illustration represents the SDK architecture:

Notice that if you write compiled code, you can use either the C++ API or the Softimage Object Model. Both APIs form a layer which sits on top of the core implementation in Softimage. For scripted code, the Scripting Engine forms yet another layer which sits on top of the Softimage Object Model.

If you are interested in writing scripts, you will probably use a mix of the Scripting Command API and the Softimage Object Model in one of the four ActiveX-compliant languages. To read general and task-oriented information about how the specific scripting languages interact with these APIs, check out Script Development. To get specific information about a command or object model element, see theCommands and Scripting Reference.

If you are interested in developing compiled tools in C#, you use the COM API. To read general information and figure out which libraries to link to and header files to include, check out C# Development . To get specific information about object model elements, see the Object Model Reference.

If you are interested in developing compiled tools in C++, you will probably use the C++ API almost exclusively. To read general information and figure out which libraries to link to and header files to include, check out theC++ API Development. To get specific information about a class or a class member, see theC++ Reference

#### Topics in this section

- About the Structure of the Softimage APIs
- How is the Softimage Object Model Different from the C++ API?