Sofa Templates
These templates bundle common SOFA components to achieve specific behaviors that are commonly used in scene descriptions. SOFA requires the user to know a lot about which components work. SofaEnv hides a lot of the complexity and uses easy to use interfaces to figure out:
which specific combination of components are required to achieve a certain behavior,
in which order to add the components to the scene graph,
how to structure the graph.
E.g. a deformable object, a cuttable object, and partially rigidified object have almost the same components, but they are arranged completely different in the graph.
Scene Header
The function sofa_env.sofa_templates.scene_header.add_scene_header
takes care of adding basic components that basically every scene requires. It adds basic components such as the AnimationLoopType
that determines the event loop of the scene and whether to add components for collision detection. The utility is bundled in this function because the required components are highly interdependent.
The function sofa_env.sofa_templates.scene_header.add_plugins
can be used to easily aggregate the plugins defined in each submodule and add a unique set to the scene graph.
Basic Objects
Rigid Objects
Rigid objects are physical bodies whose position or state can be described by a single pose (position and orientation) in space.
Deformable Objects
In contrast to rigid objects, deformable objects consist of many different points and relative positions between the points change.
Materials
Camera
Cameras are used to render image observations of the scene.