Joints in Simphy

Simphy has a number of ‘joints’ that can be used to connect two bodies together. These joints can be used to simulate interaction between objects to form hinges, pistons, ropes, wheels, pulleys, vehicles, chains, etc. Learning to use joints effectively helps to create a more engaging and interesting scene.

Distance Joint

Distance Joint

The DistanceJoint represents a fixed distance between two bodies. The bodies are allowed to rotate freely about the anchor points. It can also act like a spring-damper with specified fixed distance is a target distance (or rest distance).

Weld Joint

The WeldJoint represents a joint that “welds” two bodies together. This can be used to fix two bodies together as one, then removed to simulate destructible bodies. When bodies are joined by a WeldJoint their relative rotation and translation is constant (determined by the initial configuration).

Like the DistanceJoint class you can add a spring-damper. However, this acts as a rotational spring damper instead of a linear spring damper.

This joint requires one world space anchor point, a, which is used as the weld point.

Spring Joint

The SpringJoint represents a spring connected between two bodies. The bodies are allowed to rotate freely about the anchor points. The SpringJoint class can also act like a spring-damper with specified fixed distance is a target distance (or rest distance) and damping coefficient.

Revolute Joint

The Revolute Joint represents a joint that only allows rotation between the joined bodies. This class also supports the use of a motor and limits. The motor can be used to apply motion between the bodies and the limits can be used to limit the angle between the two bodies.

The angular limits are relative to the initial angle between the two bodies.
This joint requires one world space anchor point, a, which is used as the pivot point.

Prismatic Joint

The Prismatic Joint represents a joint that allows bodies to translate freely along an axis. Like the RevoluteJoint, this joint  allows for motors and limits. The motor will drive the linear motion along the axis toward the given speed and the limits will limit the linear motion along the axis.

This joint requires one world space anchor point, a, which is used as the pivot point to prevent rotation and a world space axis used as the allowed translation axis.

Wheel Joint

The Wheel Joint represents a joint connecting two bodies where the bodies are allowed to rotate about the given anchor point and translate about the given axis. The translation portion of the allowed motion has an optional spring damper. This is an ideal joint for vehicles. The motor for this joint is a rotational motor.

This joint requires a world space anchor point, a (the pivot point), and a world space (normalized) axis for the allowed translation.

This joint can be thought of as a combination of the revolute, prismatic and distance joints.

Spindle/Pulley Joint

The Spindle Joint represents a joint that simulates a thread wounded over an object, and its free end is connected to another object. it is very useful to create pulley system.

Adding Joint

First Select joint from toolbar shown below, by pressing corresponding toll with left mouse click.

Now joints can be added to the simulation by simple drag and draw with mouse on canvas. If initial point on a body acts as first anchor point on that body, while final point (where mouse is released) on body  acts as second anchor point.

Removing Joint

Joints can be removed in two ways (other than by starting a new simulation):

By selecting the Remove option from the Joint context menu.

OR

By selecting the  icon and clicking over joint to be removed