Inverse kinematics is a tool for finding the angles of arm connections which in turn makes the end affector of the arm positioned at a determined target.
This example uses the method of pseudo inverse where the function of the change in position for the end affector (the pencil nib) gets linearized with respect to all angles between the segment. This linear equation system can then be solved using pseudo inversion and the program "steps" its way to a solution.
I made this individually as a project for a course in animation at Nanyang Technological University.
Rendering is done using the webGL library threejs, and matrix inversion is done using the library Sylvester.
This program requires Javascript and webGL. See more at the github page.