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
This action is in response to the amendment filed on July 2nd, 2026. Claims 1, 3, 9-10, 15-17 and 19-20 have been amended. Claims 2 and 7 have been canceled. Applicant’s amendments to the claims have overcome the 35 USC 103 rejections previously set forth in the office action mailed April 2nd, 2026, however, new rejections have been issued, as necessitated by amendment.
Response to Arguments
Applicant’s remaining arguments regarding the prior § 103 rejection are moot in view of the amendments, and the Examiner has introduced new grounds of rejections based on new references to address amended limitations.
Regarding arguments to independent claims 10 and 17, they have been amended in an analogous manner to claim 1, and, for the reasons discussed above, the prior § 103 rejections of claims 10 and 17 are not maintained and new grounds of rejection are set forth below.
Applicant’s arguments regarding the dependent claims being in condition for allowance due to the reasons related to the corresponding independent claims are not persuasive because the independent claims are not allowed, therefore the dependent claims remain rejected.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
Claim 9 is rejected under 35 U.S.C. 112(b), as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor, or for pre-AIA the applicant regards as the invention.
Claim 9 is indefinite because the scope of the “replacing the heuristic time difference value within the circular buffer” is confusing/unclear, particularly the manner in which the heuristic time difference value, which is generated using the circular buffer which stores a plurality of time difference values, recited in claim 1. Claim 9 describes the heuristic time difference value within the circular buffer.
For the purpose of advancing prosecution, Examiner interprets claim 9 as replacing one of the pluralities of time difference values within the circular buffer with a new time difference value.
Claims 11 and 18 have similar limitations as of claim 9, therefore it is rejected under the same rationale as claim 9.
Claim Rejections - 35 USC § 103
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.
Claims 1, 10, 12-17, and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over He (US20220152507A1), Mao (EP2456160A1), and Nicolades (US11896904B2).
Regarding claim 1, He teaches a method comprising: receiving a position value for a feature within a rendered entity over a network, wherein a latency within the network varies (He; ¶0029, describes that “all position information cannot be transmitted to the clients in each frame” and “there is also a delay and an error in data transmission” and, He; ¶0037, the synchronization interval is not strictly fixed (varies). This teaches receiving a position value for a rendered entity feature over a network with varying latency) updating the position value for the feature (He; ¶0041, describes the client executes the correction policy to move the target object from the second position to the first position. This teaches updating the position value for the feature) determining an extrapolated value using the heuristic time difference value (He; ¶0093-0096, describes acquiring “a maximum displacement [S1] of the target object within the update time window period” according to the first speed, first time difference (t), and maximum acceleration calculated using:
PNG
media_image1.png
36
138
media_image1.png
Greyscale
. The client calculates a displacement using the time difference value. This teaches determining an extrapolated value using the heuristic time difference value.) modifying the position value with the extrapolated value to generate an updated position value for the feature (He; ¶0041, describes the client executes the correction policy during the update time window period so the target object moves from the second position to the first position. The extrapolated displacement is applied to the existing position to produce a corrected position. This teaches modifying the position value with the extrapolated value to generate an updated position value for the feature.)
However, He does not explicitly disclose the position value of the feature is for a virtual reality environment and transmitting the updated position value for the feature within the network, wherein the updated position value enhances smoothness of updating a position of the rendered entity in the virtual reality environment.
Mao teaches for a virtual reality environment (Mao; ¶0002, states “Network game is one of Virtual Reality (VR) application technique”) and transmitting the updated position value for the feature within the network, wherein the updated position value enhances smoothness of updating a position of the rendered entity in the virtual reality environment (Mao; ¶0012, describes “a time that the network game client transmits a second data packet to the network game server”, the client transmits updated game-state information to the server within the network to synchronize the game-state (synchronized game-state information enhances smoothness). This teaches transmitting the updated position value within the network wherein the updated position value enhances smoothness of updating a position of the rendered entity in the virtual reality environment).
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to modify the position-correction method of He with the client-server transmission of Mao to maintain a synchronized state between client and server. The motivation for such a combination would have been to improve user experience by enhancing smoothness.
However, He in view of Mao does not explicitly disclose generating a heuristic time difference value using a circular buffer, wherein the circular buffer stores a plurality of time difference values that correspond to variances within the latency of the network and the heuristic time difference value is determined from a running average of the plurality of time difference values in the circular buffer
Nicolades teaches using a circular buffer (Nicolades; ¶0041, describes circular queues, or “revolver” data structure, for reading and writing data across concurrent threads and, Nicolades; ¶0048, describes states stored in respective queue slots and retained for later access, where reversing through a replay is done by halting the progression and going backward through the queue (sequential/successive). This teaches circular-buffer storage retaining a plurality of successive data values.) and using a running average to determine simulation timing according to network performance (Nicolades; ¶0045, describes calculating and enforcing an average delay as a function of performance, or using a “rolling average” to delay simulations with timing parameters selected based on network conditions to facilitate smooth gameplay. This teaches determining a timing value for networked simulation from a running average calculation over network delay.) In the combination, He’s latency dependent time difference values are stored in the circular buffer of Nicolades and determines the heuristic time difference value from a running average of the plurality of time difference values in the circular buffer.
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to modify the method of He in view of Mao with the circular buffer storage and rolling average timing of Nicolades. The motivation for such a combination would have been to provide the benefit of a smoothed heuristic time difference value for positioning for networks with varying latency.
Regarding claim 10, He teaches a method comprising: receiving a position value for a feature, wherein a sampling rate for the position value varies (As previously discussed in claim 1, He; ¶0029, describes receiving a position value and, ¶0037, describes “an interval between data received by each target object can be counted according to an existing estimated server time when server information is received” and, ¶0038, “The farther the object… the greater the time interval for sending data…the greater the update time window period”. The client receives position values from the server at a rate that varies for each object based on transmission conditions. This teaches receiving a position value for a feature wherein a sampling rate for the position value varies.) updating the position value for the feature (He; ¶0041, describes the client executes the correction policy to move the target object from the second position to the first position. This teaches updating the position value for the feature.) determining an extrapolated value using the heuristic time difference value (¶0093-0096, describes acquiring “a maximum displacement [S1] of the target object within the update time window period” according to the first speed, first time difference (t), and maximum acceleration calculated using:
PNG
media_image1.png
36
138
media_image1.png
Greyscale
. The client calculates a displacement using the time difference value. This teaches determining an extrapolated value using the heuristic time difference value.) modifying the position value with the extrapolated value to generate an updated position value for the feature (¶0041, describes the client executes the correction policy during the update time window period so the target object moves from the second position to the first position. The extrapolated displacement is applied to the existing position to produce a corrected position. This teaches modifying the position value with the extrapolated value to generate an updated position value for the feature.)
However, He does not explicitly disclose the position value of the feature is for a virtual reality environment and transmitting the updated position value for the feature for use in the virtual reality environment.
Mao teaches for a virtual reality environment (Mao; ¶0002, states “Network game is one of Virtual Reality (VR) application technique”) and transmitting the updated position value for the feature for use in the virtual reality environment (Mao; ¶0012, describes “a time that the network game client transmits a second data packet to the network game server”, the client transmits updated game-state information to the server within the network to synchronize the game-state (synchronized game-state information enhances smoothness). This teaches transmitting the updated position value for use in the virtual reality environment.
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to modify the position-correction method of He with the client-server transmission of Mao to maintain a synchronized state between client and server. The motivation for such a combination would have been to improve user experience by enhancing smoothness.
However, He in view of Mao does not explicitly disclose generating a heuristic time difference value using a circular buffer, wherein the circular buffer stores a plurality of time difference values that correspond to variances within a latency of the virtual reality environment and the heuristic time difference value is determined from a running average of the plurality of time difference values in the circular buffer.
Nicolades teaches using a circular buffer (Nicolades; ¶0041, describes circular queues or a “revolver” data structure for reading and writing data across concurrent threads and, Nicolades; ¶0048, describes states successive stored in respective queue slots and retained for later access, where reversing through a replay is done by halting the progression and going backward through the queue (sequential/successive). This teaches circular-buffer storage retaining a plurality of successive data values.) and using a running average to determine simulation timing according to network performance (Nicolades; ¶0045, describes calculating and enforcing an average delay as a function of performance, or using a “rolling average” to delay simulations with timing parameters selected based on network conditions to facilitate smooth gameplay. This teaches determining a timing value for networked simulation from a running average calculation over network delay for the virtual reality environment.) In the combination, He’s latency dependent time difference values are stored in the circular buffer of Nicolades and determines the heuristic time difference value from a running average of the plurality of time difference values in the circular buffer.)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to modify the method of He in view of Mao with the circular buffer storage and rolling average timing of Nicolades. The motivation for such a combination would have been to provide the benefit of a smoothed heuristic time difference value for positioning for networks with varying latency.
Claim 17, has similar limitations as of claim 1, therefore it is rejected under the same rationale as claim 1, except claim 17 recites “A non-transitory computer-readable medium having stored thereon processor-executable instructions for performing operations”. He; ¶0009, describes a computer device with a processor and memory and, “the processor being configured to execute the program instruction stored in the memory”.
Regarding claim 12, He in view of Mao and Nicolades teaches the method of claim 10, wherein the feature having the updated position value is within a rendered image or entity (He; ¶0029, describes the NPC continues to move within the client’s rendered game display between server updates, the target object whose position value is updated is a feature within a rendered entity. This teaches the feature having the updated position value being within a rendered image or entity.)
Regarding claim 13, He in view of Mao and Nicolades teaches the method of claim 12, wherein the position value is received over a network (He; ¶0029, describes the client receives position data transmitted from the server, over a network; the position value for the object is received over a network. This teaches the position value being received over a network.)
Regarding claim 14, He in view of Mao and Nicolades teaches the method of claim 13, wherein the network is subject to the latency (He; ¶0029, describes “there is also a delay and an error in data transmission”. The network the position values are received is subject to latency. This teaches the network being subject to latency.)
Regarding claim 15, He in view of Mao and Nicolades teaches the method of claim 10, further comprising generating an actual time difference value for each of the plurality of time difference values by determining a time difference between two host position packets for the respective time difference values (He; ¶0037, states, “an interval between data received by each target object can be counted according to an existing estimated server time when server information is received”. The client measures the time difference between successive packets (carrying position) received from the server for each target object. This teaches generating an actual time difference value for each of the plurality of time difference values by determining a time difference between two host position packets for the respective time difference values) wherein the time difference is determined by receiving the two host position packets (He; ¶0029, describes the client receives position data transmitted from the server over a network and, ¶0037, that “an interval between data received by each target object can be counted” when server information is received. This teaches determining the time difference by retrieving the two host position packets.) calculating a period of time between when a first host position packet of the two host position packets is received and when a second host position packet of the two host position packets is received ((He; ¶0037, describes that “an interval between data received by each target object can be counted” when server information is received and the update time window period is “is a time interval for interaction between the client and a server.” The client calculates the period of time between retrieval of successive packets carrying position data from the network. This teaches calculating a period of time between when a first host position packet is received and when a second host position packet is received.)
Claim 19, has similar limitations as of claim 15, therefore it is rejected under the same rationale as claim 15.
Regarding claim 16, He in view of Mao and Nicolades teaches the method of claim 10, further comprising generating an actual time difference value for each of the plurality of time difference values by determining a time difference between two host position packets for the respective time difference values (He; ¶0037, states, “an interval between data received by each target object can be counted according to an existing estimated server time when server information is received”. The client measures the time difference between successive packets (carrying position) received from the server for each target object. This teaches generating an actual time difference value for each of the plurality of time difference values by determining a time difference between two host position packets for the respective time difference values.) determining a total time difference value based on the actual difference values of the plurality of time values (He; ¶0058; describes determining idealServerTime from SmoothServerTime, realDeltaTime, and logicServerTime. The client combines multiple actual time difference values into a single time value. This teaches determining a total time difference value based on the actual difference values of the plurality of time values.) wherein the heuristic time difference value is based on the total time difference value and a number of the plurality of time difference values (He; ¶0058, describes determining idealServerTime from SmoothServerTime, realDeltaTime, and logicServerTime. The client derives the heuristic time difference value from both the aggregated total time value and one or more of the stored time difference values. This teaches the heuristic time difference value being based on the total time difference value and a number of the plurality of time difference values.)
Claim 20, has similar limitations as of claim 16, therefore it is rejected under the same rationale as claim 16.
Regarding claim 3, He in view of Mao and Nicolades teaches the method of claim 1, further comprising generating an actual time difference value for each of the plurality of time difference values by determining a time difference between two host position packets for the respective time difference values (He; ¶0037, states, “an interval between data received by each target object can be counted according to an existing estimated server time when server information is received”. The client measures the time difference between successive packets (carrying position) received from the server for each target object. This teaches generating an actual time difference value for each of the plurality of time difference values by determining a time difference between two host position packets for the respective time difference values).
Regarding claim 4, He in view of Mao and Nicolades, teaches the method of claim 3, wherein the time difference is determined by retrieving the two host position packets from the network (He; ¶0029, describes the client receives position data transmitted from the server over a network and, ¶0037, that “an interval between data received by each target object can be counted” when server information is received. This teaches determining the time difference by retrieving the two host position packets from the network.)
Regarding claim 5, He in view of Mao and Nicolades teaches the method of claim 4, further comprising calculating a period of time between when a first host position packet of the two host position packets is retrieved from the network and when a second host position packet of the two host position packets is retrieved from the network (He; ¶0037, describes that “an interval between data received by each target object can be counted” when server information is received and the update time window period is “is a time interval for interaction between the client and a server.” The client calculates the period of time between retrieval of successive packets carrying position data from the network. This teaches calculating a period of time between when a first host position packet is retrieved from the network and when a second host position packet is retrieved from the network.)
Regarding claim 6 He in view of Mao and Nicolades teaches the method of claim 3, further comprising determining a total time difference value based on the actual difference values of the plurality of time values (He; ¶0058; describes determining idealServerTime from SmoothServerTime, realDeltaTime, and logicServerTime. The client combines multiple actual time difference values into a single time value. This teaches determining a total time difference value based on the actual difference values of the plurality of time values.)
Regarding claim 8, He in view of Mao and Nicolades teaches the method of claim 6, wherein the total time difference value varies over a period of time (He; ¶0065, describes that SmoothServerTime is continuously recalculated each update using an algorithm that includes idealServerTime, logicServerTime, and SmoothRate. ¶0062-0063, describes adjusting smoothRate when the smooth server time needs to be adjusted, the aggregated total time difference value is continuously updated as network conditions change. This teaches the total time difference value varying over a period of time.)
Claims 9, 11, and 18 are rejected under 35 U.S.C. 103 as being unpatentable over He (US20220152507A1), Mao (EP2456160A1), Nicolades (US11896904B2), and Skaljak (US20220051093A1).
Regarding claim 9, He in view of Mao and Nicolades teaches the method of claim 1.
However, He in view of Mao and Nicolades does not explicitly disclose replacing the heuristic time difference value within the circular buffer with a new heuristic time difference value.
Skaljak teaches replacing the heuristic time difference value within the circular buffer with a new heuristic time difference value (Skaljak; ¶0059, describes writing data to a ring buffer and reading data from the ring buffer and, Skaljak; ¶0065, describes writing to next slots in the ring buffer and overwrites any data previously located at that slot. When the buffer capacity is reaches, the buffer wraps around and the new data overwrites the slot storing the oldest data. This teaches replacing a stored value within the circular buffer with a new value as data is generated. In the combination, a stored time difference value within the circular buffer is replaced with a new time difference value as new values are generated.)
It would have been obvious to one of ordinary skill in the art, before the effective filing date, to modify the method of He in view of Mao and Nicolades with the circular overwriting of Skaljak. The motivation for such a combination would have been to provide the benefit of reducing memory allocation/use.
Claim 11, has similar limitations as of claim 9, therefore it is rejected under the same rationale as claim 9.
Claim 18, has similar limitations as of claim 9, therefore it is rejected under the same rationale as claim 9.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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 DAN F KALHORI whose telephone number is (571)272-5475. The examiner can normally be reached Mon-Fri 8:30-5:30 ET.
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, DEVONA E FAULK can be reached at (571) 272-7515. 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.
/DAN F KALHORI/Examiner, Art Unit 2618
/DEVONA E FAULK/Supervisory Patent Examiner, Art Unit 2618