IP Library › Granted Patent US 12,321,562
Granted Patent B2
US 12,321,562 · App. 18/359,222 · Granted Jun 3, 2025

Systems and methods for interacting with three-dimensional graphical user interface elements to control computer operation

Inventors: Kevan Spencer Barsky (Los Angeles, CA); Joseph Bogacz (Perth, CA)
Assignee: Illuscio, Inc.
G06F3/04815G06F3/04817G06F3/0487G06F9/451
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 12,321,562
App. No.
18/359,222
Granted
Jun 3, 2025
Kind
B2
Abstract

Disclosed is an interface and/or system for presenting three-dimensional (“3D”) graphical user interface (“GUI”) elements to improve user interactions with a device. The system determines a first angle from which to render a 3D GUI. The system receives 3D images that are linked to the 3D GUI elements. The system generates the 3D GUI elements by rendering each of the 3D images from a first render position that aligns with the first angle. The system detects an input that changes the first angle to a second angle, and updates a visualization of the 3D GUI elements by rendering each of the 3D images from a second render position that aligns with the second angle.

Claims (113)

1. A method comprising:

receiving a first three-dimensional (“3D”) mesh model and a second 3D mesh model, wherein the first 3D mesh model comprises a first plurality of meshes defined in a first 3D space, wherein the second 3D mesh model comprises a second plurality of meshes defined in a second 3D space, and wherein the first 3D space is separate from the second 3D space;

selecting a subset of meshes from the second plurality of meshes in response to a first user input;

associating a rule to the subset of meshes in response to a second user input, wherein associating the rule comprises defining an action that invokes the rule and defining a function that is performed in response to the rule being invoked;

setting a first render position in the first 3D space of the first 3D mesh model and a second render position in the second 3D space of the second 3D mesh model;

presenting a first 3D GUI element and a second 3D GUI element in a single 3D graphical user interface (“GUI”),

wherein presenting the first 3D GUI element comprises:

determining a first set of meshes from the first plurality of meshes that are in a field-of-view created at the first render position;

mapping the first set of meshes to a visible surface of the first 3D GUI element; and

rendering the first set of meshes on the visible surface of the first 3D GUI element; and

wherein presenting the second 3D GUI element comprises:

determining a second set of meshes from the second plurality of meshes that are in a field-of-view created at the second render position;

mapping the second set of meshes to a visible surface of the second 3D GUI element; and

rendering the second set of meshes on the visible surface of the second 3D GUI element;

detecting an input that is applied to the second GUI element;

mapping the input from the second GUI element to the second 3D space of the second 3D mesh model, wherein mapping the input comprises changing from the second render position to a third render position in the second 3D space without changing the first render position in the first 3D space based on a direction and magnitude with which the input is applied to the second GUI element;

mapping a third set of meshes from the second plurality of meshes on the visible surface of the second 3D GUI element in response to the third set of meshes coming into an updated field-of-view in the second 3D space as a result of moving from the second render position to the third render position; and

updating the second 3D GUI element based on a visualization that is created from rendering the third set of meshes that are mapped to the visible surface of the second 3D GUI element.

2. The method of claim 1 further comprising:

tracking a position or an orientation of a device that displays the 3D GUI;

determining that the device moves from a first position or a first orientation to a second position or a second orientation in response to said tracking;

changing a last render position in the first 3D space and the second 3D space according to the device moving from the first position or the first orientation to the second position or the second orientation;

updating a visualization of the first 3D GUI element and the second 3D GUI element based on different sets of meshes that come into view after changing the last render position in the first 3D space and the second 3D space.

3. The method of claim 1 further comprising:

tracking an eye gaze of a user; and

wherein detecting the input comprises:

determining that the eye gaze changes from a first position to a second position.

4. The method of claim 1 further comprising:

animating the first and second 3D GUI elements by presenting different sets of meshes that come into view in response to an input that changes a position from which to render the 3D GUI.

5. The method of claim 1 ,

wherein detecting the input comprises determining a change to a user line-of-sight; and

wherein updating the second 3D GUI element comprises aligning a visualization of the second 3D GUI element according to the change to the user line-of-sight.

6. The method of claim 1 further comprising:

detecting a first input that is applied to the second 3D GUI element when the second 3D GUI element is rendered with the second set of meshes from the second render position;

determining a first rule that is associated with the second set of meshes;

executing a first action based on the first rule that is associated with the second set of meshes and the first rule linking execution of the first action to an application of the first input on one or more of the second set of meshes.

7. The method of claim 6 further comprising:

detecting a second input that is applied to the second 3D GUI element when the second 3D GUI element is rendered with the third set of meshes;

selecting a second rule that is associated with the third set of meshes; and

executing a second action based on the second rule that is associated with the third set of meshes and the second rule linking execution of the second action to an application of the second input on one or more of the third set of meshes.

8. The method of claim 1 further comprising:

presenting the 3D GUI on a plurality of devices; and

synchronizing the 3D GUI across the plurality of devices in response to detecting the input from a single device of the plurality of devices, wherein synchronizing the 3D GUI comprises updating a visualization of the second 3D GUI element with the third set of meshes for each device of the plurality of devices.

9. The method of claim 1 further comprising:

performing the function in response to a second input being applied to one or more meshes of the third set of meshes presented by the second 3D GUI element and the one or more meshes corresponding to the subset of meshes that is associated with the rule that links the second input to the function; and

performing a different second function in response to a third input being applied to one or more meshes of the third set of meshes presented by the second 3D GUI element and the rule linking the third input to the second function.

10. The method of claim 1 further comprising:

presenting the 3D GUI on a plurality of devices;

detecting a second input from a particular device of the plurality of devices that rotates the first 3D GUI element; and

synchronizing the 3D GUI across the plurality of devices in response to detecting the second input, wherein synchronizing the 3D GUI comprises:

changing from the first render position to a fourth render position in the first 3D space of the first 3D mesh model; and

rotating the first 3D GUI element across the plurality of devices to present different meshes from the first plurality of meshes that come into view in response to changing from the first render position to the fourth render position.

11. The method of claim 1 further comprising:

receiving a notification from an application that is accessed using the first 3D GUI element; and

updating a visualization of the first 3D GUI element in response to receiving the notification by changing the first render position in the first 3D space to a fourth render position that brings a set of the first plurality of meshes associated with the notification into view.

12. A system comprising:

one or more hardware processors configured to:

receive a first three-dimensional (“3D”) mesh model, wherein the first 3D mesh model comprises a first plurality of meshes defined in a first 3D space, wherein the second 3D mesh model comprises a second plurality of meshes defined in a second 3D space, and wherein the first 3D space is separate from the second 3D space;

select a subset of meshes from the second plurality of meshes in response to a first user input;

associate a rule to the subset of meshes in response to a second user input, wherein associating the rule comprises defining an action that invokes the rule and defining a function that is performed in response to the rule being invoked;

set a first render position in the first 3D space of the first 3D mesh model and a second render position in the second 3D space of the second 3D mesh model;

present a first 3D GUI element and a second 3D GUI element in a single 3D graphical user interface (“GUI”),

wherein presenting the first 3D GUI element comprises:

determining a first set of meshes from the first plurality of meshes that are in a field-of-view created at the first render position;

mapping the first set of meshes to a visible surface of the first 3D GUI element; and

rendering the first set of meshes on the visible surface of the first 3D GUI element; and

wherein presenting the second 3D GUI element comprises:

determining a second set of meshes from the second plurality of meshes that are in a field-of-view created at the second render position;

mapping the second set of meshes to a visible surface of the second 3D GUI element; and

rendering the second set of meshes on the visible surface of the second 3D GUI element;

detect an input that is applied to the second GUI element;

map the input from the second GUI element to the second 3D space of the second 3D mesh model, wherein mapping the input comprises changing from the second render position to a third render position in the second 3D space without changing the first render position in the first 3D space based on a direction and magnitude with which the input is applied to the second GUI element;

map present the second 3D GUI element based on a third set of meshes from the second plurality of meshes on the visible surface of the second 3D GUI element in response to the third set of meshes coming into an updated field-of-view in the second 3D space as a result of moving from the second render position to the third render position; and

update the second 3D GUI element based on a visualization that is created from rendering the third set of meshes that are mapped to the visible surface of the second 3D GUI element.

13. The system of claim 12 , wherein the one or more hardware processors are configured to:

track a position or an orientation of a device that displays the 3D GUI;

determine that the device moves from a first position or a first orientation to a second position or a second orientation in response to said tracking;

change a last render position in the first 3D space and the second 3D space according to the device moving from the first position or the first orientation to the second position or the second orientation;

update a visualization of the first 3D GUI element and the second 3D GUI element based on different sets of meshes that come into view after changing the last render position in the first 3D space and the second 3D space.

14. The system of claim 12 , wherein the one or more hardware processors are configured to:

track an eye gaze of a user; and

wherein detecting the input comprises:

determining that the eye gaze changes from a first position to a second position.

15. The system of claim 12 ,

wherein detecting the input comprises determining a change to a user line-of-sight; and

wherein updating the second 3D GUI element comprises aligning a visualization of the second 3D GUI element according to the change to the user line-of-sight.

16. The system of claim 12 , wherein the one or more hardware processors are configured to:

present the 3D GUI on a plurality of devices;

detect a second input from a particular device of the plurality of devices that rotates the first 3D GUI element; and

synchronize the 3D GUI across the plurality of devices in response to detecting the second input, wherein synchronizing the 3D GUI comprises:

changing from the first render position to a fourth render position in the first 3D space of the first 3D mesh model; and

rotating the first 3D GUI element across the plurality of devices to present different meshes from the first plurality of meshes that come into view in response to changing from the first render position to the fourth render position.

17. The system of claim 12 , wherein the one or more hardware processors are configured to:

receive a notification from an application that is accessed using the first 3D GUI element; and

update a visualization of the first 3D GUI element in response to receiving the notification by changing the first render position in the first 3D space to a fourth render position that brings a set of the first plurality of meshes associated with the notification into view.

18. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a three-dimensional (“3D”) graphical user interface (“GUI”) system, cause the 3D GUI system to perform operations comprising:

receiving a first 3D mesh model and a second 3D mesh model, wherein the first 3D mesh model comprises a first plurality of meshes defined in a first 3D space, wherein the second 3D mesh model comprises a second plurality of meshes defined in a second 3D space, and wherein the first 3D space is separate from the second 3D space;

selecting a subset of meshes from the second plurality of meshes in response to a first user input;

associating a rule to the subset of meshes in response to a second user input, wherein associating the rule comprises defining an action that invokes the rule and defining a function that is performed in response to the rule being invoked;

setting a first render position in the first 3D space of the first 3D mesh model and a second render position in the second 3D space of the second 3D mesh model;

presenting a first 3D GUI element and a second 3D GUI element in a single 3D graphical user interface (“GUI”),

wherein presenting the first 3D GUI element comprises:

determining a first set of meshes from the first plurality of meshes that are in a field-of-view created at the first render position;

mapping the first set of meshes to a visible surface of the first 3D GUI element; and

rendering the first set of meshes on the visible surface of the first 3D GUI element; and

wherein presenting the second 3D GUI element comprises:

determining a second set of meshes from the second plurality of meshes that are in a field-of-view created at the second render position;

mapping the second set of meshes to a visible surface of the second 3D GUI element; and

rendering the second set of meshes on the visible surface of the second 3D GUI element;

detecting an input that is applied to the second GUI element;

mapping the input from the second GUI element to the second 3D space of the second 3D mesh model, wherein mapping the input comprises changing from the second render position to a third render position in the second 3D space without changing the first render position in the first 3D space based on a direction and magnitude with which the input is applied to the second GUI element;

mapping a third set of meshes from the second plurality of meshes on the visible surface of the second 3D GUI element in response to the third set of meshes coming into an updated field-of-view in the second 3D space as a result of moving from the second render position to the third render position; and

updating the second 3D GUI element based on a visualization that is created from rendering the third set of meshes that are mapped to the visible surface of the second 3D GUI element.

Assignments (2)
CHANGE OF NAME Recorded Sep 18, 2025
From: ILLUSCIO, INC.
To: MIRIS, INC.
Reel/Frame 072896/0410 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2023
From: BARSKY, KEVAN S; BOGACZ, JOSEPH
To: ILLUSCIO, INC.
Reel/Frame 064388/0223 →
Continuity (3)
Continuation In Part 18163516 · Feb 2, 2023
Continuation 17838393 · Jun 13, 2022
Related Publication 20230400960A1 · Dec 14, 2023
References Cited (80)
US 5303388A · Kreitman et al. · 1994 [cited by applicant]
US 5678015A · Goh · 1997 [cited by examiner]
US 6266098B1 · Cove et al. · 2001 [cited by applicant]
US 7937668B2 · Yoshida · 2011 [cited by examiner]
US 8429564B2 · Alexanderovitc et al. · 2013 [cited by applicant]
US 8560960B2 · Goossens · 2013 [cited by examiner]
US 8866810B2 · Cho · 2014 [cited by examiner]
US 9069455B2 · Sripada · 2015 [cited by examiner]
US 9081477B2 · Kang · 2015 [cited by examiner]
US 9360991B2 · Celebisoy · 2016 [cited by examiner]
US 9576393B1 · Bethel · 2017 [cited by examiner]
US 10503399B2 · Chu · 2019 [cited by examiner]
US 10592064B2 · Ames · 2020 [cited by examiner]
US 10712898B2 · Christmas · 2020 [cited by examiner]
US 11127223B1 · Bhushan · 2021 [cited by examiner]
US 11170582B1 · McNeil · 2021 [cited by examiner]
US 11227010B1 · Vieira De Souza · 2022 [cited by examiner]
US 11385728B2 · Seibert · 2022 [cited by examiner]
US 11455759B2 · Donalek · 2022 [cited by examiner]
US 11550460B1 · Gangwani · 2023 [cited by examiner]
US 11579748B1 · Barsky · 2023 [cited by examiner]
US 11635873B2 · Shu · 2023 [cited by examiner]
US 20020000998A1 · Scott et al. · 2002 [cited by applicant]
US 20030117440A1 · Hellyar et al. · 2003 [cited by applicant]
US 20040155907A1 · Yamaguchi et al. · 2004 [cited by applicant]
US 20050071767A1 · Kirkland · 2005 [cited by applicant]
US 20060103733A1 · Grady · 2006 [cited by examiner]
US 20060187204A1 · Yi et al. · 2006 [cited by applicant]
US 20060242602A1 · Schechter et al. · 2006 [cited by applicant]
US 20090089692A1 · Morris · 2009 [cited by applicant]
US 20090164945A1 · Li · 2009 [cited by applicant]
US 20100064259A1 · Alexanderovitc · 2010 [cited by examiner]
US 20100093400A1 · Ju et al. · 2010 [cited by applicant]
US 20100227686A1 · Brunet De Courssou et al. · 2010 [cited by applicant]
US 20110096006A1 · Jeong · 2011 [cited by examiner]
US 20110102460A1 · Parker · 2011 [cited by applicant]
US 20110102556A1 · Kim et al. · 2011 [cited by applicant]
US 20110283213A1 · Leebow · 2011 [cited by applicant]
US 20110310100A1 · Adimatyam et al. · 2011 [cited by applicant]
US 20120036433A1 · Zimmer · 2012 [cited by examiner]
US 20120056900A1 · Park et al. · 2012 [cited by applicant]
US 20120062564A1 · Miyashita et al. · 2012 [cited by applicant]
US 20120260215A1 · Fennel · 2012 [cited by applicant]
US 20120260217A1 · Celebisoy · 2012 [cited by applicant]
US 20120260218A1 · Bawel · 2012 [cited by applicant]
US 20120284668A1 · Bamford · 2012 [cited by examiner]
US 20130047121A1 · Kao et al. · 2013 [cited by applicant]
US 20130145322A1 · Hendricks · 2013 [cited by applicant]
US 20130185642A1 · Gammons · 2013 [cited by applicant]
US 20130293686A1 · Blow · 2013 [cited by examiner]
US 20130311946A1 · Kwon · 2013 [cited by examiner]
US 20130336524A1 · Zhang et al. · 2013 [cited by applicant]
US 20130346911A1 · Sripada · 2013 [cited by examiner]
US 20140007015A1 · Ekstrand · 2014 [cited by examiner]
US 20140213140A1 · Goh · 2014 [cited by examiner]
US 20150009130A1 · Motta · 2015 [cited by examiner]
US 20150077323A1 · Ramaswamy · 2015 [cited by examiner]
US 20150106851A1 · Pauli · 2015 [cited by examiner]
US 20150135105A1 · Jain et al. · 2015 [cited by applicant]
US 20150138192A1 · Marchenko · 2015 [cited by examiner]
US 20150324114A1 · Hurley · 2015 [cited by examiner]
US 20160062636A1 · Jung et al. · 2016 [cited by applicant]
US 20160171765A1 · Mehr · 2016 [cited by examiner]
US 20160357399A1 · Shin · 2016 [cited by examiner]
US 20170139548A1 · De Las Heras et al. · 2017 [cited by applicant]
US 20170139587A1 · Bostick · 2017 [cited by examiner]
US 20170371039A1 · Clark et al. · 2017 [cited by applicant]
US 20170371523A1 · Liao et al. · 2017 [cited by applicant]
US 20180143756A1 · Mildrew · 2018 [cited by examiner]
US 20190026004A1 · Caen · 2019 [cited by applicant]
US 20190121522A1 · Davis et al. · 2019 [cited by applicant]
US 20190156472A1 · Link · 2019 [cited by examiner]
US 20190258225A1 · Link · 2019 [cited by examiner]
US 20200012409A1 · Sadacharam et al. · 2020 [cited by applicant]
US 20220261094A1 · Cole · 2022 [cited by examiner]
US 20230024225A1 · Zambetti · 2023 [cited by examiner]
US 20230139841A1 · DiMarco · 2023 [cited by examiner]
US 20230328856A1 · Beaumier · 2023 [cited by examiner]
US 20240000512A1 · Miles · 2024 [cited by examiner]
WO WO2022047436A1 · 2022 [cited by examiner]