| [Home](/trick) → [Tutorial Home](Tutorial) → Introduction | |---------------------------------------------------------| # :checkered_flag: Introduction **Contents** * [What Trick Is](#what-trick-is)
* [The Goal of Trick](#the-goal-of-trick)
* [The Objective of This Tutorial](#the-objective-of-this-tutorial)
* [Installing Trick](#installing-trick)
*** ## What Trick Is Trick is a NASA Open Source simulation framework for running time-based physics models. It builds executable simulations with a common architecture, using user supplied simulation definition files and user supplied "model code". A Trick based simulation, provides many capabilities such realtime synchronization, job scheduling, simulation state save and restore (checkpoint), data-recording, interactive variable manipulation (variable server), numeric state integration and an input processor. It also includes tools for plotting recorded data, and many other supporting utilities and libraries. Trick is written in C/C++ and Java and supports both Linux and MacOSX computer operating systems. The name "Trick" is handed down from motocross. It is not an acronym. It is slang for "really cool"... or something of that nature. --- ## The Goal of Trick The goal of Trick is to help simulation developers to focus on the algorithms and equations of their problem domain rather than repeatedly solving the same, time-consuming simulation architecture problems and reimplementing the same required capabilities. Trick seeks to reliably accomplish this by automating the implementation of commonly needed simulation capabilities, and by automating the process of building the executable. --- ## The Objective of This Tutorial This tutorial covers the basic concepts for developing and operating Trick simulations. It assumes absolutely no previous knowledge of Trick, and should be self-contained, with no need for outside references other than maybe a C book, and/or a UNIX book. By the end of the tutorial you should know how to build a Trick simulation of your own from the ground up. The approach of this tutorial is hands-on. The intent here is not to teach about simulation math models, nor to teach about C programming, nor UNIX, but rather to teach about the Trick architecture and its capabilities. --- ## Installing Trick If Trick is not already installed on your machine, then you will need to do that first, by following the directions at: [Install Guide](/trick/documentation/install_guide/Install-Guide). Once Trick is installed on your machine, you will need add the Trick **bin** directory to your execution path. For the sake of example, let us assume that you installed Trick in your home directory, and you named your Trick directory **trick.git**. If you named it something different, then use that name instead in the scripts below. If you are using **bash**, then add the following lines to your **.profile** file. ```bash export TRICK_HOME="${HOME}/trick.git" export PATH=${PATH}:${TRICK_HOME}/bin ``` If you are using **csh** or **tcsh**, then add the following lines to your **.cshrc** file. ```csh setenv TRICK_HOME ${HOME}/trick.git setenv PATH ${PATH}:${TRICK_HOME}/bin ``` Close and then re-open your terminal window. --- [Next Page](ATutASimpleSim)