US 12,494,003 B2
Automatic layer flattening with real-time visual depiction
Jason Ward, Oakland, CA (US); Gitta Salomon, San Francisco, CA (US); Lara Beth Mitchell, San Francisco, CA (US); Micah Wilson, South Jordan, UT (US); Braden Scothern, West Jordan, UT (US); and Matt Stoker, Bountiful, UT (US)
Assigned to Cricut, Inc., South Jordan, UT (US)
Appl. No. 18/001,120
Filed by Cricut, Inc., South Jordan, UT (US)
PCT Filed Jun. 9, 2021, PCT No. PCT/US2021/036575
§ 371(c)(1), (2) Date Dec. 8, 2022,
PCT Pub. No. WO2021/252602, PCT Pub. Date Dec. 16, 2021.
Claims priority of provisional application 63/036,884, filed on Jun. 9, 2020.
Prior Publication US 2023/0215064 A1, Jul. 6, 2023
Int. Cl. G06T 11/60 (2006.01); G06F 3/04817 (2022.01); G06F 3/0482 (2013.01); G06F 3/04842 (2022.01); G06F 3/04845 (2022.01)
CPC G06T 11/60 (2013.01) [G06F 3/04817 (2013.01); G06F 3/0482 (2013.01); G06F 3/04842 (2013.01); G06F 3/04845 (2013.01); G06T 2200/24 (2013.01)] 22 Claims
OG exemplary drawing
 
1. A computer-implemented method when executed on data processing hardware causes the data processing hardware to perform operations comprising:
executing a design generating program configured to display on a screen in communication with the data processing hardware a graphical user interface having:
a virtual canvas window configured to present one or more selected content objects to be incorporated into a unique design; and
a content object selection window comprising available content objects to select from for presentation in the virtual canvas window,
wherein the design generating program is configured to:
receive, in the content object selection window, selection inputs from a user indicating:
selection of a first content object from the available content objects; and
selection of a second content object from the available content objects;
after receiving the selection inputs, display the first and second content objects in the virtual canvas window;
for each corresponding content object among the first and second content objects displayed in the virtual canvas window, assign a respective set of available actions to perform on the material using the corresponding content object, the respective set of available actions comprising a cut action to perform on the material using the corresponding content object and a cut-out action to perform on the material using the corresponding content object;
receive, in the virtual canvas window, a first manipulation input from the user indicating selection of the first content object to manipulate the first content object while displayed in the virtual canvas window;
in response to receiving the first manipulation input, display, in the virtual canvas window, a first available action menu superimposed on the virtual canvas window adjacent to the first content object, the first available action menu presenting two or more action icons each associated with a respective action from the respective set of available actions assigned to the first content object;
receive, in the virtual canvas window, a first action selection input from the user indicating selection of a cut action icon among the two or more action icons presented in the displayed first available action menu that is associated with the respective action;
in response to receiving the first action selection input from the user indicating selection of the cut action icon, select, from the respective set of available actions assigned to the first content object, the cut action to be performed on the material using the first content object, the first content object representing a positive space of the material based on the selection of the cut action, the positive space of the material corresponding to an area of the first content object that will remain after the cut action is performed on the material;
receive, in the virtual canvas window, a second manipulation input from the user indicating selection of the second content object to move the second content object to a target position in the virtual canvas window relative to the first content object displayed in the virtual canvas window;
based on the selection of the cut action to be performed on the material using the first content object and based on the first content object and the second content object overlapping when the second content object is moved to the target position:
dynamically update the respective set of available actions assigned to the second content object so that the cut action to perform on the material using the second content object is no longer available; and
display, in the virtual canvas window, a second available action menu superimposed on the virtual canvas window adjacent to the second content object, the second available action menu presenting a cut-out action icon associated with the cut-out action from the dynamically updated respective set of available actions assigned to the second content object;
receive, in the virtual canvas window, a second action selection input from the user indicating selection of the cut-out action icon presented in the displayed second available action menu that is associated with the cut-out action;
in response to receiving the second action selection input from the user indicating selection of the cut-out action icon, select, from the dynamically updated respective set of available actions assigned to the second content object, the cut-out action to be performed on the material using the second content object, the second object representing a negative space of the material based on the selection of the cut-out action, the negative space of the material corresponding to an area of the second content object that will be removed from surrounding portions of the material after the cut-out action is performed on the material; and
generate, for display in the virtual canvas window, the unique design by combining, based on the cut action and the cut-out action, respective portions of the first content object and the second content object.