In computing, a widget toolkit, widget library, or GUI toolkit is a set of widgets for use in designing applications with graphical user interfaces (GUIs). The toolkit itself is a piece of software which is usually built on the top of an operating system, windowing system, or window manager and provides programs with an application programming interface (API), allowing them to make use of widgets. Application software, also known as an application or an ‘app’, is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with documents. Apps may be bundled with the computer and its system software, or may be published separately. Some users are satisfied with the bundled apps and need never install one. Satin is a weave that typically has a glossy surface and a dull back. It is a warp-dominated weaving technique that forms a minimum number of interlacings in a fabric. If a fabric is formed with a satin weave using filament fibres such as silk, nylon, or polyester, the corresponding fabric is termed a satin, although some definitions insist that the fabric be made from silk. If the yarns used are short-staple yarns such as cotton, the fabric formed is considered a sateen. Swing is the primary Java GUI widget toolkit. It is part of Oracle’s Java Foundation Classes (JFC) ¿ an API for providing a graphical user interface (GUI) for Java programs. Swing was developed to provide a more sophisticated set of GUI components than the earlier Abstract Window Toolkit (AWT). A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games. Examples of such programs include Acrobat 3D, Adobe Illustrator, AutoCAD, CorelDRAW, OpenSceneGraph, OpenSG, VRML97, and X3D. The scene graph is a structure that arranges the logical and often (but not necessarily) spatial representation of a graphical scene. In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications. Libraries contain code and data that provide services to independent programs. This encourages the sharing and changing of code and data in a modular fashion, and eases the distribution of the code and data. Some executables are both standalone programs and libraries, but most libraries are not executable. Rendering is the process of generating an image from a model (or models in what collectively could be called a scene file), by means of computer programs. A scene file contains objects in a strictly defined language or data structure, it would contain geometry, viewpoint, texture, lighting, and shading information as a description of the virtual scene. A finite-state machine (FSM) or finite-state automaton, or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states. The machine is in only one state at a time, the state it is in at any given time is called the current state. It can change from one state to another when initiated by a triggering event or condition, this is called a transition. Source.