IP Library Granted Patent US 10,242,501
Granted Patent B1
US 10,242,501 · App. 15/496,984 · Granted Mar 26, 2019

Multi-user virtual and augmented reality tracking systems

Inventors: Matthias Pusch (Santa Barbara, CA); Andrew C. Beall (Santa Barbara, CA)
Assignee: WorldViz, Inc.
G06T19/006G02B27/0172G06F3/013G06F3/016G06F17/30873G06T7/207G06T7/70G06T13/40G06T19/20H04N5/23251H04N19/43G06T2200/04G06T2219/024
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,242,501
App. No.
15/496,984
Filed
Apr 25, 2017
Granted
Mar 26, 2019
Kind
B1
Art Unit
2613
USPC
345/633
Abstract

Systems and methods are described for virtual and augmented reality. A position of a first user and a position of a second user in a physical space are received, wherein the positions are derived from detected infrared light from a plurality of cameras. An image corresponding to the first user is rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined based at least in part on a position of the first user in the physical space and on a determined viewpoint of the second user. An image corresponding to the second user is rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is determined based at least in part on a position of the second user in the physical space and on a determined viewpoint of the first user.

Claims (123)

1. A cluster system, comprising:

a computing device configured as a master computing device;

a plurality of motion tracking cameras, wherein the plurality of motion tracking cameras is configured to reside in a physical space coincident with a first user and a second user, the plurality of motion tracking cameras configured to detect infrared light associated with the first user and infrared light associated with the second user, and to communicate position data derived from detected infrared light associated with the first user and detected infrared light associated with the second user to the master computing device;

non-transitory media storing instructions readable by the cluster system, that when executed by the cluster system, cause the cluster system to:

provide a user interface via which the first user and/or an administrator may designate at least one element of a scene as a gaze direction condition for which an indication is to be rendered;

access configuration information comprising information indicating what types of operations are privileged and what types of operations are non-privileged;

receive, at the master computing device from one or more of the plurality of motion tracking cameras, position data corresponding to a position of the first user in the physical space and position data corresponding to a position of the second user in the physical space;

cause, by the master computing device, an image corresponding to the first user to be rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined at least in part on the position data corresponding to the position of the first user in the physical space and on a determined viewpoint of the second user;

cause, by the master computing device, an image corresponding to the second user to be rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is based at least in part on the position data corresponding to the position of the second user in the physical space and on a determined viewpoint of the first user;

receive at the master computing device, eye-tracking position data associated with the second user; and

determine, based at least in part on the received eye-tracking position data associated with the second user and on the determined viewpoint of the second user, a gaze direction of the second user; and

cause the indication to be rendered in the display device associated with the first user at least partly in response to determining that the gaze direction of the second user satisfies the gaze direction condition designated via the user interface.

2. The cluster system of claim 1 , wherein the cluster system is further configured to: cause a second indication to be rendered in the display device associated with the first user at least partly in response to determining that the gaze direction of the second user satisfies at least a second condition.

3. The cluster system of claim 1 , wherein the cluster system is further configured to: cause the indication to be rendered in the display device associated with the first user at least partly in response to determining that the gaze direction of the second user is toward a first element of the scene.

4. The cluster system of claim 1 , wherein the indication comprises a color to be rendered in the display device associated with the first user.

5. The cluster system of claim 1 , wherein the cluster system is further configured to: cause a representative depiction of eyes of the second user to be rendered in the display device associated with the first user.

6. The cluster system of claim 1 , wherein the cluster system is further configured to; determine the viewpoint of the second user using infrared light from a plurality of infrared markers associated with the display device associated with the second user.

7. The cluster system of claim 1 , wherein the cluster system further comprises:

a computing device associated with the second user configured as a client computing device of the master computing device;

wherein the client computing device is further configured to:

receive image data from a camera associated with the display device associated with the second user;

derive, based at least in part on the image data received from the camera associated with the display device associated with the second user, the eye-tracking position data associated with the second user; and

transmit the eye-tracking position data associated with the second user to the master computing device.

8. The cluster system of claim 1 , wherein the plurality of motion tracking cameras are configured to derive an identity of an infrared marker from a detected repetitive pattern of infrared light pulses.

9. The cluster system of claim 1 , wherein the cluster system is further configured to: provide via a second user interface configured to enable the first user and/or the administrator to indicate what types of operations are privileged and what types of operations are non-privileged.

10. The cluster system of claim 1 , wherein the indication is not rendered in the display device associated with the second user.

11. A cluster system, comprising:

a computing device configured as a master computing device;

a plurality of motion tracking cameras, wherein the plurality of motion tracking cameras is configured to reside in a physical space coincident with a first user and a second user, the plurality of motion tracking cameras configured to detect infrared light associated with the first user and infrared light associated with the second user, and to communicate position data derived from detected infrared light associated with the first user and detected infrared light associated with the second user to the master computing device;

non-transitory media storing instructions readable by the cluster system, that when executed by the cluster system, cause the cluster system to:

access configuration information comprising information indicating what types of operations are privileged and what types of operations are non-privileged;

receive, at the master computing device from one or more of the plurality of motion tracking cameras, position data corresponding to a position of the first user in the physical space and position data corresponding to a position of the second user in the physical space;

cause, by the master computing device, an image corresponding to the first user to be rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined at least in part on the position data corresponding to the position of the first user in the physical space and on a determined viewpoint of the second user;

cause, by the master computing device, an image corresponding to the second user to be rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is based at least in part on the position data corresponding to the position of the second user in the physical space and on a determined viewpoint of the first user:

receive at the master computing device, eye-tracking position data associated with the second user;

determine, based at least in part on the received eye-tracking position data associated with the second user and on the determined viewpoint of the second user, a gaze direction of the second user; and

cause an indication to be rendered in the display device associated with the first user at least partly in response to determining that the gaze direction of the second user is not toward a first element of a scene.

12. A cluster system, comprising:

a computing device configured as a master computing device;

a plurality of motion tracking cameras, wherein the plurality of motion tracking cameras is configured to reside in a physical space coincident with a first user and a second user, the plurality of motion tracking cameras configured to detect infrared light associated with the first user and infrared light associated with the second user, and to communicate position data derived from detected infrared light associated with the first user and detected infrared light associated with the second user to the master computing device;

non-transitory media storing instructions readable by the cluster system, that when executed by the cluster system, cause the cluster system to:

access configuration information comprising information indicating what types of operations are privileged and what types of operations are non-privileged;

receive, at the master computing device from one or more of the plurality of motion tracking cameras, position data corresponding to a position of the first user in the physical space and position data corresponding to a position of the second user in the physical space;

cause, by the master computing device, an image corresponding to the first user to be rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined at least in part on the position data corresponding to the position of the first user in the physical space and on a determined viewpoint of the second user;

cause, by the master computing device, an image corresponding to the second user to be rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is based at least in part on the position data corresponding to the position of the second user in the physical space and on a determined viewpoint of the first user;

receive at the master computing device, eye-tracking position data associated with the second user;

determine, based at least in part on the received eye-tracking position data associated with the second user and on the determined viewpoint of the second user, a gaze direction of the second user; and

at least partly in response to a determination that the gaze of the second user is directed at the first user, cause a depiction of the second user's eyes to be rendered in the display device associated with the first user, wherein the depiction of the second user's eyes depicts the second user's eyes as being aligned with the first user's eyes.

13. A cluster system, comprising:

a computing device configured as a master computing device;

a plurality of motion tracking cameras, wherein the plurality of motion tracking cameras is configured to reside in a physical space coincident with a first user and a second user, the plurality of motion tracking cameras configured to detect infrared light associated with the first user and infrared light associated with the second user, and to communicate position data derived from detected infrared light associated with the first user and detected infrared light associated with the second user to the master computing device;

non-transitory media storing instructions readable by the cluster system, that when executed by the cluster system, cause the cluster system to:

access configuration information comprising information indicating what types of operations are privileged and what types of operations are non-privileged;

receive, at the master computing device from one or more of the plurality of motion tracking cameras, position data corresponding to a position of the first user in the physical space and position data corresponding to a position of the second user in the physical space;

cause, by the master computing device, an image corresponding to the first user to be rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined at least in part on the position data corresponding to the position of the first user in the physical space and on a determined viewpoint of the second user;

cause, by the master computing device, an image corresponding to the second user to be rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is based at least in part on the position data corresponding to the position of the second user in the physical space and on a determined viewpoint of the first user;

receive at the master computing device, eye-tracking position data associated with the second user;

determine, based at least in part on the received eye-tracking position data associated with the second user and on the determined viewpoint of the second user, a gaze direction of the second user; and

wherein the second user comprises a plurality of users, and wherein the cluster system is further configured to cause an indication to be rendered in the display device associated with the first user at least partly in response to determining that the gaze direction of at least one user of the plurality of users satisfies one or more conditions, and wherein the rendered indication includes an identifier associated with the at least one user whose gaze is causing the one or more conditions to be satisfied.

14. A cluster system, comprising:

a computing device configured as a master computing device;

a plurality of motion tracking cameras, wherein the plurality of motion tracking cameras is configured to reside in a physical space coincident with a first user and a second user, the plurality of motion tracking cameras configured to detect infrared light associated with the first user and infrared light associated with the second user, and to communicate position data derived from detected infrared light associated with the first user and detected infrared light associated with the second user to the master computing device;

non-transitory media storing instructions readable by the cluster system, that when executed by the cluster system, cause the cluster system to:

access configuration information comprising information indicating what types of operations are privileged and what types of operations are non-privileged;

receive, at the master computing device from one or more of the plurality of motion tracking cameras, position data corresponding to a position of the first user in the physical space and position data corresponding to a position of the second user in the physical space;

cause, by the master computing device, an image corresponding to the first user to be rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined at least in part on the position data corresponding to the position of the first user in the physical space and on a determined viewpoint of the second user;

cause, by the master computing device, an image corresponding to the second user to be rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is based at least in part on the position data corresponding to the position of the second user in the physical space and on a determined viewpoint of the first user;

receive at the master computing device, eye-tracking position data associated with the second user;

determine, based at least in part on the received eye-tracking position data associated with the second user and on the determined viewpoint of the second user, a gaze direction of the second user; and

wherein the second user comprises a plurality of users, and wherein the cluster system is further configured to cause an indication to be rendered in the display device associated with the first user at least partly in response to determining that at least a threshold number of users in the plurality of users have a determined gaze direction that satisfies one or more conditions, the threshold number greater than one.

15. A cluster system, comprising:

a computing device;

non-transitory media storing instructions readable by the cluster system, that when executed by the cluster system, cause the cluster system to:

receive, from a plurality of motion tracking cameras, position data for a first user and a second user in one or more physical spaces, the position data for the first user and the second user derived from detected infrared light associated respectively with the first user and the second user;

access configuration information comprising information indicating what types of operations are privileged and what types of operations are non-privileged;

cause an image corresponding to the first user to be rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined based at least in part on received position data for the first user in a first physical space and on a determined viewpoint of the second user;

cause an image corresponding to the second user to be rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is determined based at least in part on received position data for the second user in a second physical space and on a determined viewpoint of the first user;

receive image data from a camera associated with the display device associated with the second user;

determine, based at least in part on the received image data from the camera associated with the display device associated with the second user and on the determined viewpoint of the second user, a gaze direction of the second user; and

cause an indication to be rendered in the display device associated with the first user at least partly in response to determining that the gaze direction of the second user is not toward a first element of a scene.

16. The cluster system of claim 15 , wherein the cluster system is further configured to: cause a second indication to be rendered in the display device associated with the first user at least partly in response to determining that the gaze direction of the second user satisfies one or more conditions.

17. The cluster system of claim 15 , wherein the first physical space and the second physical space are in a same room.

18. A cluster system, comprising:

a computing device;

non-transitory media storing instructions readable by the cluster system, that when executed by the cluster system, cause the cluster system to:

provide a user interface via which a first user and/or an administrator may designate at least one element of a scene as a gaze direction condition for which an indication is to be rendered;

receive, from a plurality of motion tracking cameras, position data for the first user and a second user in one or more physical spaces, the position data for the first user and the second user derived from detected infrared light associated respectively with the first user and the second user;

access configuration information comprising information indicating what types of operations are privileged and what types of operations are non-privileged;

cause an image corresponding to the first user to be rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined based at least in part on received position data for the first user in a first physical space and on a determined viewpoint of the second user;

cause an image corresponding to the second user to be rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is determined based at least in part on received position data for the second user in a second physical space and on a determined viewpoint of the first user;

receive image data from a camera associated with the display device associated with the second user;

determine, based at least in part on the received image data from the camera associated with the display device associated with the second user and on the determined viewpoint of the second user, a gaze direction of the second user; and

cause the indication to be rendered in the display device associated with the first user at least partly in response to determining that the gaze direction of the second user satisfies the gaze direction condition designated via the user interface.

19. A cluster system, comprising:

a computing device;

non-transitory media storing instructions readable by the cluster system, that when executed by the cluster system, cause the cluster system to:

receive, from a plurality of motion tracking cameras, position data for a first user and a second user in one or more physical spaces, the position data for the first user and the second user derived from detected infrared light associated respectively with the first user and the second user;

access configuration information comprising information indicating what types of operations are privileged and what types of operations are non-privileged;

cause an image corresponding to the first user to be rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined based at least in part on received position data for the first user in a first physical space and on a determined viewpoint of the second user;

cause an image corresponding to the second user to be rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is determined based at least in part on received position data for the second user in a second physical space and on a determined viewpoint of the first user;

receive image data from a camera associated with the display device associated with the second user;

determine, based at least in part on the received image data from the camera associated with the display device associated with the second user and on the determined viewpoint of the second user, a gaze direction of the second user; and

at least partly in response to a determination that the gaze of the second user is directed at the first user, cause a depiction of the second user's eyes to be rendered in the display device associated with the first user, wherein the depiction of the second user's eyes depicts the second user's eyes as being aligned with the first user's eyes.

20. A cluster system, comprising:

a computing device;

non-transitory media storing instructions readable by the cluster system, that when executed by the cluster system, cause the cluster system to:

receive, from a plurality of motion tracking cameras, position data for a first user and a second user in one or more physical spaces, the position data for the first user and the second user derived from detected infrared light associated respectively with the first user and the second user;

access configuration information comprising information indicating what types of operations are privileged and what types of operations are non-privileged;

cause an image corresponding to the first user to be rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined based at least in part on received position data for the first user in a first physical space and on a determined viewpoint of the second user;

cause an image corresponding to the second user to be rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is determined based at least in part on received position data for the second user in a second physical space and on a determined viewpoint of the first user;

receive image data from a camera associated with the display device associated with the second user;

determine, based at least in part on the received image data from the camera associated with the display device associated with the second user and on the determined viewpoint of the second user, a gaze direction of the second user; and

wherein the second user comprises a plurality of users, and wherein the cluster system is further configured to cause an indication to be rendered in the display device associated with the first user at least partly in response to determining that the gaze direction of at least one user of the plurality of users satisfies one or more conditions, and wherein the rendered indication includes an identifier associated with the at least one user whose gaze is causing the one or more conditions to be satisfied.

21. A cluster system, comprising:

a computing device;

non-transitory media storing instructions readable by the cluster system, that when executed by the cluster system, cause the cluster system to:

receive, from a plurality of motion tracking cameras, position data for a first user and a second user in one or more physical spaces, the position data for the first user and the second user derived from detected infrared light associated respectively with the first user and the second user;

access configuration information comprising information indicating what types of operations are privileged and what types of operations are non-privileged;

cause an image corresponding to the first user to be rendered at a first virtual position in a display device associated with the second user, wherein the first virtual position is determined based at least in part on received position data for the first user in a first physical space and on a determined viewpoint of the second user;

cause an image corresponding to the second user to be rendered at a second virtual position in a display device associated with the first user, wherein the second virtual position is determined based at least in part on received position data for the second user in a second physical space and on a determined viewpoint of the first user;

receive image data from a camera associated with the display device associated with the second user;

determine, based at least in part on the received image data from the camera associated with the display device associated with the second user and on the determined viewpoint of the second user, a gaze direction of the second user; and

wherein the second user comprises a plurality of users, and wherein the cluster system is further configured to cause an indication to be rendered in the display device associated with the first user at least partly in response to determining that at least a threshold number of users in the plurality of users have a determined gaze direction that satisfies one or more conditions, the threshold number greater than one.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2018
From: PUSCH, MATTHIAS; BEALL, ANDREW C.
To: WORLDVIZ, INC.
Reel/Frame 045576/0504 →
Continuity (1)
Provisional Application 62331296 · May 3, 2016
Cited By (63)
US 12,197,712 US 12,197,817 US 12,200,297 US 12,204,932 US 12,205,581 US 12,206,779 US 12,211,145 US 12,211,502 US 12,212,733 US 12,216,894 US 12,219,314 US 12,223,282 US 12,235,523 US 12,236,796 US 12,236,952 US 12,254,887 US 12,260,234 US 12,266,354 US 12,271,658 US 12,277,202 US 12,277,954 US 12,293,759 US 12,293,763 US 12,301,635 US 12,309,163 US 12,309,533 US 12,315,094 US 12,322,040 US 12,326,968 US 12,333,404 US 12,346,972 US 12,353,670 US 12,354,188 US 12,361,943 US 12,367,879 US 12,380,531 US 12,386,434 US 12,386,491 US 12,423,754 US 12,423,917 US 12,429,947 US 12,431,128 US 12,446,778 US 12,477,470 US 12,488,541 US 12,489,815 US 12,494,023 US 12,495,094 US 12,498,575 US 12,505,757 US 12,526,611 US 12,556,890 US 12,572,326 US 12,596,525 US 12,608,171 US 12,613,730 US 12,619,452 US 12,626,704 US 12,646,126 US 12,651,267 US 12,663,234 US 12,665,987 US 12,700,186