This application claims priority under 35 U.S.C. § 119 or 365 to European Application No. 19306776.6, filed Dec. 26, 2019. The entire contents of the above application(s) are incorporated herein by reference.
The present disclosure relates to the field of user interfaces. More specifically, it relates to the selection of 3D objects in a 3D user interface.
3D interfaces are nowadays used in a wide range of applications. Indeed, they allow users to interact with 3D objects, according to different angles of views. 3D interfaces are adaptable to a wide range of contexts. For example, the 3D modeling may be performed locally, by the computer the user interacts with, or remotely in a server, the user interacting with images that are sent by the server. In the latter case, the 3D interface and corresponding tool may be provided by Saas (Software as a Service).
One of the applications allowed by 3D interface is CAD (Computer-Aided Design), which consists in using a computer to design products in 3D. CAD applications allow designing virtually any product. Many CAD applications exist. For example, the CATIA composer allows a user to model a device using a plurality of 3D elements. CAD applications such as CATIA allow not only designing the shape of the product, but also performing a number of tests and simulations. They also allow generating a number of different view of the product, for example to generate 3D documentations.
In CAD applications, as in other applications that rely on 3D interfaces, a number of 3D objects are displayed to a user, and the user can select one or more objects he desires to interact with. In CAD applications, this allows for example the user to move objects/parts to organize a 3D scene. To do so, he has to select one or several parts using standard selection tools like mono selection which consist in selecting a single object, for example using a click or a tap, or multi-selection which consists in selecting a plurality of objects in the same time, for example using a plurality of clicks or taps, or a “selection trap” which consists in defining a shape (i.e rectangle, polygon, free shape . . . ), all objects under the shape being selected. Once one or more objects are selected, the user can modify them using any transformation tool provided by the 3D interface.
In previous systems, the selection of objects is directly mapped to the place wherein the selection was performed. For example, if the user clicked, the 3D object which is displayed at the place wherein the click is made is selected. However, the selection of 3D object which is then performed does not necessarily correspond to the intent of the user. This is more particularly true for complex scenes with a lots of 3D objects of different sizes: when the user clicks on the scene, the object which is selected may be a very small object that was precisely placed where the user clicked but was not even seen by the user. No previous system is currently able to ensure that the 3D objects that are selected are consistent with the intent of selection of the user.
There is therefore the need of a 3D interface that allows a user to view and select 3D objects, while ensuring that the selection is consistent with the selection that the user was likely intending to perform.
To this effect, the disclosure describes a computer-implemented method, comprising the steps of: displaying on at least one display, a set of 3D objects; receiving from at least one input interface a selection by a user of at least one first 3D object belonging to said set calculating a 3D projection of said selection on said display; obtaining the outcome of a comparison of at least one size of said 3D projection to at least one threshold; if said outcome is negative, adding to or removing from said selection at least one second 3D object; modifying appearance parameters of said selection.
Advantageously, said at least one second 3D object is determined according to said at least one threshold.
Advantageously, the computer-implemented further comprises, while the outcome of said comparison is negative, a plurality of iterations of: adding to or removing from said selection at least one second 3D object; calculating the 3D projection of said selection on said display; obtaining the outcome of said comparison of said at least one size of said 3D projection to said at least one threshold.
Advantageously, adding to or removing from said selection at least one second 3D object comprises adding to said selection at least one second 3D object in a vicinity of said 3D projection, or removing from said selection at least one second 3D object at an edge of said 3D projection.
Advantageously, said set of 3D objects is organized as a tree, and: said selection is defined as a node of the tree, and includes the children of the node; adding to said selection at least one second 3D object comprises defining the parent of the node as the selection; removing from said selection at least one second 3D object comprises defining the child of the node that comprises said first 3D object as the selection.
Advantageously, said at least one size is a maximum distance between pixels of said 3D projection.
Advantageously, wherein said at least one size is a surface of said 3D projection.
Advantageously, said threshold is defined according to an angle of view of the user.
Advantageously, said threshold is defined according to a precision of said selection by the user.
The invention also discloses a computer program product, stored on a non-volatile computer-readable data-storage medium, comprising computer-executable instructions to cause a computer system to carry out the computer-implemented method according to an embodiment of the invention.
The invention also discloses a non-transitory computer-readable data-storage medium containing computer-executable instructions to cause a computer system to carry out a method according to an embodiment of the invention.
The invention also discloses a computer system configured for implementing the method according an embodiment of the invention, comprising: at least one display; at least one input interface; at least one computing device, configured to execute a method according to an embodiment of the invention.
The disclosure will be better understood and its various features and advantages will emerge from the following description of a number of exemplary embodiments provided for illustration purposes only and its appended figures in which:
The image 100 shows a 3D scene representing a car. The 3D scene may for example be edited by a CAD application such as CATIA composer, or any other 3D application wherein a user can interact with 3D objects. The scene is composed of a number of 3D objects, that each represent parts of a car. For example, each wheel is represented by one 3D object. The user can click on different parts of the car to select the corresponding 3D objects. The scene can be associated to one or more point of view, that can be edited.
The image 110 shows the same scene, wherein the user has performed a zoom out, to have a “bird view” of the car. Under this zoom, the user is still able to click on parts of the car to select the corresponding 3D objects. For example, when the user clicks on the wheel 111, the wheel is selected and highlighted. However, this does not really make sense, because the user is, at this level of zoom, not really able to distinguish the various parts. At this level of zoom, the user more likely attempted to select the car as a whole, rather than only the wheel 111.
However, previous systems use the same rules of selection whatever the zoom, and the apparent size of the 3D objects. Therefore, they are not able to perform a selection that is likely to meet the intent of the user.
The device 200 may be any kind of device with computing capabilities. For example, the device 200 may be a computer, a smartphone or a tablet, an IoT device, a server or the like.
The device comprises an access to at least one display 210. The display 210 can be any kind of display allowing the user to view images from the device 200. For example, the display 210 may be any screen or the like such as glasses, a tactile screen, a watch or a video projector. The display 210 may be embedded within the same housing as the device 200. This is for example the case if the display 210 is a screen (whether tactile or not) of a smartphone or a tablet. The display may also be embedded within a housing separated from the device 200, and the device 200 connected to the display 210. It is for example the case if the display is a separate screen, or a video projector. The device 200 can be associated to the display 210 through any kind of connection, for example through a wire or a wireless connection (e.g Bluetooth™, Wi-Fi™, or any kind of wireless connection allowing the device 200 to send images to the display 210). For the sake of simplicity, in the remaining of the disclosure the at least one display 210 will be described as “the display”. However, according to various embodiments, more than one display may be used. For example, a computing device with a plurality of screens may be used, the set of objects being displayed on the plurality of screens.
The display can also be a combination of elementary displays. For example, the display can comprise two screens side by side, and the user can use seamlessly the two screens.
The device 200 also comprises at least one input interfaces 220 to receive commands from a user, to select one or more 3D objects. The at least one input interfaces 220 can be any kind of interface allowing the user to input commands such as a mouse, buttons, keys, keyboard, eyes contact or the like.
Although
The device 200 further comprises an access to one or more memories 230 storing a set of 3D objects. The one or more memories 230 may be any kind of internal, external, volatile or non-volatile memories. For example, it can be formed by an internal or external hard drive, a memory in a cloud which can be accessed by the device 200, a memory shared among a plurality of devices, a memory on a server, a CD-ROM, or a combination thereof, or more generally any suitable memory or combination thereof.
The one or more memories 230 store a set of 3D objects. The set of 3D objects may for example represent parts of a product that is being designed in a CAD application. The disclosure is generally applicable to any set of 3D object in any 3D application wherein 3D objects are selectable by a user.
According to various embodiments, the display 210, input interface 220, and computing device 200 may be located in the same place, for example if the computing device is a workstation, and the display 210 and input interface 220 are the display and input interface of the workstation. They may also be located in different places, for example if the disclosure is implemented within a “Software as a Service” (Saas) application. In such case, the computing device 200 may be a server in connection with a user device that displays and receives input through a remote client such as a web browser.
As will be described in more details hereinafter, the device 200 allows the user to select one or more 3D objects of the set, to which further processing may be applied.
As already discussed, one objective is to ensure that this selection is consistent with the intent of the user.
To do so, the device 200 comprises a processing logic 240, which is configured to execute the steps of a computer-implemented method according to one embodiment, as defined below.
According to various embodiments, a processing logic may be a processor operating in accordance with software instructions, a hardware configuration of the processor, or a combination thereof. It should be understood that any or all of the functions discussed herein may be implemented in a pure hardware implementation and/or by a processor operating in accordance with software instructions, and/or a configuration of a machine learning engine or neural network. A processing logic may also be a multi-core processor executing operations in parallel, a series of processors, or a combination thereof. It should also be understood that any or all software instructions may be stored in a non-transitory computer-readable medium. The term “configuration of a processing logic” refers to any means (for example hardware configuration, software instructions, machine learning, training or neural network, or any other adaptation means or combination thereof) of adapting a processing logic to execute operations.
The computer-implemented method 300a is implementable on a wide number of computing devices. For the sake of simplicity, the method will be explained in connection to the device 200 represented in
To this effect, the method 300a comprises a first step 310 of displaying, on the display 210, a set of 3D objects. As already discussed, the set of 3D objects may represent all or a part of a 3D scene, and may be objects of any kind of 3D application, such as a 3D product in a CAD application. This allows a user to view the set of 3D objects
The method 300a further comprises a second step 320 of receiving, from the at least one input interface 220, a selection by the user of at least one first 3D object belonging to said set.
This selection could be performed by any known method. For example, the user may click on one of the objects, or draw a rectangular shape that encompasses a plurality of objects. In the latter case, all the objects that are located within a bounding box which located in the rectangular shape may be selected.
The method 300a further comprises a third step 330 of calculating a 3D projection of the selection on the display 210.
Calculating a 3D projection consists in determining what is the 2D shape of the 3D objects when projected in 2D on the display 210. The 3D projections may depend at least upon the size, shape and position of the object, and a zoom ratio. It may also depend upon a resolution and size of the display 210. The 3D projection may also be implemented using any known 3D projection method.
The output of the 3D projection is typically a 2D shape, which may be defined as a set of pixels on which the selected 3D objects will be projected.
According to various embodiments, at least one size of 3D projection may be calculated.
A size of the 3D projection may be a distance, expressed for example in pixels, inches, or centimeters. This distance may be for example a height, a width, a diameter, a maximum extension, or a maximum distance between pixels that belong to the 3D projection.
Using as size the maximum distance between pixels that belong to the 3D projection provides the advantage of well defining the 1D extension of the object, and thus providing a good insight of what will be the importance of the object on the screen.
A size of the 3D projection may also be a surface of the 3D projection, expressed for example in number of pixels, square centimeters, or square inches.
Using as size of the 3D projection its surface allows obtaining information about the quantity of information that is viewed by the user to tailor the selection.
According to various embodiments, either a single or a plurality of sizes may be used. Sizes may also be combined within compound sizes. For example, a compound size may be obtained by combining the height and the width of the 3D projection, or by combining the height, the width and the surface of the 3D projection.
Once the at least one size of the 3D projection is obtained, it can be compared to at least one threshold, and the method 300a comprises a fourth step 340 of obtaining the outcome of this comparison.
Different comparisons may be used. For example, the comparison may consist in verifying if a size is lower than, equal to or higher than a threshold. The comparison may be also formed of a plurality of comparisons. For example, the outcome of the comparison can be positive if the surface of the 3D projection is higher than or equal to a minimum surface, and lower than or equal to a maximum surface. The comparisons may also concern a plurality of different sizes. For example, the comparison may be positive if the height of the 3D projection is higher than or equal to a minimum height, and the width of the 3D projection is higher than or equal to a minimum width.
Thus, according to various embodiments, the comparison allows to determine whether the at least one size of the 3D projection of the selection matches expected values, and thus correspond to a selection that the user was intended to perform. Stated otherwise, this allows determining whether the objects selected are large enough, and/or small enough to correspond to a desired selection. Of course, the at least one threshold can be adapted to the user needs.
According to various embodiments, the at least one threshold may be defined in many different ways.
In a number of embodiments, the at least one threshold is defined according to a point of view of the user.
This allows ensuring that the user benefits form a selection for which he has a relevant angle of view, whatever the size of the display. The angle of view can indeed be mapped to the display, to obtain a threshold in pixels, centimeters of inches for example. The angle of view can be determined for example according to the resolution of the display, and the distance between the user and the display.
In a number of embodiments, the at least one threshold is defined according to a precision of said selection by the user.
This allows ensuring that the size of the final selection is consistent with the size of the selection that the user was actually able to make.
The size of the selection can thus be for example adapted to a pointing method: for example, if the input interface is a tactile screen, a low threshold for a precise selection may be used if a precise selection method such as pointing with a stiletto was used, while a high threshold for an imprecise selection may be used if an imprecise selection method such a pressing a finger on the tactile screen was used.
The comparison of the 3D projection to at least one size therefore allows ensuring that the selection corresponds to a likely intent of the user, for example a set of objects that was properly seen, and/or that matches the precision of the selection of the user.
At step 350, the method 300a comprises a determination whether the outcome is positive or negative.
If the outcome is negative, the method 300a comprises an additional step 360 of adding to or removing from said selection at least one second 3D object.
This step may consist in adding at least one second 3D object to the selection, if the projection is too small, for example if the at least one size is lower than the at least one threshold, and/or removing 3D objects from the selection if the projection is too large, for example if the at least one size is higher than the at least one threshold.
This allows ensuring that the selection, as modified or not, complies with the expected intent of the user.
In a number of embodiments, the at least one second 3D object which is added to or removed from the selection is determined according to said at least one threshold.
This allows selecting the at least one second 3D object specifically to match the threshold, and thus ensure that the final selection contains only what is needed to match the threshold.
This may be performed in different ways. For example, a circle whose radius corresponds to the threshold of surface or distance may be calculated around the center of the selection by the user, and all the 3D objects whose 3D projection fall in the circle that do not belong to the selection may be added to the selection.
The method 300a comprises a final step 370 of modifying appearance parameters of the selection.
This allows the user to view the objects that have been selected, in order to ensure that the selection is correct, and modify the selection, and/or or be aware of the objects on which he will perform further actions.
The modification of the appearance parameters of the selection may consist in any modification of the appearance parameters that allows the user distinguishing the selected objects from the others: highlighting, modification of the colors, etc.
Therefore, the method 300a allows ensuring that the final selection, modified or not, that will be presented to the user will correspond to a selection that was likely intended to be performed by the user.
The method 300b is very similar to the method 300a, and also comprises the steps 310, 320, 330, 340, 350, 360, and 370.
In addition, at the output of step 370, a new iteration of steps 330, 340, 350 is performed. Therefore, until the outcome of the comparison is positive at steps 340, and 350, that is to say until the at least one size of the 3D projection matches the at least one threshold, objects are removed or added at step 360, the 3D projection is calculated again at step 330, and at least one size of the projection is compared to at least one threshold at step 340. As many iterations as needed can be performed, until the 3D projection of the selection allows a positive outcome at steps 340 and 350.
This iterative addition or removal of objects to/from the selection allows adding or removing only what is needed to obtain a selection that was likely intended to be performed by the user.
The addition or removal of objects to the selection can be performed in different ways. For example, the embodiments discussed with reference to
In a number of embodiments, the addition of at least one second object to the selection comprises the adding to said selection at least one second 3D object in a vicinity of said 3D projection, and the removal of at least one second 3D object from the selection comprises removing from said selection at least one second 3D object at an edge of said 3D projection.
Thus, if 3D objects need to be added (for example if a size of the 3D projection is lower than a minimum threshold), objects at the vicinity of the selection are added, while, if 3D objects need to be removed (for example if a size of the 3D projection is higher than a maximum threshold), objects at the edge of the selection are removed. Thus, the selection is progressively expanded or diminished, until the desired size thresholds are met.
The choice of the objects to add or remove may also depend upon the size that is considered. For example, if the size is the height of the 3D projection, the objects may be added to or removed from the selection vertically, while, if the size is a width of the 3D projection, this may be done horizontally.
In a number of embodiments, the 3D objects are organized as a tree. For example, 3D objects are often grouped hierarchically in CAD applications, from lower-level to higher-level parts of a product. In such case, the natural hierarchy can be used for an efficient management of the selection if:
Thus, the selection can be extended or reduced to a higher/lower hierarchical level, respectively if objects need to be added (i.e if the 3D projection is too small according to the selected sizes and thresholds), or removed (i.e if the projection is too large according to the selected sizes or thresholds).
This allows the selection to correspond to the logical grouping of the 3D objects that was the more likely to be selected by the user.
In certain cases, none of the nodes corresponds to a selection that matches the criteria, for example if a child node is too small and its parent too big. In such case, the iterations can be stopped to select the hierarchical level that corresponds to a size that is the least different from the thresholds. Other rules may also be used to discriminate the most relevant level in such case. For example, if the 3D projection of the parent node cannot be completely seen in the display, the selection of the child node may be preferred.
In the
The only difference between images 410, 420 and 430 is the zoom ratio that is used: in 410 the zoom ratio is very low, to show a “bird view” of the car; in 420 the zoom is an average zoom, that allow recognizing the car and its main parts; in 430, a high zoom is used, that renders apparent lots of details of the car.
In each case, the user clicks on the same location 411, 421, 431 of a wheel of the car. However, thanks to the disclosure, the selection is different:
Thus, in both cases, the selection correspond to a logical choice of the user depending on the zoom ratio, and the apparent sizes of the 3D objects: under the click of the user, it would indeed not have made sense to select only a part of the car in 410, while it would not have made sense to select the whole car in 430.
This improved selection enhances the ability of the user to interact with virtually any 3D application.
In this example, the 3D objects that represent the car are organized hierarchically in a tree of parts. This allows selecting, in 420, the right level of abstraction, which corresponds to a logical grouping 422/421.
The images 510 and 520 both represents a 3D scene of a 3D CAD application, wherein a gear is modeled. The gear is modeled as a hierarchical tree of 3D parts.
In 510, the user clicks on the part 511, which is thus selected and highlighted. In this example, the part 511 corresponds to a node of the tree, and its parent represents the whole gear. The selection of the whole gear 521 is not performed here, because, at the current zoom ratio, the size of the gear is too big, and the 3D projection of the gear does not even fit the display area.
The examples above demonstrate the ability of the disclosure to provide to users an efficient and intuitive selection of 3D objects.
The examples described above are however given as non-limitative illustrations of embodiments. They do not in any way limit the scope of the disclosure which is defined by the following claims.
Number | Date | Country | Kind |
---|---|---|---|
19306776 | Dec 2019 | EP | regional |
Number | Name | Date | Kind |
---|---|---|---|
4901252 | Fitzgerald | Feb 1990 | A |
4903202 | Crawford | Feb 1990 | A |
4982180 | Seki | Jan 1991 | A |
5825998 | Brechner | Oct 1998 | A |
5850206 | Kashiwagi | Dec 1998 | A |
5861885 | Strasnick | Jan 1999 | A |
5861889 | Wallace | Jan 1999 | A |
5867610 | Lee | Feb 1999 | A |
5894308 | Isaacs | Apr 1999 | A |
6337700 | Kinoe | Jan 2002 | B1 |
6611267 | Migdal | Aug 2003 | B2 |
6731304 | Sowizral | May 2004 | B2 |
6768486 | Szabo | Jul 2004 | B1 |
7194114 | Schneiderman | Mar 2007 | B2 |
7250947 | Piccuezzu | Jul 2007 | B2 |
7379562 | Wilson | May 2008 | B2 |
7885145 | Marti | Feb 2011 | B2 |
7890890 | Jarrett | Feb 2011 | B2 |
8073198 | Marti | Dec 2011 | B2 |
8121400 | Tsai | Feb 2012 | B2 |
8233712 | Maxwell | Jul 2012 | B2 |
8274508 | Porikli | Sep 2012 | B2 |
8291049 | Roos | Oct 2012 | B2 |
8554521 | Diguet | Oct 2013 | B2 |
8610712 | Cohen | Dec 2013 | B2 |
8744130 | Fukuchi | Jun 2014 | B2 |
8902219 | Hauswirth | Dec 2014 | B1 |
9158441 | Hilton | Oct 2015 | B2 |
9298346 | Le Clerc | Mar 2016 | B2 |
9304653 | Moon | Apr 2016 | B2 |
9384593 | Anttila | Jul 2016 | B2 |
9407674 | Chan | Aug 2016 | B2 |
9429990 | Starner | Aug 2016 | B2 |
9594487 | Schmidt | Mar 2017 | B2 |
9721187 | Cook | Aug 2017 | B2 |
9753625 | Gupta | Sep 2017 | B2 |
10416836 | Troy | Sep 2019 | B2 |
10802600 | Ravasz | Oct 2020 | B1 |
20010042118 | Miyake | Nov 2001 | A1 |
20020163515 | Sowizral | Nov 2002 | A1 |
20020167518 | Migdal | Nov 2002 | A1 |
20030071810 | Shoov | Apr 2003 | A1 |
20040066966 | Schneiderman | Apr 2004 | A1 |
20050198590 | Jarrett | Sep 2005 | A1 |
20050226505 | Wilson | Oct 2005 | A1 |
20050286767 | Hager | Dec 2005 | A1 |
20060066609 | Iodice | Mar 2006 | A1 |
20060103669 | Piccuezzu | May 2006 | A1 |
20070165924 | Nicponski | Jul 2007 | A1 |
20090109795 | Marti | Apr 2009 | A1 |
20090110235 | Marti | Apr 2009 | A1 |
20090276724 | Rosenthal | Nov 2009 | A1 |
20100272357 | Maxwell | Oct 2010 | A1 |
20100302242 | Buchanan | Dec 2010 | A1 |
20100318929 | Hilton | Dec 2010 | A1 |
20100325307 | Roos | Dec 2010 | A1 |
20110069892 | Tsai | Mar 2011 | A1 |
20110112803 | Diguet | May 2011 | A1 |
20110141109 | Radet | Jun 2011 | A1 |
20110302535 | Clerc | Dec 2011 | A1 |
20120139915 | Muikaichi | Jun 2012 | A1 |
20120154435 | Murakami | Jun 2012 | A1 |
20120206438 | Porikli | Aug 2012 | A1 |
20120280927 | Ludwig | Nov 2012 | A1 |
20120287123 | Starner | Nov 2012 | A1 |
20120313939 | Anttila | Dec 2012 | A1 |
20130127824 | Cohen | May 2013 | A1 |
20130194260 | Kunath | Aug 2013 | A1 |
20130205248 | Moon | Aug 2013 | A1 |
20130227493 | Schmidt | Aug 2013 | A1 |
20130321403 | Piemonte | Dec 2013 | A1 |
20140003667 | Fukuchi | Jan 2014 | A1 |
20140207420 | Edwards | Jul 2014 | A1 |
20140368621 | Michiyama | Dec 2014 | A1 |
20150063679 | Cook | Mar 2015 | A1 |
20150186555 | Divekar | Jul 2015 | A1 |
20150213572 | Loss | Jul 2015 | A1 |
20150277706 | Chan | Oct 2015 | A1 |
20160188159 | Dayde | Jun 2016 | A1 |
20160274767 | Gupta | Sep 2016 | A1 |
20170016719 | Delfino | Jan 2017 | A1 |
20170139556 | Josephson | May 2017 | A1 |
20180004283 | Mathey-Owens | Jan 2018 | A1 |
20180114371 | Cullum | Apr 2018 | A1 |
20190088031 | Coulet | Mar 2019 | A1 |
20190266772 | Li | Aug 2019 | A1 |
20200211239 | Ng | Jul 2020 | A1 |
20210090331 | Ravasz | Mar 2021 | A1 |
Entry |
---|
European Search Report dated Jun. 9, 2020, issued in corresponding application No. EP19306776.6, filed on Dec. 26, 2019, 7 pages. |
Number | Date | Country | |
---|---|---|---|
20210200420 A1 | Jul 2021 | US |