Building block tutorial

Developing accurate models of the human body is an enormous task, and it is not something each user can do from scratch. We all have to rely on models other people have made, and if we keep improving and exchanging them, we shall end up with a very good supply of models that fit most purposes. The AnyBody Model Repository is an attempt to provide such a library.

These are some of the tasks you will want to accomplish with predefined models:

  • To change the model pieces to fit your own purposes - preferably without tampering with the interior workings of the parts you are using.
  • To be able to combine existing body parts to larger models.
  • To be able to attach the parts you can find to model bits you construct yourself.

All this can be done very elegantly in the AnyScript language provided you keep it in mind when you construct your models. The AnyBody Model Repository is constructed that way, and it contains numerous examples of the technique. In short, it uses the following elements of the language to make it happen:

  1. Include files
  2. Parameters
  3. Equipping parts with their own interfaces

While there are many different ways models could be constructed to obtain the modularity we are looking for, the AnyScript Model Repository represents one very well-structured solution, and AnyBody Technology strongly recommends following the structure of this library when new models are developed.

The Repository Model Structure

The model repository is really not a part of the AnyBody Modeling System. It is a library of models that scientists and other advanced users have developed and made available in the public domain. The AnyBody Modeling System does not require you to structure your models in any particular way. But it is much easier to manage large models if you divide them into logical parts, and if you follow the structure of the Repository, then you can use the body parts in the Repository for your own models.

So this tutorial is an introduction to the Model Repository structure as well as a case in point of how models can be organized and interfaced with each other in general.

The Repository has its files structured into two main groups:

ARep stands for "Application Repository", and it contains the various devices, environments and working situations you may want to hook the body up to. An application could be a model lifting a box, walking, or riding a bicycle. This means that the ARep branch is where you can find the main files of models you can analyze, i.e. the files you actually load into the AnyBody Modeling System. You will know them because they have "Main" in their names: <application name>.Main.any.

BRep is short for "Body Repository", and it contains AnyScript models of the body with no attachments and no specification of movement, forces, or supports. The entire body model contains many hundred muscles and it is rather heavy computationally. For this reason the BRep directory is structured to enable the user to link applications to subsets of the body model such as the lower extremities or the shoulder model.

The idea behind the division into ARep and BRep is that each user wants to model the human body in a special situation. This can take place in the ARep branch with references to the BRep branch but without tampering with the more delicate BRep parts at all.

Let us stay with the BRep branch for just a moment. The initial models were created by the AnyBody Research Group from Aalborg, Denmark, but from a rather early stage in the development, other groups of model developers chipped in. So the BRep branch is divided into separate parts where each group of developers can keep their own models:

When you develop an application you can choose to link to whatever body model is your favorite or even choose to generate your own. You may also copy the models of another group into a separate directory and introduce the changes you favor into it.

Body modeling is challenging because so much data is involved, so most users will - at least initially - prefer to link to the body models that are already in the BRep branch. This means that the user will create an application in the ARep directory that links to a number of model parts in the BRep directory. The ARep directory is structured pretty much like the BRep branch:

Within each of the subdirectories in ARep you will find the different applications that each group has developed, for instance:

You can find more information on the structuring of the individual body part files in the Structure lesson.

In the rest of this tutorial we shall consider the situation where a new application is to be built using body parts from the Aalborg branch of the BRep. We shall do so using three different strategies of increasing complexity:

  1. When an existing application is similar enough to what you want to do to form the basis of the new application.
  2. When a new application is constructed using a set of conveniently organized body parts called body collections.
  3. When no existing application is similar to the new application and the new application requires a non-typical collection of body parts.

This tutorial is based on version 6.1 of the AnyScript model repository. Please notice that the repository models are subject to frequent updates and that a newer, better, and possibly slightly incompatible version may be available from the homepage of the AnyBody Research Project. Also the demo models provided in the AnyBody Modeling System may be updated compared to the version used here. To make sure that you have a compatible version for this tutorial, please begin by downloading a repository here: Repository.6.1.BlockTutorial.zip (15 MB). As the name indicates, it is a zip file which must be unpacked preserving its directory structure to some working directory of your local hard disk.

With that done, please proceed to lesson 1: Modification of an existing application.

AnyBody Technology A/S · Niels Jernes Vej 10 · DK-9220 Aalborg Ø · Denmark · Tel. +45 9635 4286 · Fax. +45 9635 4599
Copyright (c) AnyBody Technology A/S · 2006 · All rights reserved · Email webmaster@anybodytech.com