US 11,029,805 C1 (13,089th)
Real-time preview of connectable objects in a physically-modeled virtual space
Edmund Graves Brown, IV, Weston, FL (US); Javier Antonio Busto, Plantation, FL (US); Jeffrey A. Scott, Tamarac, FL (US); and Jeremy Vanhoozer, Delray Beach, FL (US)
Filed by Magic Leap, Inc., Plantation, FL (US)
Assigned to MAGIC LEAP, INC.
Reexamination Request No. 90/019,575, Jul. 8, 2024.
Reexamination Certificate for Patent 11,029,805, issued Jun. 8, 2021, Appl. No. 16/508,197, Jul. 10, 2019.
Ex Parte Reexamination Certificate issued on Nov. 19, 2025.
Int. Cl. G06F 3/04815 (2022.01); G06F 1/16 (2006.01); G06F 3/01 (2006.01); G06F 3/04845 (2022.01); G02B 27/00 (2006.01); G02B 27/01 (2006.01)
CPC G06F 3/017 (2013.01) [G06F 1/1686 (2013.01); G06F 3/013 (2013.01); G06F 3/04815 (2013.01); G02B 27/0093 (2013.01); G02B 2027/0138 (2013.01)]
OG exemplary drawing
AS A RESULT OF REEXAMINATION, IT HAS BEEN DETERMINED THAT:
Claims 5-7 and 11 are cancelled.
Claims 1, 8-10 and 17 are determined to be patentable as amended.
Claims 2-4 and 12-16, dependent on an amended claim, are determined to be patentable.
New claims 18-26 are added and determined to be patentable.
1. An augmented reality (AR) system, comprising:
a user input device configured to receive user input in an environment of a user of the AR system;
a display configured to present virtual content to the user of the AR system;
non-transitory computer storage configured to store:
a list of two or more connectable virtual objects including spatial information for each of the connectable [ virtual ] objects, wherein each connectable virtual object has at least one node, wherein a node defines a point in space with respect to the corresponding connectable virtual object at which the connectable virtual object can be connected to another connectable virtual object, and
a list of one or more nodes for each of the connectable virtual objects; and
a hardware processor in communication with the non-transitory computer storage, the hardware processor programmed to:
receive user input from the user input device indicative of a manipulation of at least one of the connectable virtual objects;
[ generate a list of active objects based on the user input, and generate a list of active nodes comprising available nodes from the nodes of the active objects;]
identify a first of the at least one of the connectable virtual objects as an [ the ] active object based on the user input;
[ generate a list of target nodes comprising available nodes from the nodes of connectable virtual objects excluding the active objects;
generate a list of node pairs comprising valid pairs of nodes between the list of active nodes and the list of target nodes;
calculate a connection score for each of the node pairs using a connection score heuristic;
select the node pair having a highest or lowest connection score as an active node pair;]
identify at least one of the connectable virtual objects as a target object [ , the target object sharing a node in the active node pair based on the list of node pairs;]
determine that a node of the active object and a node of the target object are compatible; and
generate a preview of the active object connected to the target object [ ;
determine whether the preview overlaps one or more other connectable objects or one or more non-connectable objects, and
generate a visual indication of whether the preview overlaps the one or more other connectable objects or the one or more non-connectable objects.]
8. The system of claim 7 [ 1] , wherein the connection score heuristic comprises a measurement of a distance between the nodes for each of the node pairs.
9. The system of claim 7 [ 1] , wherein to generate the preview, the hardware processor is further programmed to: reposition and rotate the preview to be connected to the target object via the active node pair.
10. The system of claim 7 [ 1] , wherein the hardware processor is further programmed to: determine whether the nodes of the active node pair are compatible using a compatibility heuristic, and generate a visual indication of whether the connection between the active object and the candidate connectable object is valid based on the determination of whether the nodes of the active node pair are compatible.
17. A method comprising:
under control of a preview system for connectable virtual objects comprising computing hardware:
receiving user input from a user input device indicative of a manipulation of at least one of a plurality of connectable virtual objects from a list of connectable virtual objects, the list of connectable virtual objects including spatial information for each of the connectable virtual objects and a list of one or more nodes for each of the connectable virtual objects, wherein each connectable virtual object has at least one node, and wherein a node defines a point in space with respect to the corresponding connectable virtual object at which the connectable virtual object can be connected to another connectable virtual object;
identifying a first of the at least one of the connectable virtual objects as an active object based on the user input;
identifying at least one of the connectable virtual objects as a target object;
determining that a node of the active object and a node of the target object are compatible; and
generate [ generating ] a preview of the active object connected to the target object [ , including simulating physical properties of each of the active object and the target object as subject to physical laws within the preview;
determining whether the preview overlaps another connectable object or a non-connectable object; and
generating a visual indication of whether the preview overlaps the other connectable object or the non-connectable object,
wherein the identifying the active object and the identifying the target object include evaluating a connection score heuristic of the node of the active object and the target object from the at least one connectable virtual objects;
wherein, after evaluating the connections score heuristic, the determining that the node of the active object and the node of the target object are compatible by evaluating a compatibility heuristic; and
wherein the method further comprises determining a user setting associated with the preview, including:
upon the determining that the user setting is a first user setting, generating the preview only when the node of the active object and the node of the target object satisfy the compatibility heuristic, and
upon the determining that the user setting is a second user setting, generating the preview regardless of whether the node of the active object and the node of the target object satisfy the compatibility heuristic] .
[ 18. The system of claim 1, wherein the hardware processor is further programmed to generate a list of the one or more of the other connectable object or the one or more non-connectable objects that overlap the preview, and wherein the selected of the one or more other connectable objects or the selected of the one or more non-connectable objects are excluded from the list of the one or more of the other connectable object or the one or more non-connectable objects that otherwise overlap the preview.]
[ 19. The method of claim 17, wherein the node of the active object is associated with a first diameter and the node of the target object is associated with a second diameter, and wherein the determining that the node of the active object is compatible with the node of the target object includes determining that the first diameter matches the second diameter.]
[ 20. The method of claim 17, wherein the node of the active object is associated with a first international standard and the node of the target object is associated with a second international standard, and wherein the determining that the node of the active object is compatible with the node of the target object includes determining that the first international standard matches the second international standard.]
[ 21. The method of claim 17, wherein the node of the active object is associated with a first gauge and the node of the target object is associated with a second gauge, and wherein the determining that the node of the active object is compatible with the node of the target object includes determining that the first gauge matches the second gauge.]
[ 22. The method of claim 17, wherein the node of the active object is associated with a first length and the node of the target object is associated with a second length, and wherein the determining that the node of the active object is compatible with the node of the target object includes determining that the first length matches the second length.]
[ 23. The method of claim 17, further comprising:
determining when the node of the active object and the node of the target object are not compatible; and
upon determining that the node of the active object and the node of the target object are not compatible, generating a display of text indicating a reason that the node of the active object is not compatible with the node of the target object.]
[ 24. The method of claim 17, wherein the physical laws of the active object and the target object include at least one of a velocity, acceleration, and torque.]
[ 25. The method of claim 17, wherein the receiving the user input from the user input device includes receiving first user input from a first user input device associated with a first user indicative of the manipulation of the active object, and wherein the method further comprises receiving second user input from a second user input device associated with a second user indicative of manipulation of the target object.]
[ 26. The method of claim 17, wherein, prior to the generating the preview of the active object connected to the target object, the method further comprises: presenting a selection dialog box and only generating the preview of the active object connected to the target object upon receipt of further user input from the user input device confirming the generating the preview.]