Shapes

Shapes are rigid mesh objects that are composed of triangular faces. They can be imported/exported and edited. They come in four different sub-types:

  • Simple shape: can represent any mesh. It has one color and one set of visual attributes. Not optimised nor recommended for dynamics collision response calculation (since very slow and unstable).
  • Compound shape: can represent any mesh. It has several colors and sets of visual attributes. Not optimised nor recommended for dynamics collision response calculation (since very slow and unstable).
  • Convex shape: represents a convex mesh with one color and one set of visual attributes. Optimized for dynamics collision response calculation (but primitive shapes are recommended).
  • Compound convex shape: represents a group of convex meshes with several colors and sets of visual attributes. Optimized for dynamics collision response calculation (but primitive compound shapes are recommended).
  • Primitive shape: represents a primitive shape (cuboid, cylinder or sphere (with additional variations depending on the used physics engine). A primitive shape (or primitive compound shape) is best suited for dynamics collision response calculation, since it will perform very fast and is stable. See the dynamics section for more information.
  • Primitive compound shape: represents a group of primitive shapes (cuboid, cylinder or sphere). A primitive compound shape (or primitive shape) is best suited for dynamics collision response calculation, since it will perform very fast and is stable. See the dynamics section for more information.
  • Heightfield shape: can represent a terrain as a regular grid, where only the heights change. Heightfields can also be considered as primitive shapes, and are optimized for dynamics collision response calculation.
  • By default, all imported shapes are simple shapes. Two or more shapes or compound shapes can however be grouped/ungrouped with [Edit > Shape grouping/merging > group/ungroup]. Simple shapes can also be merged/divided with [Edit > Shape grouping/merging > merge/divide]. Refer also to the model tutorial. which illustrates how to correctly import and prepare shapes for a simulation model.

    Primitive shapes are mainly functional shapes. They are most of the time only used by the physics engine that performs on them much better and faster than on non-primitive shapes (e.g. random or convex meshes). For that reason, primitive shapes are often hidden in an invisible layer (e.g. layer 9). Refer to the layer selection dialog and the section on how to design dynamic simulations for more information.

    [(a) 5 shapes (e.g. after import), (b) 1 shape (after merging), (c) 1 compound shape (composed by 5 simple shapes)]


    Primitive shapes can also be grouped, the resulting compound shape will however only be primitive if all of its composing elements are also primitives. Merging primitive shapes will result in a non-primitive shape.

    Shapes are collidable, measurable and detectable objects. This means that shapes:

  • can be used in collision detections against other collidable objects.
  • can be used in minimum distance calculations with other measurable objects.
  • can be detected by proximity sensors.
  • The collidable, measurable and detectable properties of a shape can be altered in the object common properties. Additionally, those properties can be overridden if the shape is part of a model which overrides them. Refer to the model dialog for more information.

    The shape calculations (i.e. collision, distance and proximity sensor calculations) available in CoppeliaSim are also available as stand-alone routines via the Coppelia geometric routines.