From 9cc3108a9974d198e50072a36a91f6b7c1d518bc Mon Sep 17 00:00:00 2001 From: Jacob Hilmar Adamsen Date: Wed, 18 Feb 2026 12:39:06 +0100 Subject: [PATCH] Content added from the AMMR page --- A_Getting_started/intro.md | 54 ++++-- A_Getting_started/lesson1.md | 155 ++++++++++++++++- A_Getting_started/lesson2.md | 11 +- A_Getting_started_AMMR/ammr_best_practices.md | 159 ++++++++++++++++++ .../best-practices-libdef.png | Bin 0 -> 5589 bytes A_Getting_started_AMMR/index.md | 31 ++-- A_Getting_started_anyscript/intro.md | 7 + A_Getting_started_modeling/intro.md | 15 +- conf.py | 1 + getting-started-descriptions.txt | 2 +- 10 files changed, 395 insertions(+), 40 deletions(-) create mode 100644 A_Getting_started_AMMR/ammr_best_practices.md create mode 100644 A_Getting_started_AMMR/best-practices-libdef.png diff --git a/A_Getting_started/intro.md b/A_Getting_started/intro.md index f99a58d4..5323fe3c 100644 --- a/A_Getting_started/intro.md +++ b/A_Getting_started/intro.md @@ -21,24 +21,50 @@ the model view window This tutorial relies heavily on using the AnyBody Managed Model Repository (AMMR). Follow the steps below to unpack a local version of the AMMR. -## Setup the AMMR - -Before you continue, you must unpack the entire repository and save it on your -hard disk. To get a copy of the AMMR, press the Demo tab in the AnyBody -assistant dialog box. - -![...](_static/intro/image1.png) - -Following the instructions in the Demo tab will install a copy of the AMMR in -your documents folder by default. It is good practice to create a second local -copy of the AMMR so that you do not overwrite the original AMMR folder by -accident. +(SettingUpAMMR)= +## Setting Up the AMMR + +The *AnyBody Managed Model Repository* (AMMR) is a comprehensive open library of +musculoskeletal models and examples designed to use with the AnyBody Modeling +System. It allows users to configure and combine different body models, which +can be easily integrated into their own simulations and analyses. + +The AnyBody Managed Model Repository (AMMR) is included with the AnyBody +Modeling System, but it needs to be manually installed or unpacked after +installing AnyBody. You can install the AMMR from the AnyBody Assistant dialog +that appears when AnyBody starts. + +To get a copy of the latest AMMR files, press the Demo tab in the AnyBody +assistant dialog box. Then select the *“Install the demo repository by clicking* +*this link”* + +```{figure} _static/intro/image1.png +:alt: AMMR setup +:class: bg-primary +:align: center +``` + +This installs a copy of the AMMR locally in your documents folder by default (e.g. +{{AMMR_DEMO_INST_DIR}}). If +there are multiple users using your computer, each of them will have to follow +this guide. It is good practice to create a second local copy of the AMMR so +that you do not overwrite the original AMMR folder by accident. There you can +initialise a git repository in which you can version you models, keep a backup, +or share them easily with the community. + +:::{important} +AnyBody Modelling System comes with a version of AMMR (not necessarily the +latest) placed in the installation folder of the software. Do not directly use +these files for your actual work as updates or reinstallation of AnyBody can +overwrite your changes. So always **copy the files from the AMMR folder to your** +**working folder** before using them. +::: ## AMMR structure Open a file manager and navigate to the directory where you unpacked the -repository. You should see a folder structure that includes the following -subfolders: +repository (default is your documents folder). You should see a folder structure +that includes the following subfolders: - **Application**: Includes demo simulations of activities such as cycling, lifting a box, or propelling a wheelchair. diff --git a/A_Getting_started/lesson1.md b/A_Getting_started/lesson1.md index 0c3da3b8..c1d1d838 100644 --- a/A_Getting_started/lesson1.md +++ b/A_Getting_started/lesson1.md @@ -60,9 +60,16 @@ location of the file is shown in the title bar: ``` :::{warning} -If you saved your model in an other location be +If you saved your model in another location be sure to modify the {file}`../libdef.any` file so it points to AMMR repository you want to use. + +The following line should always refer correctly to the libdef file +regardless of where you save your model. + +```AnyScriptDoc +#include "/AMMR/libdef.any" +``` ::: (loading-a-model)= @@ -88,7 +95,7 @@ another file loading priority by right-clicking its tab and select “Load Model ## The model view When loading is completed, the Model View window opens and shows the standing -model: (You can open it manually from View -> Model Views). +model. You can open it manually from View -> Model Views. ```{image} _static/lesson1/image_5.png :alt: Model view @@ -110,5 +117,149 @@ functions, so keyboard shortcuts have been provided: - If you have a scrolling wheel on your mouse, this will zoom the model in and out. +## Understanding the AnyScript Model Structure + +This Human Standing Model is a model from the AnyBody Managed Model Repository +(AMMR). It uses the [Human Model](https://anyscript.org/ammr/beta/body/models.html#the-body-model) +from the AMMR, which is used by most models you will encounter when using the AMMR. +Regardless of complexity, all models share a common structure used to set them +up. + +The models will typically have the following overall structure (*notice*, the +AnyScript below is not excatly the same as the Standing Model used in this +tutorial, but contains the same overall structure): + +```AnyScriptDoc +// Include the libdef file from the AMMR +#include "libdef.any" + +Main = +{ + // Define the BodyModel configuration + #include "Model/BodyModelConfiguration.any" + + // Include the Human model from AMMR + #include "/HumanModel.any" + + // Define desired posture or movement of the model + #include "Model\Mannequin.any" + + // Compose the model + AnyFolder Model = + { + AnyFolder &BodyModel = .HumanModel.BodyModel; + AnyFolder Drivers = {...}; + AnyFolder Environment = {...}; + }; + + // Configuring the Study + AnyBodyStudy Study = + { + AnyFolder &Model= .Model; + Gravity = {0.0, -9.81,0.0}; // Gravity Vector + nStep = 10; // Number of steps + tStart = 0; // Start time + tEnd = 10.0; // End time + }; +}; +``` + +Let us go through the different components of this structure to understand how they work. + +### Path to AMMR: + +:::{note} +:class: margin +You can open a file by double-clicking on its name in the AnyScript. +::: + +```AnyScriptDoc +#include "libdef.any" +``` + +This means your model will include the content of the file called `libdef.any`. +This file references to another `libdef.any` file located at the top-level +folder of the AMMR, which specifies the AMMR directories to use in your model. +You can have multiple versions of AMMR available on your computer, and this +points to the version you wish to use. This line should be at the very beginning +of your `main.any` file. + +### Configuring the Human Model: + +```AnyScriptDoc +Main = +{ + // Define the BodyModel configuration + #include "Model/BodyModelConfiguration.any" +``` + +Here, the main declaration of the model, `Main = {}`, is initiated, and this file now +becomes the main model file. All basic AnyScript contains a main file that +defines the model’s structure, contents and the operations to be performed. + +The file `BodyModelConfiguration.any` is included, which defines what parts of the +human body model are included, through a number of switches called Body Model +(BM) parameters. BM parameters are always prefixed with `BM_` inside AnyScript. +The values of these parameters are defined by `#define` and `#path` statements. + +### Including the Human Model + +```AnyScriptDoc +#include "/HumanModel.any" +``` + +The AMMR contains multiple musculoskeletal models. The above line includes the +Human Model from the AMMR. The file path `` is defined in +`libdef.any`. + +It is important that the above configuration statements are placed +before this line. + +### Defining the Posture and Movement + +```AnyScriptDoc +#include "Model\Mannequin.any" +``` + +This includes the file `Mannequin.any` which defines the posture and movement of +the human body model. + +### Composing the Model + +```AnyScriptDoc +AnyFolder Model = +{ + AnyFolder &BodyModel = .HumanModel.BodyModel; + AnyFolder Drivers = {...}; + AnyFolder Environment = {...}; +}; +``` + +This is where we combine the `Body` from the Human Model with extra things like +drivers, external loads, and constraints. It could also be any models of the +environment which the body interacts with or many other things. + +### The Study section + +```AnyScriptDoc +AnyBodyStudy Study = +{ + AnyFolder &Model= .Model; + Gravity = {0.0, -9.81,0.0}; // Gravity Vector + nStep = 10; // Number of steps + tStart = 0; // Start time + tEnd = 10.0; // End time +}; +``` + +The `AnyBodyStudy` is where you configure and define your simulation. It +specifies start and end times of the simulation, and the number of steps. It also +configures which solvers are used. + +Only the model elements which are referenced to within the Study will be +included in the simulation. In this case, the line `AnyFolder &Model= .Model;` +references to the Model folder, meaning everything in the Model folder is part of the +simulation. + You can now proceed to {doc}`lesson2`. diff --git a/A_Getting_started/lesson2.md b/A_Getting_started/lesson2.md index e2f67444..ae7315dc 100644 --- a/A_Getting_started/lesson2.md +++ b/A_Getting_started/lesson2.md @@ -7,10 +7,9 @@ The script editor currently shows the main file of the model, which includes the line of code `Main = {}`. Any basic AnyScript contains a main file that defines the model's structure and the operations to be performed on the model. -The `Mannequin.any` file, included in the main file, determines the posture of -the Standing Model by specifying the angles at the anatomical joints. - -Scroll down to the line that says `#include "Model\Mannequin.any"`. +Scroll down to the line that says `#include "Model\Mannequin.any"`. This line +means that your model will include the content of the file called +`Mannequin.any` located in the Model folder, within the main file. ## Mannequin file structure @@ -20,8 +19,8 @@ Scroll down to the line that says `#include "Model\Mannequin.any"`. :end-before: //# END SNIPPET 1 ``` -**This line means that your model will include the content of the -"Mannequin.any" file located in the Model folder, within the main file.** +The `Mannequin.any` file determines the posture of the Standing Model by +specifying the angles at the anatomical joints. Double-clicking the file name in the editor window after loading your model opens the mannequin file in a new tab. Then you see the diff --git a/A_Getting_started_AMMR/ammr_best_practices.md b/A_Getting_started_AMMR/ammr_best_practices.md new file mode 100644 index 00000000..0a124fa8 --- /dev/null +++ b/A_Getting_started_AMMR/ammr_best_practices.md @@ -0,0 +1,159 @@ +(bestpractices-ammr)= + +# Best Practices + +Once you have installed the demo repository, you are free to work with it as you +please. However, this page describes the best practices to make the most out of +AMMR. This page is especially relevant if you are new to AMMR. + +## The `libdef.any` file + +The `libdef.any` file is an often-overlooked yet critical file when working +with AMMR. This section examines its role. You can find it in the root +folder of the AMMR, for example {{AMMR_DEMO_INST_DIR}}. + +```{image} best-practices-libdef.png +:alt: Location of libdef.any in the AMMR root folder +:class: bg-primary +:align: center +:width: 20% +``` +If you open this file, you will see several `#path` statements, for example: + +```AnyScriptDoc +#path ANYBODY_PATH_AMMR "." +#path ANYBODY_PATH_BODY "Body/AAUHuman/" +#path ANYBODY_PATH_MANDIBLE "Body/Mandible/" +#path ANYBODY_PATH_MODELUTILS "Tools/ModelUtilities/" +#path AMMR_TOOLS "Tools/" +``` + +These statements define shortcuts that tell the AnyBody Modeling System where +exactly to look for a file when the identifier is used in an `#include` +statement, such as: + +```AnyScriptDoc +#include "/HumanModel.any" +``` +Once the `#path` statements are correctly defined in the `libdef.any` file, +the AnyBody Modeling System can locate the included file regardless of where the `#include` +statement appears in your model, as long as it's after the corresponding `#path` definition. +AnyBody Modeling System will know the complete path of the file. Please note +that sequence matters for statements beginning with `#`, such as `#path`, +`#include`, `#if`, `#define`, etc. + +:::{note} +In the AMMR, you can find several files that are named `libdef.any`. They only +exist to create a chain up to the `libdef.any` file in the root folder of the AMMR. +This can be confusing but is convenient as the main files can be several levels +deep into the AMMR. +::: + +## Working on your own models + +You can either {doc}`create a model from scratch` or +use one of the [application examples](https://anyscript.org/ammr/Applications/index.html) +from the AMMR as a starting point. In either case, the advice is to keep your +demo AMMR as clean as possible. **Please select another working directory on your** +**machine where you can start a new model or copy the folder of the application** +**example that serves you the most, and then write all your code in this new** +**location.** + +In the main file of your model, write or update the line including the `libdef.any` file +to include the libdef file from the root folder of your demo AMMR. You can copy +the path of the libdef file from the AMMR and paste the path in the main file +of your model. + +```AnyScriptDoc +#include "C:\Users\mel\Documents\AnyBody.8.1.x\AMMR.v3.1.0-Demo/libdef.any" +``` + +Alternatively, instead of writing out the full path, you can also write the +following line to correcty refer to the libdef file, + +```AnyScriptDoc +#include "/AMMR/libdef.any" +``` + +:::{tip} +If you have multiple models in your working directory, you can have a libdef file +at the root level of your working directory. All your models can point to this +libdef file, which can in turn include the libdef file from your demo AMMR. In +this way, you can quickly control/update the AMMR version of all your models by +checking the root libdef file in your working directory. +::: + +## Working with the body model + +The human model in the AMMR is highly customizable. You can already find several +configurations through the [body model (BM) statements](https://anyscript.org/ammr/bm_config/index.html). +For example, you can define your own joint for the knee by setting +`#define BM_JOINT_TYPE_KNEE_RIGHT _JOINT_TYPE_USERDEFINED_`. This statement +will exclude the default knee joint from the body model and all the objects that +depend on it. Then, you can simply define a new knee joint without needing to +modify any of the body model files in the AMMR. It is possible to add objects +to the human model without modifying the body model files. You can open the +scope to the corresponding body model folder through one of your model specific +file and make additions, for example: + ```AnyScriptDoc + Main.HumanModel.BodyModel.Trunk.SegmentsLumbar.L4Seg = { + AnyRefNode MyNode = {}; + }; + ``` + +It's possible that the BM statements are not sufficient for your modeling needs. +Depending on your use case, you may need to make some modifications to the body +model. This is possible, and there can be two ways to do it: +- Some parameters in the human model can be overwritten. They are defined using + the `??=` operator. Let's say you want to tweak the muscle strength of the + biceps. This is defined through `F0` of the corresponding muscle model in + the body model file defining the parameters for all the muscles in the + shoulder-arm group. You can simply overwrite the default value by writing + the following line in your Main file or one of the other files of your model: + ```AnyScriptDoc + Main.HumanModel.BodyModel.Right.ShoulderArm.MuscleModels.biceps_brachii_caput_longum.F0 = 200; + ``` + In this way, you can modify the body model parameters without modifying the + body model files. This is important so that the modifications only affect + a specific model and not all the models using your copy of the AMMR. + +- For some modifications, you must make changes to the body model files. Let's + say you need to update the position of a reference node on the human model, + then you must update the sRel or the model parameters through the corresponding + body model file. If you change the body model file in your demo AMMR, then you + must be aware that the change will affect all the models using that AMMR. + The best way to do this is to {ref}`install ` a clean + demo AMMR, make a copy of your freshly installed AMMR, mark and use the copied + version for making changes to the body model. The installed demo AMMR is used + by the AnyBody Assistant to list the examples on the Demo tab. Therefore, it + is recommended not to make any changes in the installed Demo AMMR. + +## Version Control + +If you are not familiar with version control, then the best advice is perhaps to +familiarize yourself with it before you embark on your journey +of making amazing AnyBody models. Building such models takes a lot of time and +version control will make your life easier when you want to look back at the +changes you have made, whether you want to document your model or debug your +model. Moreover, version control tools can also make collaborative development +of the model systematic and robust. Since AnyScript is text-based, it can be +easily version controlled. + +While this guide introduces the importance of version control, comprehensive +tutorials and detailed explanations are widely available through dedicated +online resources. You are encouraged to look for these resources. Meanwhile, +here are a couple of links to help you get started. [Git](https://git-scm.com/) +is a commonly used tool for version control. It is a command line-based tool, +however, there are also several [GUI +clients](https://git-scm.com/downloads/guis?os=windows) that can make version +control easier. + +## Benefits of best practices + +If you follow these practices, you will have several benefits down the line. +- You will be able keep your models separate from your demo AMMR. +- Changes will be introduced through your models and the demo AMMR will remain + clean. +- You can use the same demo AMMR for several models. +- It will be easier to share models as you won't need to share the entire AMMR. +- You will have a better overview of the changes you will make to your models. diff --git a/A_Getting_started_AMMR/best-practices-libdef.png b/A_Getting_started_AMMR/best-practices-libdef.png new file mode 100644 index 0000000000000000000000000000000000000000..d020ca93cb331eb2449d9474bdfdbd3a4874b9a8 GIT binary patch literal 5589 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 is recommended for +new users, and explains how to use the AMMR to create a simple standing model. +Also, see the chapter {doc}`Best Practices` +for good recommendations on how to work with the AMMR. - -```{rubric} AMMR documentation +```{rubric} AMMR Documentation ``` - [Main AMMR documentation](https://anyscript.org/ammr/) -- [Getting started with the AMMR](https://anyscript.org/ammr/getting_started.html) +- [Gallery of Examples](https://anyscript.org/ammr/Applications/index.html) - [Configuring the Body Model](https://anyscript.org/ammr/bm_config/index.html) -```{rubric} AMMR Tutorials +```{rubric} AMMR Applications and Tools ``` +- [The AnyMoCap Framework](https://anyscript.org/ammr/anymocap/index.html) +- [Ground Reaction Force Predictions](https://anyscript.org/ammr/grf_prediction/grf-prediction.html) +- [Scaling](https://anyscript.org/ammr/Scaling/intro.html) + +::::{if-builder:: html +```{rubric} Tutorial content +``` +:::: + ```{toctree} :maxdepth: 1 -Creating a Human Model from scratch -Scaling: Joint to joint scaling -Scaling: External Body Measurements -Scaling: Segmental scaling factors -``` +ammr_best_practices +``` \ No newline at end of file diff --git a/A_Getting_started_anyscript/intro.md b/A_Getting_started_anyscript/intro.md index 1bb199ae..18aaaf1e 100644 --- a/A_Getting_started_anyscript/intro.md +++ b/A_Getting_started_anyscript/intro.md @@ -15,5 +15,12 @@ Each lesson (after lesson 1) begins with a link to a file containing the AnyScript code introduced up to that point. If you have a problem getting your code to work, simply download the demo files and start from there. +:::{seealso} +*The AnyScript Reference Manual* provides comprehensive details on all the +classes, functions, etc. available in AnyScript. You can access The AnyScript +Reference Manual by opening an AnyBody window and selecting 'Help' -> 'AnyScript +Reference' from the top menu. +::: + Let's get started with {doc}`Lesson 1: Basic concepts ` diff --git a/A_Getting_started_modeling/intro.md b/A_Getting_started_modeling/intro.md index 2dec9579..91b94372 100644 --- a/A_Getting_started_modeling/intro.md +++ b/A_Getting_started_modeling/intro.md @@ -5,8 +5,8 @@ # Introduction: Getting Started with Modeling Developing accurate models of the human body from scratch is an enormous task. -It is thus practical to use the models in the [The AnyBody Managed Model -Repository](https://anyscript.org/ammr/) +It is thus practical to use the models in the +[The AnyBody Managed Model Repository](https://anyscript.org/ammr/) as a starting template for a new application. The following elements of the AnyScript language make such templating easier: @@ -14,9 +14,14 @@ The following elements of the AnyScript language make such templating easier: - Include files - Which aid templating and sharing model components across different applications - Body model parameters - For customizing the default AMMR body models -The AMMR installation folder also contains a library of [demo applications](https://anyscript.org/ammr/Applications/index.html) -such as MoCap gait, cycling, leg-press exercises etc. If any of these applications are similar to your end goal, you can copy the -application's model files and then modify them as required. +The AMMR installation folder also contains a library of +[demo applications](https://anyscript.org/ammr/Applications/index.html) +such as MoCap gait, cycling, leg-press exercises etc. If any of these +applications are similar to your end goal, you can use the models. To do so, +navigate to the ‘AMMR’ folder in your file explorer and open the ‘Application’ +folder. Here, you will find all the available models and examples. Navigate to +the model you want to work on and copy its containing folder and paste it into +your working director. Now, you can safely modify them as required. **But in this tutorial, you will build a model from the bottom-up using the AMMR model templates.** diff --git a/conf.py b/conf.py index 7f8fc5d3..327c259f 100644 --- a/conf.py +++ b/conf.py @@ -186,6 +186,7 @@ def tagged_commit(): "AMMR_VERSION": ammr_version, "CURRENT_YEAR": current_year, "caution_old_tutorial": caution_old_tutorial, + "AMMR_DEMO_INST_DIR": f"`~/Documents/{ams_version_x}/AMMR.v{ammr_version}-Demo`", } diff --git a/getting-started-descriptions.txt b/getting-started-descriptions.txt index e70d18fd..c49773ed 100644 --- a/getting-started-descriptions.txt +++ b/getting-started-descriptions.txt @@ -13,4 +13,4 @@ {doc}`The AnyBody Model Repository ` -: Tutorial(s) on how to use the AnyBody Managed Model Repository (AMMR). +: Documentation on how to use the AnyBody Managed Model Repository (AMMR).