# Systems Tool Kit

Systems Tool Kit (formerly Satellite Tool Kit), often referred to by its initials STK, is a multi-physics software application from Analytical Graphics, Inc. (an Ansys company) that enables engineers and scientists to perform complex analyses of ground, sea, air, and space platforms, and to share results in one integrated environment. At the core of STK is a geometry engine for determining the time-dynamic position and attitude of objects ("assets"), and the spatial relationships among the objects under consideration including their relationships or accesses given a number of complex, simultaneous constraining conditions. STK has been developed since 1989 as a commercial off the shelf software tool. Originally created to solve problems involving Earth-orbiting satellites, it is now used in the aerospace and defense communities and for many other applications.
STK is used in government, commercial, and defense applications around the world. Clients of AGI are organizations such as NASA, ESA, CNES, DLR, Boeing, JAXA, ISRO, Lockheed Martin, Northrop Grumman, Airbus, The US DoD, and Civil Air Patrol.

## History

In 1989, the three founders of Analytical Graphics, Inc. — Paul Graziani, Scott Reynolds, and Jim Poland, left GE Aerospace to create Satellite Tool Kit (STK) as an alternative to bespoke, project-specific aerospace software.
The original version of STK ran only on Sun Microsystems computers, but as PCs became more powerful, the code was converted to run on Windows.
STK was first adopted by the aerospace community for orbit analysis and access calculations (when a satellite can see a ground-station or image target), but as the software was expanded, more modules were added that included the ability to perform calculations for communications systems, radar, interplanetary missions and orbit collision avoidance.
The addition of 3D viewing capabilities led to the adoption of the STK by military users for real-time visualization of air, land and sea forces as well as the space domain. STK has also been used by news organizations to graphically depict current events to a wider audience, including the deorbit of Russia's Mir Space Station, the Space Shuttle Columbia disaster, the Iridium/Cosmos collision, the asteroid 2012 DA14 close approach and various North Korea missile tests.
As of version 12.1 (released in 2020), the software underwent a name change from Satellite Tool Kit to Systems Tool Kit to reflect its applicability in land, sea, air, and space systems.
In 2019, Dutch amateur skywatcher Marco Langbroek used STK to analyze a high-resolution photograph of an Iranian launch site accident tweeted by former US President Donald Trump. It was "the first time in three and a half decades that an image [had] become public that [revealed] the sophistication of US spy satellites in orbit." Langbroek and astronomer Cees Bassa, identified the specific classified spysat (USA-224, a KH-11 satellite with an objective mirror as large as the Hubble Space Telescope) that had taken the photograph, and the time when it was taken on a particular satellite pass.

## Interface

The STK interface is a standard GUI display with customizable toolbars and dockable maps and 3D graphic windows. All analysis can be done through mouse and keyboard interaction.
The STK Integration module provides a scripting interface named Connect that enables STK to act within a client/server environment (via TCP/IP) and is language independent. Users also have the option of using STK programmatically via OLE automation.
Each analysis or design space within STK is called a scenario. Within each scenario any number of satellites, aircraft, targets, ships, communications systems or other objects can be created. Each scenario defines the default temporal limits to the child objects, as well as the base unit selection and properties. All of these properties can be overridden for each child object individually, as necessary. Only one scenario may exist at any one time, although data can be exported and reused in subsequent analyses.
For each object within a scenario, reports and graphics (both static and dynamic) may be created. Relative parameters, between one object and another can also be reported and the effect of real-world restrictions (constraints) enabled so that more accurate reporting is obtained. Through the use of the constellation and chains objects, multiple child objects may be grouped together and the multipath interactions between them investigated.
AGI also offers software development kits for embedding STK capabilities into third-party applications or creating new applications based on AGI technology.

## Modules

STK is a modular product, in much the same way as MATLAB and Simulink, and allows users to add modules to the baseline package to enhance specific functions.

## Integration

STK can be embedded within another application (as an ActiveX component) or controlled from an external application (through TCP/IP or Component Object Model (COM)). Both integration techniques can make use of the Connect scripting language to accomplish this task. There is also an object model for more "programmer oriented" integration methodologies. STK can be driven from a script that is run from the STK internal web browser in the free version of the tool. To control STK from an external source, or embed STK in another application requires the STK Integration module.

### Connect

Since Connect is a messaging format, it has the advantage of being completely language independent. This allows applications and client tools to be created in the programming language of the user's or developer's choice. In practice, as long as it is possible to create a socket connection, send information through that socket and then receive information that way then STK can be controlled with connect using that language.
Applications have been developed in C, C++, C#, Perl, Visual Basic, VBScript, Java, JavaScript and MATLAB. Examples can also be found in the STK help files or downloaded from the AGI website.