An input device for a digital data processing system, comprising: at least one sensor (102, 104) that observes a workspace and generates data indicative of one or more parameters of a user within the workspace; and a processor comprising: a user profile module that identifies a plurality of anatomical landmarks of a user's hand and determines X, Y, and Z coordinates of said landmarks within the workspace based on data generated by the at least one sensor; a motion calculation module that compares the data generated by the at least one sensor over time to generate a first set of values indicative of changes in said landmarks, wherein the data includes a position data, velocity data, and acceleration data for said landmarks; and a classification module that interprets a stream of active motion variables generated by the motion calculation module and associates changes in landmarks relative to one another with a strike of a particular key as keyboard input information using the position data, velocity data, and acceleration data for said landmarks; wherein the at least one sensor (102, 104) utilizes optical imaging, infrared light, structured light, or time-of-flight detection, wherein the input device is configured to operate in a keyboard input mode where the keyboard input information is received, wherein the classification module associates changes in a first landmark associated with a first finger relative to changes in a second landmark associated with a second finger to determine said keystroke, and wherein the data further includes data indicative of changes in angular relationship of two landmarks forming an angle having a vertex and having a first ray extending from the vertex to a third landmark of the plurality of landmarks and a second ray extending from the vertex to a fourth landmark of the plurality of landmarks, and wherein the motion calculation module generates a second set of values indicative of the angular displacement, angular velocity, and angular acceleration based on the data, and wherein the classification module additionally uses the second set of values to determine said keystroke. a second finger to determine keystrokes, and at least one sensor (102, 104) that observes a workspace and generates data indicative of one or more parameters of a user within the workspace; and a processor comprising: a user profile module that identifies a plurality of anatomical landmarks of a user's hand and determines X, Y, and Z coordinates of said landmarks within the workspace based on data generated by the at least one sensor; a motion calculation module that compares the data generated by the at least one sensor over time to generate a first set of values indicative of changes in said landmarks, wherein the data includes a position data, velocity data, and acceleration data for said landmarks; and a classification module that interprets a stream of active motion variables generated by the motion calculation module and associates changes in landmarks relative to one another with a strike of a particular key as a user profile module that identifies a plurality of anatomical landmarks of a user's hand and determines X, Y, and Z coordinates of said landmarks within the workspace based on data generated by the at least one sensor; a motion calculation module that compares the data generated by the at least one sensor over time to generate a first set of values indicative of changes in said landmarks, wherein the data includes a position data, velocity data, and acceleration data for said landmarks; and a classification module that interprets a stream of active motion variables generated by the motion calculation module and associates changes in landmarks relative to one another with a strike of a particular key as keyboard input information using the position data, velocity data, and acceleration data for said landmarks; wherein the at least one sensor (102, 104) utilizes optical imaging, infrared light, structured light, or time-of-flight detection, wherein the input device is configured to operate in a keyboard input mode where the keyboard input information is received, wherein the classification module associates changes in a first landmark associated with a first finger relative to changes in a second landmark associated with a second finger to determine said keystroke, and wherein the data further includes data indicative of changes in angular relationship of two landmarks forming an angle having a vertex and having a first ray extending from the vertex to a third landmark of the plurality of landmarks and a second ray extending from the vertex to a fourth landmark of the plurality of landmarks, and wherein the motion calculation module generates a second set of values indicative of the angular displacement, angular velocity, and angular acceleration based on the data, and wherein the classification module additionally uses the second set of values to determine said keystroke. a second finger to determine keystrokes, and