Armature
The basic armature is built up of a set of "nodes" and "bones". On intialisation the armature sets up a list of nodes, bone lengths, and node positions, alongside the total armature length. To then move the armature a "target node" is used. If the distance from the root node to the target node is greater than the total armature length, starting at the root node the armature gets the direction to the target and places each node along the directional vector at their bone length from the previous node. However, if the target node is within the armature's total length, the last node in the armature is then moved to the target position. From here the next node is moved towards the end node until within it's bone length constraint, this is repeated with each node moving within range of it's child node. Once done this process is completed, the armature repeats this process in reverse, starting with placing the root node back at the root and moving each node back towards it. With this done the desired effect with having the armature reach/bend for a target should be achieved. Finally to apply a direction of bend to the armature, each node is rotated around a plane getting it as close to the desired bend direction as possible under it's constraints.