IP Library › Granted Patent US 11,809,678
Granted Patent B2
US 11,809,678 · App. 15/717,876 · Granted Nov 7, 2023

Three dimensional visual programming interface for a network of devices

Inventors: Barrett Ens (Manitoba, CA); Fraser Anderson (Camrose, CA); George Fitzmaurice (Toronto, CA); Tovi Grossman (Toronto, CA)
Assignee: AUTODESK, INC.
G06F3/04815G06F3/011H04L41/22
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 11,809,678
App. No.
15/717,876
Granted
Nov 7, 2023
Kind
B2
Abstract

Approaches for generating virtual representations of smart objects in a 3D visual programming interface. The interface displays a 3D virtual environment containing virtual objects that represents a real-world environment containing smart objects. The 3D virtual environment displays virtual objects in a manner that is spatially accurate relative to the physical objects in the real-world environment. For each virtual object representing a physical object, a logic node (port node) is displayed, the port node representing the set of functions associated with the physical object. The interface enables users to create, delete, or modify different types of logic nodes (representing functions) and create, delete, or modify links (representing data connections) between logic nodes within the 3D virtual environment. The authoring of the logic nodes and links produces an executable program. Upon executing the program, data flows between the logic nodes are visually represented as particles moving between the logic nodes.

Claims (57)

1. A computer-implemented method, comprising:

displaying a three-dimensional virtual environment that includes a first logic node connected to a second logic node via a first link, wherein:

the first logic node, the second logic node, and the first link comprise an executable program,

the first logic node represents a set of functions performed by a first physical object,

the second logic node represents a set of functions performed by a second physical object, and

the first link graphically represents a first data connection between the first logic node and the second logic node;

executing the executable program on one or more processors to begin execution of the first logic node and cause a data flow between the first logic node and the second logic node via the first data connection;

displaying a plurality of particles moving along the first link with a first motion to visually represent the data flow;

in response to receiving a selection of a step tool while the first logic node is executing, performing the steps of:

completing execution of the first logic node; and

upon the completion of execution of the first logic node, pausing execution of the executable program and stopping the plurality of particles from moving along the first link; and

in response to receiving a selection of a sequence tool, performing the steps of:

executing the executable program to begin execution of the second logic node; and

displaying the plurality of particles moving along the first link with a second motion that appears slower than the first motion.

2. The computer-implemented method of claim 1 , wherein the visual appearance of the plurality of particles is based on one or more attributes of data included in the data flow.

3. The computer-implemented method of claim 1 , wherein a color of the plurality of particles is based on a type of data included in the data flow.

4. The computer-implemented method of claim 1 , wherein a size of the plurality of particles is based on values of data included in the data flow.

5. The computer-implemented method of claim 1 , wherein a volume of the plurality of particles is based on a frequency associated with data included in the data flow.

6. The computer-implemented method of claim 1 , further comprising receiving a selection of a pause tool, and freezing the plurality of particles and stopping the plurality of particles from moving between the first logic node and the second logic node along the first link.

7. The computer-implemented method of claim 6 , further comprising pausing execution of the executable program on the one or more processors.

8. One or more non-transitory computer-readable media storing program instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of:

displaying a three-dimensional virtual environment that includes a first logic node connected to a second logic node via a first link, wherein:

the first logic node, the second logic node, and the first link comprise an executable program,

the first logic node represents a set of functions performed by a first physical object,

the second logic node represents a set of functions performed by a second physical object, and

the first link graphically represents a first data connection between the first logic node and the second logic node;

executing the executable program on one or more processors to begin execution of the first logic node and cause a data flow between the first logic node and the second logic node via the first data connection;

displaying a plurality of particles moving along the first link with a first motion to visually represent the data flow;

in response to receiving a selection of a step tool while the first logic node is executing, performing the steps of:

completing execution of the first logic node; and

upon the completion of execution of the first logic node, pausing execution of the executable program and stopping the plurality of particles from moving along the first link; and

in response to receiving a selection of a sequence tool, performing the steps of:

executing the executable program to begin execution of the second logic node; and

displaying the plurality of particles moving along the first link with a second motion that appears slower than the first motion.

9. The one or more non-transitory computer-readable media of claim 8 , wherein at least one of a color, a size, or a volume of the plurality of particles is based on one or more attributes of data included in the data flow.

10. The one or more non-transitory computer-readable media of claim 8 , wherein a color of the plurality of particles is based on a type of data included in the data flow.

11. The one or more non-transitory computer-readable media of claim 8 , wherein the first physical object comprises a sensor object, and a color of the plurality of particles is based on a sensor type associated with the sensor object.

12. The one or more non-transitory computer-readable media of claim 8 , wherein a size of the plurality of particles is based on values of data included in the data flow.

13. The one or more non-transitory computer-readable media of claim 8 , wherein a volume of the plurality of particles is based on a frequency associated with data included in the data flow.

14. The one or more non-transitory computer-readable media of claim 8 , further comprising receiving a selection of a pause tool, and stopping the plurality of particles from moving between the first logic node and the second logic node along the first link.

15. A system, comprising:

a memory that includes an interface engine; and

a processor that is coupled to the memory and, when executing the interface engine, performs the steps of:

displaying a three-dimensional virtual environment that includes a first logic node connected to a second logic node via a first link,

wherein:

the first logic node, the second logic node, and the first link comprise an executable program,

the first logic node represents a set of functions performed by a first physical object,

the second logic node represents a set of functions performed by a second physical object, and

the first link graphically represents a first data connection between the first logic node and the second logic node;

executing the executable program to begin execution of the first logic node and cause a data flow between the first logic node and the second logic node via the first data connection;

displaying a plurality of particles moving along the first link with a first motion to visually represent the data flow;

in response to receiving a selection of a step tool while the first logic node is executing, performing the steps of:

completing execution of the first logic node; and

upon the completion of execution of the first logic node, pausing execution of the executable program and stopping the plurality of particles from moving along the first link; and

in response to receiving a selection of a sequence tool, performing the steps of:

executing the executable program to begin execution of the second logic node; and

displaying the plurality of particles moving along the first link with a second motion that appears slower than the first motion.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2017
From: ENS, BARRETT; ANDERSON, FRASER; FITZMAURICE, GEORGE; GROSSMAN, TOVI
To: AUTODESK, INC.
Reel/Frame 043720/0136 →
Continuity (3)
Continuation 15636517 · Jun 28, 2017
Provisional Application 62357856 · Jul 1, 2016
Related Publication 20180018076A1 · Jan 18, 2018