The physical environment in which people live or work is equipped with various appliances including heating, ventilating, and air conditioning (HVAC) units with controllers and lights with light switches and sensors. With the development of computer technology, these appliances may be connected via a network to a control center where an administrator can monitor and control the appliances. Appliances located in different rooms within an intelligent building may be controlled with a three-dimensional (3D) based interaction application such as a 3D user interface (UI). 3D UIs are used in various environments because of their immersion and immediacy of visualization. Compared with two-dimensional (2D) UIs, 3D UIs provide more immersive effects and intuitive interactions.
Some embodiments are illustrated by way of examples, and not by way of limitations, in the figures of the accompanying drawings in which:
It is a challenging task to efficiently generate and use a 3D UI, and to effectively associate the behavior or animation of a 3D UI with a user's interactions. The inventors have discovered that the challenge noted above, as well as others, can be addressed by converting a 3D polygon mesh of a physical object into an interactive 3D UI so as to facilitate the development of a 3D-based interaction application. A 3D polygon mesh is a 3D geometric model of a physical object that may be drawn by a graphics designer or generated by scanning the physical object. Such a 3D polygon mesh may represent an appliance in a physical environment such as an HVAC controller. The 3D polygon mesh may be segmented into interactive entities, also called widgets. The 3D UI permits a user to monitor and interact with one or more appliances in the physical environment via the 3D UI shown by a display device.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the embodiments of the application may be practiced without these specific details.
The system 100 includes a 3D UI specification module 150 that binds the state variable with the behavior in a relationship for each widget. The 3D UI specification module 150 assembles a specification for the 3D UI. The 3D UI specification encapsulates and stores the information about the widgets for the entire 3D polygon mesh, including the related state variables and behaviors, and the binding relationship between each state variable and its associated behavior. The 3D UI specification can be saved as a file and loaded into memory so that it can be reused in future. When the user 126 interacts with a widget, its state variable will be changed so as to cause a change in an appliance in a physical environment. If the state variable of the widget is updated, its appearance will be changed by applying the behavior to the widget. The system 100 may be a processor or a microcontroller or an application specific integrated circuit (ASIC).
The 3D polygon mesh 120 may be segmented according to one of many segmentation algorithms such as, for example, a watershed-based mesh segmentation algorithm. The 3D polygon mesh 120 represents a rotatable temperature controller for a HVAC system (not shown). The mesh segmentation module 110 segments the 3D polygon mesh 120 into four sub-components, and
In block 240, the sub-components are assembled into one or more widgets. With reference to
e={<t,r>|t ∈ T,r ∈ R}
The state variable e has a particular type t ∈ T and a legal value range r ∈ R. Some examples of the type T include integer, boolean, and enumeration (T={int, bool, enum, . . . }). R={<k,R>|k ∈ K} is a set of possible legal value ranges, represented as a string list, where K is a set of strings. Different types of the state variable e parse the legal value range in different ways as shown in Table 1. If the type is “Int” and the legal range is [10, 30], the state variable e is an integer that is less than 30 and more than 10. If the type is “Bool” and the legal value range is [ON, OFF], the state variable e is “ON” when true and “OFF” when false. If the type is “Enum” and the legal value range is [Fast, Medium, Slow], the state variable e can be “Fast,” “Medium,” or “Slow”.
In block 450, the method 400 ends.
b={<a,l>|a ∈ A,l ∈ L}
The behavior b has a particular type a ∈ A and a parameter list l ∈ L. The type A is rotation or translation (A={Rotation, Translation, . . . }) according to an example embodiment. L={<q,L>|q ∈ R3} is a list of parameters. A first parameter may be a point P, and a second parameter may be a nonzero normal vector {right arrow over (n)} that is computed with respect to the point P. With P and {right arrow over (n)}, a plane is defined in the 3D polygon mesh 120 as a set of all points r such that
{right arrow over (n)}□(r−P)=0
The behavior of a widget can be defined in the plane. Other parameters can be designated by a user intersecting with the plane.
Behaviors defined for widgets may have constraints. Rotation in some embodiments may be constrained by a minimum angle point that cannot overrun an indicator point in a clockwise direction. Rotation may also be constrained by a maximum angle point that cannot overrun the indicator point in the counter-clockwise direction. In some embodiments, rotation has parameters including a center point, a normal vector computed from the center point, an indicator point, a minimum angle point, and a maximum angle point. Translation is permitted along a line segment between a start point and an end point. Translation may also have parameters including a start point, a normal vector, and an end point. Examples of numerical values for the parameters of translation and rotation are shown in Table 2.
A dependency constraint may be attached to the widgets, which defines how the widgets interact with each other. In the HVAC controller according to an example embodiment, all other widgets such as the top cylinder 620 to control temperature, the direction control switch 634 to switch between heating and cooling, and the fan control 636 to select a fan speed, will be inactive when the power control bar 630 is set as OFF.
The 3D UI generated for the 3D polygon mesh 120 according to the methods 200, 400, and 500 allows a user to rotate the top cylinder 620 to set a temperature for a physical environment and to move the power control bar 630 to turn on or turn off power supplied to an appliance represented by the 3D polygon mesh 120.
In block 550, the method 500 ends.
The activity of block 720 may be illustrated with respect to the top cylinder 620 shown in
In blocks 730-760, the 3D UI specification module 150 assembles a specification of the 3D UI. The 3D UI specification can be stored as a file and loaded into a computing system to allow a user to visualize and interact with the 3D UI. In block 730, the 3D UI specification module 150 adds data defining the widgets generated by the mesh segmentation module 110 to the specification. In block 740, the 3D UI specification module 150 adds the state variables defined by the state variable designation module 130 to the specification. In block 750, the 3D UI specification module 150 adds the behaviors defined by the behavior definition module 140 to the specification. In block 760, the 3D UI specification module 150 adds the binding relationships between the state variables and the behaviors defined by the 3D UI specification module 150 to the specification.
According to an example embodiment, a specification for the 3D UI is defined by a name and one or more widgets. Each widget is defined by a name, a state variable, a behavior, and a 3D shape. Each state variable is defined by a variable type, a valid value range, and a default value. Each behavior is defined by a behavior type and one or more parameters. Each 3D shape is defined by points and faces. According to an example embodiment, a specification for the 3D UI may include the following details:
In block 770, the method 700 ends.
The acts in the methods 200, 400, 500, and 700 may be implemented by hardware in an ASIC or may take the form of instructions implemented by a computing device such as a microprocessor or a microcontroller.
With reference to
The 3D UI described herein according to example embodiments are operated by the user to interact with an appliance in a physical environment such as a HVAC controller. When an operation is applied to a widget in the 3D UI, the state variable of the widget is updated, and an action on the appliance in the physical environment is activated via a communication protocol. When an action is applied to the appliance in the physical environment, a corresponding state variable of the 3D UI is updated via the communication protocol, and an operation on the corresponding widget is presented in the 3D UI.
With reference to
The example embodiments described herein begin with a high fidelity geometric model, such as the 3D polygon mesh 120, designed by graphic designers or scanned from a physical object. The example embodiments generate a 3D UI from the geometric model with a high usability interaction behavior.
A block diagram of a computer system that executes programming for performing the above methods is shown in
Computer-readable instructions stored on a computer-readable medium are executable by the processing unit 802 of the computer 810. A hard drive, CD-ROM, and RAM are some examples of articles including a computer-readable medium.
While there has been described herein the principles of the application, it is to be understood by those skilled in the art that this description is made only by way of example and not as a limitation to the scope of the application. Accordingly, it is intended by the appended claims, to cover all modifications of the application which fall within the true spirit and scope of the application.