Direct-manipulation in OpenSpace

Interacting with touch is for many people a direct and intuitive way to control a computer interface. This is especially powerful if the user doesn’t have to map a set of controls to different interactions, but the manipulation becomes what is physically expected. Direct-manipulation aims to do just that, which in effect removes the User Interface.

The method developed and used in OpenSpace is a screen-space formulation. Each frame contact point touches the surface of a celestial body, and the geographical surface coordinates of that body are found and saved through ray tracing. The camera transform then aims to move and orient itself such that it minimizes the distance between the current frame’s contact points on the screen and the last frame’s surface coordinates projected to the screen space. This is done with a non-linear least squares minimization algorithm. In effect, a geographical location is locked to the user’s contact points, and the camera moves such that the location follows the fingers. The solver is unconstrained, which means that adding more contact points simply introduces more degrees of freedom (up to six) that are to be controlled.

  • One contact point gives the user control over two degrees of freedom, which are taken to be the orbit X and Y angles around the focus.
  • Two contact points gives the user additional control of the distance and rotation related to the focus point.
  • Three or more contact points give the user control over all six degrees of freedom, with the last two being panning angles in X and Y.