Hello everyone and welcome to this short video series about GROOPS.
My name is Sebastian Strasser and I'm going to show you the basic features of GROOPS.
So this first video will be a short overview about GROOPS, what it is, how to use it, how to use the
graphical user interface and so on. So let's start here on GitHub. This is our repository,
where you can download GROOPS and this is also the right place to ask any questions or submit any bug
reports and so on. So, first of all, you have to install GROOPS. We have an installation page
with instructions for Microsoft Windows and also several Linux distributions. So here
you can just follow these steps to install GROOPS on your operating system of choice.
There's also a link to our documentation, which we will use later in this series,
where you can find information on basic features but also cookbooks to perform
specific tasks and also a description of all the classes and programs you find in GROOPS.
So after you have installed GROOPS, I'll show you a quick overview of what is GROOPS. So GROOPS
has both a command line application, which is GROOPS itself, let's call it,
and we have a graphical user interface. So all the logic is part of the command line application
and with the graphical user interface you just create so-called config files, which tell GROOPS,
which tell the command line application what you do. So from the graphical user interface you can
also directly call the command line application and run a GROOPS script. And how does the user
interface know which programs exist, what settings exist and so on. This is done by an XML schema
file. So the GROOPS command line application can create a schema file – if you've downloaded
GROOPS from GitHub you already have this file – and the GUI then parses this file
to know which programs there are and which settings there exist.
Okay, so let's start with the command line part. So if you have installed GROOPS correctly
you can just call GROOPS in the command line by entering "groops" or "groops.exe"
if you're on Windows. And this is just a help text from GROOPS, you can see there are several
optional arguments and the last argument is a config file. You can pass one or more config files
to run a GROOPS program. For example, I can type "groops ..." – I have an example script prepared
which is "01groopsExample.xml" – and if I run this you can see this script just simulates a
basic orbit and that's it. So it goes by super quickly. So, yeah that's the basic
principle of GROOPS. It's just a command line application. However, as I mentioned earlier,
there's also the graphical user interface, which looks like this. This will be your main interface
for GROOPS because this will be the place where you usually create scripts, so you
create the scripts which tell GROOPS what to do. I have here open my example script I just ran.
On the left we have a sidebar, which shows all the open files. There's also a list of programs,
an undo stack, which I will mention later, and you have a menu, of course. There are several
features. When you first start the graphically user interface you will probably be prompted to
set up some default paths and files. So this menu will show up. Here you have to set the path to the
schema file, which i mentioned earlier, and which is usually located in your GROOPS directory. You
can set a working directory, which is just the base directory where all your scripts start,
but of course you can use different directories when you save a script. And also you have to set
the documentation directory. This is like this part, so it's a subfolder "docs/html". Another
feature you can use is a template file. You can just use any GROOPS script as a template file.
For example, here I have my "groopsTemplate.xml" which is this file here. And this template file,
in this case, only contains global variables. You can imagine global variables just as global
variables in any programming language. And here you could also add some programs. The nice thing
about the GROOPS template is I can set up any variables, for example, a very important variable
is "groopsDataDir", which is used as a default variable in several paths of our programs. Here
you can set the path to the GROOPS data directory you have hopefully downloaded from the FTP server.
And you can also create any other variables. If you have set this template file in "Settings",
whenever you create a new script file these variables will be auto-generated, so everything
which is part of the template file will exist also in this file. So this is very convenient to set
up some basic global variables you always need. But let's go back to the script we just ran. It
is a very basic script, there is only one program, which is called "SimulateOrbit".
It has an output file. It has several input files. You define a time series,
sampling and so on. You can set up several forces. So here you basically just tell the program
what to do and which settings you want to use. I will go into these settings later in the next
video, this is just an overview of how to use it. For example, you could also add another program,
select any program you want; or you can change settings; you can add forces and so on. So this is
pretty straightforward and easy to use. This file, as you can see, is an XML file,
so if I look at this file you can see it's just the program we just saw – "SimulateOrbit" –
it has the output file, it has the time series and so on. It's just encoded as an XML file.
Okay, and if you want to run this program – let's head to the "Undo Stack", where we can just
undo or redo all our changes. Let's go back to the initial state of the file. And if I now want to
run this file – earlier I showed you you can do it over the command line – but you can also hit
the green triangle button and hit run and also a command line window will open and run the script.
Okay, and another important feature of GROOPS is a Help feature. So you can select any program
and hit F1 and it will open the documentation in the browser, if you set the path
correctly. And here you have the documentation of the program "SimulateOrbit". You can see
basic text, what it does, and also a description of all the settings you can use.
Okay, that's everything I wanted to show you in this first video. In our next video,
we will create a basic, easy script, so you can see the process of creating a script.
Thanks for watching and see you in the next video!