Prosecution Insights
Last updated: October 02, 2026
Application No. 18/858,200

METHOD AND DEVICE FOR CONTROLLING MOTION OF VIRTUAL OBJECT

Final Rejection §102§103
Filed
Oct 18, 2024
Priority
Apr 19, 2022 — CN 202210411519.3 +1 more
Examiner
LI, JAI WEI TOMMY
Art Unit
2613
Tech Center
2600 — Communications
Assignee
Beijing Zitiao Network Technology Co., Ltd.
OA Round
2 (Final)
Grant Probability
Favorable
3-4
OA Rounds

Examiner Intelligence

Grants only 0% of cases
0%
Career Allowance Rate
0 granted / 0 resolved
-62.0% vs TC avg
Minimal +0% lift
Without
With
+0.0%
Interview Lift
resolved cases with interview
Typical timeline
Avg Prosecution
34 currently pending
Career history
33
Total Applications
across all art units
This examiner has no resolved cases yet (career too new); statute-level performance unavailable. The Grant Probability card shows Tech Center averages instead.

Office Action

§102 §103
DETAILED ACTION Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . Response to Amendment The objections to the claims and the drawings have been withdrawn in view of the applicants’ amendments filed on 07/22/2026 Claim Rejections - 35 USC § 102 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. Claim(s) 1, 3-6, 11, 13, 18-21, and 24 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Tolk et al. (U.S. Pub. No. 2016/0067617). Regarding claim 1, Tolk discloses a method for controlling motion of a virtual object, comprising (paragraph 21, line(s) 2-7, “The method of utilizing face tracking can also be used as a game object controller for any object in the virtual environment by using the position and rotation of the detected face in relation to the device and the reference frame UV coordinates to calculate the new position and rotation of any designated object in the virtual environment”): generating a rotation control vector according to a rotation state of a face of a user in a real three-dimensional space, the rotation state comprising a face rotation angle corresponding to a rotation of the face about at least one rotation axis in the real three- dimensional space, and a component of the rotation control vector in at least one dimension being associated with the face rotation angle corresponding to the rotation axis (paragraph 20, line(s) 1-6, “there is provided a system for detecting the position of the face of the user and if either their mobile device moves and/or the user's face moves the use of the detected change of position of the face is applied to a game object to move and rotate the game object.”; also, paragraph 41, line(s) 4-6, “These axes are y or yaw 102, x or pitch 103 and z or roll 104 axes for linear or rotational movement respectively.”; also paragraph 55, “Vector3 angles = new Vector3(HeadTracker.headYaw, HeadTracker.headPitch, HeadTracker.headRoll)”; also, paragraph 55, “//Headtrackers can detect the angle of the face to a certain degree and we will obtain the //values here.”); and controlling motion of the virtual object through the rotation control vector, the motion comprising rotational motion (paragraph 62, line(s) 31-36, “The relative position and rotation of the fate in relation to the entire picture can then serve as a way to obtain precise position and rotation values for game objects in a virtual environment making the face a 2D or 3D game object controller within a virtual environment.”; also, paragraph 55, “Quaternion paddleRotation = Quaternion.Euler(angles)”; also, paragraph 55, “paddleTransform.rotation = Quaternion.Slerp(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”), wherein controlling the motion of the virtual object through the rotation control vector comprises: converting the rotation control vector into a first rotation parameter, the first rotation parameter being used for representing a rotation policy through a predetermined number of first sub-parameters, and the predetermined number being greater than a number of dimensions of the rotation control vector (paragraph 55, “Quaternion paddleRotation = Quaternion.Euler(angles)”; also, paragraph 9, line(s) 6-8, “Game objects can be controlled within 2D and 3D virtual environments via setting the position, rotation and scale of their transform.”); obtaining a second rotation parameter of the virtual object, the second rotation parameter being used for representing a current orientation of the virtual object by means of a predetermined number of second sub- parameters (paragraph 55, “Quaternion current = GyroUtils.CurrentQuaternion”; also, paragraph 21, line(s) 12-14, “the gyroscopes rotation and orientation data is saved at this time as the base quaternion which serves as the reference data.”) determining a first angle between the first rotation parameter and the second rotation parameter (paragraph 56, “float angle = Quaternion.Angle(paddleTransform.rotation, paddleRotation)”); and controlling the virtual object to perform rotational motion through the first angle (paragraph 56, “paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”) and a maximum character rotation angle between two adjacent frame images (paragraph 61, “If(angles > 10) // a considerable ammount of rotation of the face”; also, paragraph 55, “paddleTransform.position = Vector3.Lerp(paddlePosition, paddleTransform.position, Time.deltaTime * moveSpeed)”). Regarding claim 3, Tolk discloses the method of claim 1, wherein both the first rotation parameter and the second rotation parameter are quaternions (paragraph 50, “Quaternion current = GyroUtils.CurrentQuaternion”; also, paragraph 55, “Quaternion paddleRotation = Quaternion.Euler(angles)”; also, paragraph 55, “paddleTransform.rotation = Quaternion.Slerp(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”). Regarding claim 4, Tolk discloses the method of claim 3, wherein controlling the virtual object to perform the rotational motion through the first angle comprises: determining a minimum value of the first angle and the maximum character rotation angle between two adjacent frame images as a second angle (paragraph 61, “If(angles > 10) // a considerable ammount of rotation of the face”; also, paragraph 55, “paddleTransform.position = Vector3.Lerp(paddlePosition, paddleTransform.position, Time.deltaTime * moveSpeed)”); performing an interpolation operation on the first quaternion and the second quaternion through the second angle, to obtain a corresponding third quaternion (paragraph 55, “paddleTransform.rotation = Quaternion.Slerp(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”); and controlling the virtual object to perform rotational motion through the third quaternion (paragraph 56, “paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”). Regarding claim 5, Tolk discloses the method of claim 1, wherein controlling the motion of the virtual object through the rotation control vector comprises: in response to a determination that a modulus of the rotation control vector is greater than or equal to a predetermined threshold, controlling the motion of the virtual object through the rotation control vector (paragraph 61, “If(angles > 10) // a considerable ammount of rotation of the face”). Regarding claim 6, Tolk discloses the method of claim 1, wherein controlling the motion of the virtual object through the rotation control vector comprises: performing unitized processing on the rotation control vector, and controlling the motion of the virtual object through the rotation control vector after the unitized processing (paragraph 56, “direction.Normalize( ); //Normalize the direction vector”; also, paragraph 56, “faceSize = faceSize / ImageSize.magnitude; //normalize the size”). Regarding claim 11, Tolk discloses the method of claim 1, wherein the motion further comprises translational motion, and controlling the motion of the virtual object through the rotation control vector comprises (paragraph 20, line(s) 1-6, “there is provided a system for detecting the position of the face of the user and if either their mobile device moves and/or the user's face moves the use of the detected change of position of the face is applied to a game object to move and rotate the game object.”): determining a motion vector of the virtual object according to the rotation control vector and a current motion velocity of the virtual object (paragraph 55, “Vector2 facePosition = −HeadTracker.newPosition * scaleFactor; also, paragraph 55, “float scaleFactor = 1f; also, paragraph 56, “moveSpeed = direction.magnitude * 10f; //constant for scaling speed”); and determining a position of the virtual object after the translational motion through the motion vector (paragraph 56, “paddleTransform.Translate(direction * Time.deltaTime * moveSpeed)”; also, paragraph 55, “paddleTransform.position = Vector3.Lerp(paddlePosition, paddleTransform.position, Time.deltaTime * moveSpeed)”. Regarding claim 13, Tolk discloses an electronic device, comprising: at least one processor and a memory; the memory storing computer-executed instructions; the at least one processor executing the computer-executed instructions stored in the memory to cause the electronic device to implement a method for controlling motion of a virtual object, comprising (paragraph 20, line(s) 1-6, “there is provided a system for detecting the position of the face of the user and if either their mobile device moves and/or the user's face moves the use of the detected change of position of the face is applied to a game object to move and rotate the game object.”; also, paragraph 5, Portable Device is a generic name that encapsulates general purpose devices that can be wearable such as smart watches and those that can he carried comfortably by the user like smart phones, tablets and mp4 players with Android or iOS systems, and dedicated devices. The portable devices mentioned that our invention makes use of contain front facing cameras.”): generating a rotation control vector according to a rotation state of a face of a user in a real three-dimensional space, the rotation state comprising a face rotation angle corresponding to a rotation of the face about at least one rotation axis in the real three- dimensional space, and a component of the rotation control vector in at least one dimension being associated with the face rotation angle corresponding to the rotation axis (paragraph 20, line(s) 1-6, “there is provided a system for detecting the position of the face of the user and if either their mobile device moves and/or the user's face moves the use of the detected change of position of the face is applied to a game object to move and rotate the game object.”; also, paragraph 41, line(s) 4-6, “These axes are y or yaw 102, x or pitch 103 and z or roll 104 axes for linear or rotational movement respectively.”; also paragraph 55, “Vector3 angles = new Vector3(HeadTracker.headYaw, HeadTracker.headPitch, HeadTracker.headRoll)”; also, paragraph 55, “//Headtrackers can detect the angle of the face to a certain degree and we will obtain the //values here.”); and controlling motion of the virtual object through the rotation control vector, the motion comprising rotational motion (paragraph 62, line(s) 31-36, “The relative position and rotation of the fate in relation to the entire picture can then serve as a way to obtain precise position and rotation values for game objects in a virtual environment making the face a 2D or 3D game object controller within a virtual environment.”; also, paragraph 55, “Quaternion paddleRotation = Quaternion.Euler(angles)”; also, paragraph 55, “paddleTransform.rotation = Quaternion.Slerp(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”), wherein controlling the motion of the virtual object through the rotation control vector comprises: converting the rotation control vector into a first rotation parameter, the first rotation parameter being used for representing a rotation policy through a predetermined number of first sub-parameters, and the predetermined number being greater than the number of dimensions of the rotation control vector (paragraph 55, “Quaternion paddleRotation = Quaternion.Euler(angles)”; also, paragraph 9, line(s) 6-8, “Game objects can be controlled within 2D and 3D virtual environments via setting the position, rotation and scale of their transform.”); obtaining a second rotation parameter of the virtual object, the second rotation parameter being used for representing a current orientation of the virtual object by means of the predetermined number of second sub-parameters (paragraph 55, “Quaternion current = GyroUtils.CurrentQuaternion”; also, paragraph 21, line(s) 12-14, “the gyroscopes rotation and orientation data is saved at this time as the base quaternion which serves as the reference data.”); determining a first angle between the first rotation parameter and the second rotation parameter; (paragraph 56, “float angle = Quaternion.Angle(paddleTransform.rotation, paddleRotation)”); and controlling the virtual object to perform rotational motion through the first angle (paragraph 56, “paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”) and a maximum character rotation angle between two adjacent frame images (paragraph 50, “Quaternion current = GyroUtils.CurrentQuaternion”; also, paragraph 55, “Quaternion paddleRotation = Quaternion.Euler(angles)”; also, paragraph 55, “paddleTransform.rotation = Quaternion.Slerp(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”). Regarding claim 18, Tolk discloses the device of claim 13, wherein both the first rotation parameter and the second rotation parameter are quaternions (paragraph 50, “Quaternion current = GyroUtils.CurrentQuaternion”; also, paragraph 55, “Quaternion paddleRotation = Quaternion.Euler(angles)”; also, paragraph 55, “paddleTransform.rotation = Quaternion.Slerp(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”). Regarding claim 19, Tolk discloses the device of claim 18, wherein controlling the virtual object to perform the rotational motion through the first angle comprises: determining a minimum value of the first angle and the maximum character rotation angle between two adjacent frame images as a second angle; performing an interpolation operation on the first quaternion and the second quaternion through the second angle, to obtain a corresponding third quaternion (paragraph 61, “If(angles > 10) // a considerable ammount of rotation of the face”; also, paragraph 55, “paddleTransform.rotation = Quaternion.Slerp(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”); and controlling the virtual object to perform rotational motion through the third quaternion (paragraph 56, “paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”). Regarding claim 20, Tolk discloses the device of claim 13, wherein controlling the motion of the virtual object through the rotation control vector comprises: in response to a determination that a modulus of the rotation control vector is greater than or equal to a predetermined threshold, controlling the motion of the virtual object through the rotation control vector (paragraph 61, “If(angles > 10) // a considerable ammount of rotation of the face”). Regarding claim 21, Tolk discloses the device of claim 13, wherein controlling the motion of the virtual object through the rotation control vector comprises: performing unitized processing on the rotation control vector, and controlling the motion of the virtual object through the rotation control vector after the unitized processing (paragraph 56, “direction.Normalize( ); //Normalize the direction vector”; also, paragraph 56, “faceSize = faceSize / ImageSize.magnitude; //normalize the size”). Regarding claim 24, Tolk discloses a non-transitory computer readable storage medium, wherein the computer readable storage medium stores computer-executed instructions which, when executed by a processor, cause a computing device to implement a method for controlling motion of a virtual object, comprising (paragraph 12, line(s) 1-3, “An app refers to a self-contained program or piece of software designed to fulfil a particular purpose; an application, especially as downloaded by a user to a mobile device.”; also, paragraph 20, line(s) 1-6, there is provided a system for detecting the position of the face of the user and if either their mobile device moves and/or the user's face moves the use of the detected change of position of the face is applied to a game object to move and rotate the game object.”): generating a rotation control vector according to a rotation state of a face of a user in a real three-dimensional space, the rotation state comprising a face rotation angle corresponding to a rotation of the face about at least one rotation axis in the three-dimensional space, and a component of the rotation control vector in at least one dimension being associated with the face rotation angle corresponding to the rotation axis (paragraph 20, line(s) 1-6, “there is provided a system for detecting the position of the face of the user and if either their mobile device moves and/or the user's face moves the use of the detected change of position of the face is applied to a game object to move and rotate the game object.”; also, paragraph 41, line(s) 4-6, “These axes are y or yaw 102, x or pitch 103 and z or roll 104 axes for linear or rotational movement respectively.”; also paragraph 55, “Vector3 angles = new Vector3(HeadTracker.headYaw, HeadTracker.headPitch, HeadTracker.headRoll)”; also, paragraph 55, “//Headtrackers can detect the angle of the face to a certain degree and we will obtain the //values here.”); and controlling motion of the virtual object through the rotation control vector, the motion comprising rotational motion (paragraph 62, line(s) 31-36, “The relative position and rotation of the fate in relation to the entire picture can then serve as a way to obtain precise position and rotation values for game objects in a virtual environment making the face a 2D or 3D game object controller within a virtual environment.”; also, paragraph 55, “Quaternion paddleRotation = Quaternion.Euler(angles)”; also, paragraph 55, “paddleTransform.rotation = Quaternion.Slerp(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”), wherein controlling the motion of the virtual object through the rotation control vector comprises: converting the rotation control vector into a first rotation parameter, the first rotation parameter being used for representing a rotation policy through a predetermined number of first sub-parameters, and the predetermined number being greater than a number of dimensions of the rotation control vector (paragraph 55, “Quaternion paddleRotation = Quaternion.Euler(angles)”; also, paragraph 9, line(s) 6-8, “Game objects can be controlled within 2D and 3D virtual environments via setting the position, rotation and scale of their transform.”); obtaining a second rotation parameter of the virtual object, the second rotation parameter being used for representing a current orientation of the virtual object by means of a predetermined number of second sub- parameters (paragraph 55, “Quaternion current = GyroUtils.CurrentQuaternion”; also, paragraph 21, line(s) 12-14, “the gyroscopes rotation and orientation data is saved at this time as the base quaternion which serves as the reference data.”) determining a first angle between the first rotation parameter and the second rotation parameter (paragraph 56, “float angle = Quaternion.Angle(paddleTransform.rotation, paddleRotation)”); and controlling the virtual object to perform rotational motion through the first angle (paragraph 56, “paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)”) and a maximum character rotation angle between two adjacent frame images (paragraph 61, “If(angles > 10) // a considerable ammount of rotation of the face”; also, paragraph 55, “paddleTransform.position = Vector3.Lerp(paddlePosition, paddleTransform.position, Time.deltaTime * moveSpeed)”). Claim Rejections - 35 USC § 103 In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claim(s) 7-10, and 22-23 is/are rejected under 35 U.S.C. 103 as being unpatentable over Tolk et al. (U.S. Pub. No. 2016/0067617) in view of Delamont et al. (U.S. Pub. No 2020/0368616). Regarding claim 7, Tolk discloses the method of claim 1, wherein generating the rotation control vector according to the rotation state of the face of the user in the real three-dimensional space comprises: obtaining face rotation angles corresponding to a first rotation axis and a second rotation axis respectively (paragraph 55, “Vector3 angles = new Vector3(HeadTracker.headYaw, HeadTracker.headPitch, HeadTracker.headRoll)”; also, paragraph 55, “//Headtrackers can detect the angle of the face to a certain degree and we will obtain the //values here”), component of the rotation control vector in a third dimension according to the face rotation angle corresponding to the first rotation axis, the third dimension being in a vertical direction (paragraph 41, line(s) 4-6, “These axes are y or yaw 102, x or pitch 103 and z or roll 104 axes for linear or rotational movement respectively.”; also, paragraph 57, line(s) 13-16, “The change of position of the calculated center of the rectangle of the detected face is used for panning a game object in both the vertical Y axis direction and the horizontal X axis direction.”); determining the face rotation angle corresponding to the second rotation axis as a component of the rotation control vector in a first dimension, the first dimension being in a horizontal direction (paragraph 55, “Vector3 angles = new Vector3(HeadTracker.headYaw, HeadTracker.headPitch, HeadTracker.headRoll)”); and first rotation axis being a rotation axis located on a horizontal plane and parallel to a screen, and the second rotation axis being a rotation axis located in a vertical direction and setting a component of the rotation control vector in a second dimension to zero. However, in a similar field of endeavor, Delamont discloses the first rotation axis being a rotation axis located on a horizontal plane and parallel to a screen, and the second rotation axis being a rotation axis located in a vertical direction (Delamont: paragraph 89, line(s) 3-5, “data values of the user's head orientation expressed as pitch, roll and yaw (p, r, y) on second axes”) setting a component of the rotation control vector in a second dimension to zero (Delamont: paragraph 89, line(s) 1-5, “This process uses the combined data values from the user's head position three dimensional cartesian coordinates expressed as x, y, z together with data values of the user's head orientation expressed as pitch, roll and yaw (p, r, y) on second axes”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Tolk's invention of face tracking-based game object control with the features of Delamont's invention of mixed reality head orientation tracking with explicit pitch, roll, and yaw axis decomposition, because Tolk's existing extraction of rotation angles and mapping to control vector dimensions could be clarified by Delamont's explicit axis framework. One of ordinary skill in the art would recognize that applying Delamont's standard axis nomenclature and decomposition framework to Tolk's existing head angle extraction and control vector mapping would clarify and standardize which axes correspond to horizontal and vertical directions, and that selectively using only pitch and yaw while setting the remaining component to zero is a straightforward application of Delamont's selective axis usage to Tolk's three-component vector system. Regarding claim 8, Tolk as modified by Delamont discloses the method of claim 7, wherein determining the component of the rotation control vector in the third dimension according to the face rotation angle corresponding to the first rotation axis comprises: determining a component of the rotation control vector in a third dimension according to an opposite number of the face rotation angle corresponding to the first rotation axis (Tolk: paragraph 55, “Vector2 facePosition = −HeadTracker.newPosition * scaleFactor; also, paragraph 55, “float scaleFactor = 1f”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Tolk's invention of face tracking-based game object control with the features of Delamont's invention of mixed reality head orientation tracking with explicit pitch, roll, and yaw axis decomposition, because Tolk's negation principle for inverting tracked parameters could be applied to rotation angle components in the axis framework defined by Delamont. One of ordinary skill in the art implementing head-tracking control with Delamont's axis framework would naturally apply Tolk's demonstrated negation principle to the rotation angle component in the third dimension, recognizing that inverting a tracked parameter to achieve the correct directional mapping is the same mathematical operation regardless of whether it is applied to position or rotation values. Regarding claim 9, Tolk as modified by Delamont discloses the method of claim 8, wherein determining the component of the rotation control vector in the third dimension according to the opposite number of the face rotation angle corresponding to the first rotation axis comprises: determining a component of the rotation control vector in a third dimension through a first predetermined coefficient and an opposite number of the face rotation angle corresponding to the first rotation axis (Tolk: paragraph 55, “Vector2 facePosition = −HeadTracker.newPosition * scaleFactor; also, paragraph 55, “float scaleFactor = 1f”), the first predetermined coefficient being used to adjust the control sensitivity in the third dimension (Tolk: paragraph 55, “float scaleFactor = 1f”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Tolk's invention of face tracking-based game object control with the features of Delamont's invention of mixed reality head orientation tracking with explicit pitch, roll, and yaw axis decomposition, because Tolk's scaling and negation methodology could be applied to rotation angle components as clarified by Delamont's axis framework. One of ordinary skill in the art would recognize that applying Tolk's proven scaling and negation techniques to the rotation angle in the third dimension, as clarified by Delamont's axis definitions, is a routine application of the same control techniques Tolk already demonstrates for position values. Regarding claim 10, Tolk as modified by Delamont discloses the method of claim 9, wherein determining the component of the rotation control vector in the third dimension through the first predetermined coefficient and the opposite number of the face rotation angle corresponding to the first rotation axis comprises: determining a sum of the face rotation angle corresponding to the first rotation axis and a second predetermined coefficient as a correction angle (Tolk: paragraph 21, line(s) 12-14, “the gyroscopes rotation and orientation data is saved at this time as the base quaternion which serves as the reference data.”; also, paragraph 46, “Quaternion compensation = current * inverseBase”); and determining a product of an opposite number of the correction angle and the first predetermined coefficient as a component of the rotation control vector in a third dimension (Tolk: paragraph 55, “Vector2 facePosition = −HeadTracker.newPosition * scaleFactor; also, paragraph 55, “float scaleFactor = 1f”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Tolk's invention of face tracking-based game object control with the features of Delamont's invention of mixed reality head orientation tracking with explicit pitch, roll, and yaw axis decomposition, because Tolk's compensation and scaling methodology could be applied to rotation angles as clarified by Delamont's axis framework. One of ordinary skill in the art implementing rotation-based control would naturally apply Tolk's proven compensation and scaling techniques to the rotation control domain as clarified by Delamont's axis framework, recognizing that combining a measured rotation angle with a correction coefficient and then scaling by a sensitivity coefficient follows the exact mathematical and control principles that Tolk demonstrates for position-based control. Regarding claim 22, Tolk as modified by Delamont discloses the device of claim 13, wherein generating the rotation control vector according to the rotation state of the face of the user in the real three-dimensional space comprises: obtaining face rotation angles corresponding to a first rotation axis and a second rotation axis respectively (Tolk: paragraph 55, “Vector3 angles = new Vector3(HeadTracker.headYaw, HeadTracker.headPitch, HeadTracker.headRoll)”; also, paragraph 55, “//Headtrackers can detect the angle of the face to a certain degree and we will obtain the //values here.”), component of the rotation control vector in a third dimension according to the face rotation angle corresponding to the first rotation axis, the third dimension being in a vertical direction (Tolk: paragraph 41, line(s) 4-6, “These axes are y or yaw 102, x or pitch 103 and z or roll 104 axes for linear or rotational movement respectively.”; also, paragraph 57, line(s) 13-16, “The change of position of the calculated center of the rectangle of the detected face is used for panning a game object in both the vertical Y axis direction and the horizontal X axis direction.”); determining the face rotation angle corresponding to the second rotation axis as a component of the rotation control vector in a first dimension, the first dimension being in a horizontal direction (Tolk: paragraph 55, “Vector3 angles = new Vector3(HeadTracker.headYaw, HeadTracker.headPitch, HeadTracker.headRoll)”); and first rotation axis being a rotation axis located on a horizontal plane and parallel to a screen, and the second rotation axis being a rotation axis located in a vertical direction and setting a component of the rotation control vector in a second dimension to zero. However, in a similar field of endeavor, Delamont discloses the first rotation axis being a rotation axis located on a horizontal plane and parallel to a screen, and the second rotation axis being a rotation axis located in a vertical direction (Delamont: paragraph 89, line(s) 3-5, “data values of the user's head orientation expressed as pitch, roll and yaw (p, r, y) on second axes”) and setting a component of the rotation control vector in a second dimension to zero (Delamont: paragraph 89, line(s) 1-5, “This process uses the combined data values from the user's head position three dimensional cartesian coordinates expressed as x, y, z together with data values of the user's head orientation expressed as pitch, roll and yaw (p, r, y) on second axes”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Tolk's invention of face tracking-based game object control with the features of Delamont's invention of mixed reality head orientation tracking with explicit pitch, roll, and yaw axis decomposition, because Tolk's existing extraction of rotation angles and mapping to control vector dimensions could be clarified by Delamont's explicit axis framework. One of ordinary skill in the art would recognize that applying Delamont's standard axis nomenclature and decomposition framework to Tolk's existing head angle extraction and control vector mapping would clarify and standardize which axes correspond to horizontal and vertical directions, and that selectively using only pitch and yaw while setting the remaining component to zero is a straightforward application of Delamont's selective axis usage to Tolk's three-component vector system. Regarding claim 23, Tolk as modified by Delamont discloses the device of claim 22, wherein determining the component of the rotation control vector in the third dimension according to the face rotation angle corresponding to the first rotation axis comprises: determining a component of the rotation control vector in a third dimension according to an opposite number of the face rotation angle corresponding to the first rotation axis (Tolk: paragraph 55, “Vector2 facePosition = −HeadTracker.newPosition * scaleFactor; also, paragraph 55, “float scaleFactor = 1f”). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to have modified Tolk's invention of face tracking-based game object control with the features of Delamont's invention of mixed reality head orientation tracking with explicit pitch, roll, and yaw axis decomposition, because Tolk's negation principle for inverting tracked parameters could be applied to rotation angle components in the axis framework defined by Delamont. One of ordinary skill in the art implementing head-tracking control with Delamont's axis framework would naturally apply Tolk's demonstrated negation principle to the rotation angle component in the third dimension, recognizing that inverting a tracked parameter to achieve the correct directional mapping is the same mathematical operation regardless of whether it is applied to position or rotation values. Response to Arguments Applicants’ argument filed 07/22/2026 have been fully considered. On page 15 of the Applicant's Remarks, with respect to the rejection of claims 4, 7, 19, and 22 under 35 U.S.C. 112(b), the Applicant argues that the rejection is overcome because claim 4 has been amended to depend from claim 3 and claim 19 from claim 18, each of which establishes that the rotation parameters are quaternions, and because claims 7 and 22 now recite "a first rotation axis and a second rotation axis respectively." These arguments are persuasive. Claims 3 and 18 establish the quaternion identity for the claims that now depend from them, and claims 7 and 22 now introduce the first and second rotation axes. The rejection of claims 4, 7, 19, and 22 under 35 U.S.C. 112(b) is withdrawn. On pages 16 to 18 of the Applicant's Remarks, with respect to the rejection of claims 1, 13, and 24 under 35 U.S.C. 102(a)(1), the Applicant argues that Tolk does not teach "controlling the virtual object to perform rotational motion through the first angle and a maximum character rotation angle between two adjacent frame images." As shown in the citations, Tolk discloses "float angle = Quaternion.Angle(paddleTransform.rotation, paddleRotation)" (Tolk, paragraph [0056]). This teaches the first angle, because paddleTransform.rotation is the current orientation of the controlled object, paddleRotation is the orientation obtained from the face rotation values, and Quaternion.Angle returns the angle between the two, which is the angle between the second rotation parameter and the first rotation parameter that claim 1 recites. As shown in the citations, Tolk further discloses "paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)" (Tolk, paragraph [0056]). The quantity Time.deltaTime * rotationSpeed teaches a maximum character rotation angle between two adjacent frame images, because Time.deltaTime is the time elapsed from the preceding frame to the current frame, which is the interval between two adjacent frame images, rotationSpeed is an angular rate, and the product of the two is the greatest angle through which the operation turns the object in that frame. The same statement teaches controlling the virtual object to perform rotational motion through the first angle and that maximum, because it assigns the orientation of the object using the two orientations whose separation is the first angle together with that per-frame angular quantity. The Applicant's arguments read requirements into claim 1 that the claim does not recite. Claim 1 recites that the rotational motion is performed through the first angle and a maximum character rotation angle between two adjacent frame images, and the term "maximum" recites an upper limit. Claim 1 does not recite that the maximum is a product of a predetermined rotation angle and a time interval, that the two angles are compared, that a minimum value of them is selected as a second angle, that an interpolation is performed through any such value, that a third quaternion is obtained, that the bound is continuous, that the bound is independent of the magnitude of the input, or that any visual artifact is prevented. Those requirements appear at paragraphs [0065] to [0067] of the specification, and the selection and interpolation steps appear in claims 4 and 19. Paragraph [0066] of the specification states that the maximum character rotation angle "may be a product of a predetermined rotation angle and a time interval between two adjacent frame images," which is permissive and describes an embodiment rather than defining the term, so the broadest reasonable interpretation of the claim is not limited to that product. The individual arguments are addressed below on the claim as written, and, because Tolk teaches the narrower reading as well, on that reading in the alternative. On page 16 of the Applicant's Remarks, with respect to the rejection of claim 1, the Applicant argues that the added feature "imposes a ceiling on the per-frame rotational displacement," so that the virtual object's rotation "in any single frame interval cannot exceed the maximum character rotation angle," citing paragraph [0067] of the specification. Claim 1 recites a maximum and therefore recites an upper limit, but it recites no mechanism by which the limit is enforced, and the comparison, minimum-value selection, interpolation, and third quaternion the Applicant describes are recited in claims 4 and 19 rather than in claim 1. As shown in the citations, Tolk teaches an upper limit in any event. Tolk discloses "paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)" (Tolk, paragraph [0056]). This teaches that the rotation performed in a frame is bounded, because a rotation carried out at an angular rate for the duration of a single frame cannot exceed that rate multiplied by the length of the frame, and Time.deltaTime * rotationSpeed is that product. The Applicant states at page 18 of the Remarks that RotateTowards "moves toward a target rotation at a constant angular speed," which describes the same behavior. On pages 16 and 17 of the Applicant's Remarks, with respect to the rejection of claim 1, the Applicant argues that Tolk's paragraph [0061] "merely implements a threshold check on the magnitude of face rotation between consecutive frames, which serves as a gate to filter out minor face movements," and that this is "a binary pass/fail filter on face rotation input." As shown in the citations, Tolk discloses "Transform.rotation = deviceRotation * Quaternion.Inverse(faceRotation)" within the body of the condition at paragraph [0061]. This teaches that the orientation of the game object itself is assigned when the condition is satisfied, so the paragraph does not pass or discard an input value but governs whether the object's orientation is updated in that frame. As shown in the citations, Tolk further discloses that the method operates "by using the position and rotation of the detected face in relation to the device and the reference frame UV coordinates to calculate the new position and rotation of any designated object in the virtual environment" (Tolk, paragraph [0021], lines 2-7). This teaches that the rotation of the detected face is the quantity from which the rotation of the controlled object is computed. Paragraph [0061] conditions the rotation on a minimum angle rather than a maximum, and it is cited as additional support. The maximum character rotation angle between two adjacent frame images is taught by paragraph [0056] as set forth above. On page 17 of the Applicant's Remarks, with respect to the rejection of claim 1, the Applicant argues that the maximum character rotation angle "is not a threshold for filtering face input" but "operates as a per-frame upper bound on how much the virtual object's character (i.e., the virtual object itself, not the user's face) may rotate in any single frame interval," and that paragraphs [0065] to [0067] of the specification disclose it as "a product of a predetermined rotation angle and a time interval between two adjacent frame images." Claim 1 recites "a maximum character rotation angle between two adjacent frame images," and that recitation is given full effect. What claim 1 does not recite is the product by which paragraph [0066] of the specification says the maximum may be computed. The word "predetermined" appears in claim 1 only in "a predetermined number of first sub-parameters" and "a predetermined number of second sub-parameters," neither of which qualifies the maximum character rotation angle, and the word "product" does not appear in claim 1 at all. The definition the Applicant advances is therefore not a requirement of the claim. As shown in the citations, Tolk teaches the limitation on that definition in any event. Tolk discloses "paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)" (Tolk, paragraph [0056]). The quantity Time.deltaTime * rotationSpeed teaches a product of an angular rate and the interval between two adjacent frame images, and Tolk supplies that product to the statement that assigns the orientation of the controlled object rather than to the detection of the face. On page 17 of the Applicant's Remarks, with respect to the rejection of claim 1, the Applicant argues as a first distinction that Tolk's threshold "operates on the user's face rotation (i.e., the input signal), whereas the claimed 'maximum character rotation angle' operates on the virtual object's rotation output." Claim 1 draws no distinction between an input and an output and recites no filtering, so the distinction is not a requirement of the claim. As shown in the citations, the quantity relied upon as the maximum character rotation angle is not the threshold at paragraph [0061] but the quantity Time.deltaTime * rotationSpeed at paragraph [0056], and Tolk supplies that quantity to "paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)" (Tolk, paragraph [0056]). This teaches a quantity applied to the rotation of the object itself, because paddleTransform.rotation is the orientation of the controlled object and is the value the statement assigns. On page 17 of the Applicant's Remarks, with respect to the rejection of claim 1, the Applicant argues as a second distinction that "there is no per-frame capping or bounding mechanism for the virtual object's rotation itself," and that the claimed maximum acts as "a continuous upper bound that limits the virtual object's actual rotation per frame, regardless of how large the face rotation input may be." Claim 1 does not recite that the bound is continuous and does not recite that the bound is independent of the magnitude of the input, so neither is a requirement of the claim. As shown in the citations, Tolk teaches both in any event. Tolk discloses "paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)" (Tolk, paragraph [0056]). This teaches a bound applied in every frame, because Time.deltaTime is the interval of the frame then being rendered and the quantity is therefore formed anew in each frame, and it teaches a bound that does not vary with the input, because the quantity is formed from the frame interval and the angular rate rather than from the magnitude of the detected face rotation. On pages 17 and 18 of the Applicant's Remarks, with respect to the rejection of claim 1, the Applicant argues as a third distinction that "Tolk does not disclose or suggest any concept of a 'maximum character rotation angle between two adjacent frame images' that is determined based on frame intervals," and that "Tolk's fixed threshold of 10 degrees bears no relationship to frame timing or frame intervals." The quantity relied upon as the maximum character rotation angle is not the ten degree threshold. As shown in the citations, Tolk discloses "paddleTransform.rotation = Quaternion.RotateTowards(paddleTransform.rotation, paddleRotation, Time.deltaTime * rotationSpeed)" (Tolk, paragraph [0056]). The quantity Time.deltaTime * rotationSpeed teaches a maximum determined from the frame interval, because Time.deltaTime is the time elapsed from the preceding frame to the current frame, so the quantity is fixed by the frame interval and varies with the frame rate. The Applicant additionally characterizes the test at paragraph [0061] at page 16 of the Remarks as measuring face rotation "between consecutive frames," which is a measurement taken from one frame to the next. On page 18 of the Applicant's Remarks, with respect to the rejection of claim 1, the Applicant argues that Tolk's Slerp "performs a simple spherical linear interpolation between the current and target quaternions using a time-based interpolation factor (Time.deltaTime * rotationSpeed)," that RotateTowards "moves toward a target rotation at a constant angular speed," and that "neither of these operations involves determining a 'maximum character rotation angle between two adjacent frame images' and using that maximum angle together with the first angle to control the rotational motion of the virtual object." The operation the Applicant describes is the operation relied upon, and the description identifies both of the quantities claim 1 recites. The interpolation the Applicant identifies runs between the object's current orientation and the target orientation, and the angle between those two orientations is the first angle claim 1 recites. The factor the Applicant identifies and quotes, Time.deltaTime * rotationSpeed, is formed from the interval between two adjacent frame images and is the greatest angle through which the object is turned in that frame, which is the maximum character rotation angle claim 1 recites. The Applicant's conclusion rests on Tolk not using the terminology of the claim, and a reference need not use the words of the claim to teach what the claim requires. On page 18 of the Applicant's Remarks, with respect to the rejection of claim 1, the Applicant argues that the claimed configuration "provides the technical effect of preventing discontinuous visual artifacts (i.e., 'jumpy' or 'snapping' rotation) while maintaining responsive control." Claim 1 recites no such result. The technical effect an applicant attributes to a claimed step does not distinguish that step from prior art that performs the step. On page 18 of the Applicant's Remarks, with respect to the rejection of claims 13 and 24, the Applicant argues that those claims "have been amended in a similar manner as claim 1 and are in condition for allowance for similar reasons." The limitation added to each of claims 13 and 24 is the limitation added to claim 1, and paragraph [0056] of Tolk is applied to each of those claims in the rejection set forth above. The argument is not persuasive for the reasons given for claim 1. On page 18 of the Applicant's Remarks, with respect to the rejection of claims 3 to 6, 11, and 18 to 21, the Applicant argues that those claims are in condition for allowance "at least for the reason of dependence from an allowable claim." The arguments rest solely on the allowability of claims 1 and 13 and are not persuasive for the reasons given for those claims. No argument is presented as to the limitations these claims add, and each is separately mapped to Tolk in the rejection set forth above. The rejection of claims 1, 3, 4, 5, 6, 11, 13, 18, 19, 20, 21, and 24 under 35 U.S.C. 102(a)(1) over Tolk is maintained. On page 19 of the Applicant's Remarks, with respect to the rejection of claims 7 to 10, 22, and 23 under 35 U.S.C. 103, the Applicant argues that Tolk fails to teach the feature added to claim 1 and that the feature "is now incorporated into all independent claims 1, 13, and 24 from which claims 7-10, 22, and 23 ultimately depend." Tolk teaches that feature for the reasons set forth above, so the premise of the argument does not hold, and the argument is not persuasive. On page 19 of the Applicant's Remarks, with respect to the rejection of claims 7 to 10, 22, and 23, the Applicant argues that "Delamont likewise does not disclose or suggest the concept of a 'maximum character rotation angle between two adjacent frame images' that caps the virtual object's per-frame rotational displacement," and that Delamont's paragraph [0089] "pertains to head orientation tracking and axis decomposition, not to a frame-rate-dependent rotation capping mechanism." Delamont is not relied upon for that feature, which Tolk teaches. As the Applicant states in the same paragraph, Delamont is relied upon for its disclosure of axis decomposition. Delamont supplies two limitations of claims 7 and 22, namely "the first rotation axis being a rotation axis located on a horizontal plane and parallel to a screen, and the second rotation axis being a rotation axis located in a vertical direction" and "setting a component of the rotation control vector in a second dimension to zero." Every other limitation of claims 7 and 22, and every limitation of claims 8, 9, 10, and 23, is taught by Tolk as set forth in the rejection above. On page 19 of the Applicant's Remarks, with respect to the rejection of claims 7 to 10, 22, and 23, the Applicant argues that "neither reference, whether taken individually or in combination, teaches or suggests controlling the virtual object to perform rotational motion through a first angle and a maximum character rotation angle between two adjacent frame images." A rejection under 35 U.S.C. 103 rests on what the combined teachings of the references would have suggested to one of ordinary skill in the art. The feature is taught by Tolk within the combination, and an argument that Delamont fails to teach a feature assigned to Tolk does not address the rejection. On pages 19 and 20 of the Applicant's Remarks, with respect to the rejection of claims 7 to 10, 22, and 23, the Applicant argues that even assuming a motivation to combine, "the combination would, at most, clarify axis nomenclature and decomposition in Tolk's system" and "would not introduce the concept of controlling the virtual object's rotational motion through a first angle and a maximum character rotation angle between two adjacent frame images." The combination is not relied upon to introduce that feature, which Tolk teaches. Delamont is combined with Tolk to supply the assignment of the first and second rotation axes and the setting of the remaining component to zero. As shown in the citations, Tolk discloses "Vector3 angles = new Vector3(HeadTracker.headYaw, HeadTracker.headPitch, HeadTracker.headRoll)" (Tolk, paragraph [0055]), which teaches extracting the head rotation angles and mapping them to the components of a control vector but does not state which axis lies on a horizontal plane parallel to the screen and which lies in a vertical direction. Claims 7 and 22 require that assignment, and Delamont discloses "data values of the user's head orientation expressed as pitch, roll and yaw (p, r, y) on second axes" (Delamont, paragraph [0089], lines 3-5). The combination supplies what it is relied upon to supply. Conclusion THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a). A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action. Any inquiry concerning this communication or earlier communications from the examiner should be directed to Jai Li whose telephone number is (571)272-1170. The examiner can normally be reached Mon-Thu between 06:00-16:00 EST. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Xiao Wu can be reached at (571)272-7761. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /JAI W LI/Junior Patent Examiner, Art Unit 2613 /XIAO M WU/Supervisory Patent Examiner, Art Unit 2613
Read full office action

Prosecution Timeline

Oct 18, 2024
Application Filed
Apr 22, 2026
Non-Final Rejection mailed — §102, §103
Jul 22, 2026
Response Filed
Sep 03, 2026
Final Rejection mailed — §102, §103 (current)

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
Grant Probability
Moderate
PTA Risk
Based on 0 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month