# Category:Joint functions

Newton offers several different types of joints that can be used to stitch two (or more) objects together and/or to limit the degree of freedom for certain objects. This page shows how the differnet joint types could look like, to give you an impression on how they can be used. There is also an official tutorial on joints that can be found here, Overview of joint api functions, see:.

In addition to those, simulation collisions also produce contact joints, which have their own functionality.

# Ball and socket interface

## Description

This joint type has an anchor (the end of blue sphere) and a moveable body that is "hanging" by this anchor (the beginning of the green sphere). The movement of that body is free to all directions, but limited to a certain degree (specified in angles), so that the child body's movement is limited to a cone-shped area. A good example for such a joint is your wrist angle or your hip joint.

# UpVector joint interface

## Description

This specialized vector can be used to limit rotation to one axis of freedom for rigid bodies. It's mostly used if you use e.g. a sphere to create a character controller and don't want that sphere to "fall" forwards. It's like if you want an egg to stand still upwards on the table but still be able to rotate it on the y-axis and move it around.

# Contact joint interface

To be used inside NewtonMaterialSetCollisionCallback callbacks.

# Corkscrew joint interface functions

## Description

This joint type is an enhanched version of a slider joint which allows the attached child body to not only slide up and down the axis, but also to rotate around this axis. It's called corkscrew-joint because that's the best way to describe how a child body attached with such a joint can move.

# Hinge joint interface functions

## Description

An object attached to a hinge joint can only rotate around one dimension perpendicular to the axis it is attached to. A good real-life example would be a swinging door or a propeller.

# Slider joint interface functions

## Description

This should be very obvious. A child body attached via a slider joint can only slide up and down (move along) the axis it is attached to. A real-life example is e.g. a car's damper shaft.

# Universal joint interface functions

## Description

The universal joint allows the attached child body to rotate on two axis. It's like a hinge joint with an added degree of freedom.

## Joint callback functions

To be only used within joint callbacks.