Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Amendment
The Amendment filed 6/26/2026 has been entered. Claims 1-20 remain pending in the application.
Response to Arguments
Applicant’s arguments, see pages 12 and 13, filed 6/26/2026, with respect to the rejection(s) of claim 1 under 35 USC 103 have been fully considered and are persuasive, as the amended claim’s content overcomes the previously provided rejection. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of Goossens (US 10922901 B2).
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-6, 8, 11, 13-20 are rejected under 35 U.S.C. 103 as being unpatentable over Hua (US 20170161948 A1) in view of the documentation and official content on the roblox.com official website including things such as help articles, the engine reference, etc… referred to hereinafter as Roblox and further in view of Goossens (US 10922901 B2)
Regarding claims 13, 1, 18,
Hua teaches:
A computer-implemented system comprising: one or more computer processors; a virtual entity design computing environment implemented by the one or more computer processors, (Hua ¶47 “It should be understood that system 100 refers to a computing system having sufficient processing and memory capabilities to perform the following specialized functions”)configured to: rendering, by one or more computer processors implementing a virtual entity design computing environment, a virtual entity comprising a three-dimensional digital representation of a geometric model;(Hua ¶1 “more specifically, to the generation of three-dimensional (3D) polygonal meshes representing one or more garments deformed and/or layered with respect to a body mesh for visualization of garment fit”¶6 “Aspects of the present disclosure relate to systems and methods for deforming a polygonal mesh representing a garment fitted on a template body to a target body … The input interface may be configured to: receive a target body mesh representing the target body;” Note: Hua teaches a virtual entity that is a 3D digital geometric model, in Hua’s case this is a 3D polygonal mesh of a human body.) applying, by the one or more computer processors in a user-determined sequence, a plurality of attire objects onto the virtual entity based on a plurality of inputs of a user;(Hua ¶54 “layering engine 130 may be configured to receive two or more garment meshes and a target body mesh from input interface … Layering engine 130 may be configured to layer the garment meshes (deformed garment meshes) to the target body mesh according to a predetermined layering order, to generate a set of layered garment meshes collectively fitted to the target body mesh without intersections between the layered garment meshes. In some examples, the predetermined layering order may be a user-specified order received, for example, via user interface 150.” Note: Hua teaches that multiple clothing/attire meshes can be placed onto the virtual entity, the body mesh, in a specific sequence/layering order defined by the user.) in response to the application of the plurality of attire objects: deriving object sequencing metadata based on the user-determined sequence, the object sequencing metadata identifying an order in which each of the plurality of attire objects was applied to the virtual entity, (Hua ¶71 “In some examples, at Step 206, a layering order may be received, for example, by optional user interface 150. In some examples, a layering order may be obtained via retrieval from data storage 190.” Note: Earlier it was shown that Hua teaches a user can select a specific layering sequence of clothing items, here it is taught that said layering order can be placed in data storage.)
While Hua teaches that a virtual entity can have a plurality of garments applied to it in a sequential order defined by the user and recorded in memory it does not teach enabling a transferrable data container of the garment sequence and attire objects, or the ability to transfer the entity’s garment data to another virtual environment. This is instead taught in Roblox which teaches configuring, by the one or more computer processors, a transferrable data container that stores a representation of the plurality of attire objects and object sequencing metadata;(Roblox HumanoidDescription “HumanoidDescription is an object that stores a description a Humanoid for R6 and R15 rigs. It can be applied in order to set a rig's scaling, clothing (Shirts, Pants, ShirtGraphic), Accessories, Animation, and BodyColors. You can get a HumanoidDescription by using the following functions:
Players:GetHumanoidDescriptionFromUserId(), for an outfit currently being worn by a user on Roblox.com
Players:GetHumanoidDescriptionFromOutfitId(), for an outfits created by a user on Roblox.com user on Roblox.com
You can create a Humanoid rig model from a HumanoidDescription through Players:CreateHumanoidModelFromDescription().”
PNG
media_image1.png
420
922
media_image1.png
Greyscale
Note: Roblox teaches transferrable data container, in this case an object, that stores a representation of the multiple clothing items and their sequence. Roblox teaches multiple callable functions usable to obtain a HumanoidDescription object which is described as containing clothing items and the order they should be applied.) enabling a transmission of the transferrable data container to an interactive virtual environment different from the virtual entity design computing environment. (Roblox HumanoidDescription
PNG
media_image2.png
366
926
media_image2.png
Greyscale
Roblox Avatar Editor Service “The Avatar Editor Service lets you access and make changes to a user's avatar within an experience. The Avatar Editor Service can also access a user's inventory and the Marketplace to save outfits and purchase avatar items to the user's account … We recommend implementing the Avatar Editor Service with an in-game avatar editor” Note: The HumanoidDescription screenshot details the method SetAccessories will update an avatar’s accessories to include the ones stored in a HumanoidDescription, shown to store clothing items and the order they were layered. An “avatar” is customizable in the Avatar Editor Service user interface to change how avatars will look in “experiences”. Experiences are what Roblox refers to as games or virtual environments that users can create and share with each other. This teaches that aside from a design environment the clothing items and their order can be displayed and used on a virtual entity in a interactable virtual environment analogous to Roblox’s experiences.)
It would have been obvious to a person having ordinary skill in the art before the effective filing data of the claimed invention to combine Hua with Roblox where a system that allows a plurality of clothing objects to be applied to a virtual entity in a specific layering sequence that saves the clothing objects in the proper layering sequence also saves the content into a transferrable data container which can be transferred to a different virtual environment.
There are several reasons that would motivate one to do so, as Hua’s system aims to provide users with a way to generate 3D content ease of use could be increased by providing users a simple way to transfer their created content in/out of the software with a transferrable data container.
Neither Hua nor Roblox explicitly detail that the user inputs which apply the plurality of attire objects includes click and drag inputs. This is found in Goossens which teaches wherein applying the plurality of attire objects onto the virtual entity based on the plurality of inputs of the user includes: receiving a first plurality of click-and-drag inputs selecting the plurality of attire objects (Goossens Col. 9 Line 35 “One or more input components 1108 may be provided to permit a user to interact or interface with device 1100. For example, input component 1108 can take a variety of forms, including, but not limited to, an electronic device pad, dial, click wheel, scroll wheel, touch screen, one or more buttons (e.g., a keyboard), mouse, joy stick, track ball, microphone, camera, proximity sensor, light detector, and combinations thereof. Each input component 1108 can be configured to provide one or more dedicated control functions for making selections or issuing commands associated with operating device 1100.” Col. 1 Line 41 “An electronic device can display a three-dimensional model (e.g., an avatar) that may be constructed from several assets. For example, fashion accessory assets (e.g., glasses) can be placed on an external surface of a head asset of the model. Each asset can be placed or disposed on the model in a manner that may ensure that the position and orientation of the asset relative to other portions of the model are consistent when viewed from different angles. When a user moves an asset with respect to the remainder of the model, for example, by dragging the asset, the asset can move in a manner that maintains a consistent asset position and orientation with respect to other portions of the model.” Note: Goossens teaches that a plurality of input devices can provide commands to its system, indculding a mouse. Goossens also teaches that the user operation of dragging can drag an attire object, such as a fashion accessory like glasses, to place them on an avatar. It is implicit that to drag a UI component with a mouse one would need to click to select the object. Thus, Goossens teaches that attire objects can be moved onto a virtual entity, in this case an avatar, by a click and drag operation.) from an attire object palette and dragging the plurality of attire objects onto a viewport within the virtual entity design computing environment (Goossens Col. 3 Line 26 “Display 100, provided by electronic device 190, can include model 110 provided in front of background 102. Model 110 can represent any suitable object including, for example, a person, an animal, a place, or a thing (e.g., an imaginary being). In some cases, model 110 can include an avatar. A user can create model 110 by selecting assets from asset bar 120, and positioning specific assets on the model. The assets can include, for example, a face, mouth, eyes, ears, nose, mustache, beard, hair, eyebrows, glasses, hats, accessories (e.g., jewelry or band-aids), clothing, or other components that can be included on or integrated into a model. The assets can be provided from a source of assets (e.g., a library of assets that may be stored locally on or remotely from electronic device 190).”
PNG
media_image3.png
2181
2209
media_image3.png
Greyscale
Note: Goossens teaches a UI component analogous to the claims “attire object palette” with its asset bar 120, depicted above in Fig. 1. The asset bar provides a range of attire objects, specific named attire objects that are included are hats, glasses, and jewlery. A user can select an asset from the asset bar 120, with an operation such as a click and drag operation as taught previously in Goossens Col. 9 Line 35, and place it into the viewport. The viewport in Goossens can be seen above, where an avatar/model 110 is in the display/viewport 100 where attire objects can be dragged to be applied on the avatar.) while the viewport includes the virtual entity with the plurality of attire objects,(
PNG
media_image4.png
1446
908
media_image4.png
Greyscale
Note: Fig. 1, cited previously, shows the attire object pallete and the viewport with the virtual entity, in this case an avatar, placed in the viewport. In Fig. 2 the avatar with a plurality of attire objects placed onto it can be seen.) receiving a second click-and-drag input within the viewport; and responsive to receiving the second click-and-drag input within the viewport, dynamically updating a location and a rotation of a target respective attire object on the virtual entity;(Goossens Col. 3 Line 57 “In some embodiments, a user can customize the model by moving an asset to different placements with respect to the rest of the model. In the example of display 200 of model 210 in FIGS. 2A and 2B, respective displays 200A and 200B of model 210 can include glasses asset 212 in two different placements (e.g., on the bridge of the nose of model 210 of FIG. 2A, and on the forehead of model 210 of FIG. 2B). The user can move asset 212 using any suitable approach including, for example, by dragging asset 212 with respect to model 210, or by using directional instructions (e.g., directional keys of an input interface).” Note: In Goossens’ description of Fig. 2A and 2B it is taught that an already placed attire object on a virtual entity can be dynamically updated. The initial placing of the attire object would be the first input, and the change from Fig. 2A to 2B where the attire object has its location and rotation updated is the second input. It is known that both of these inputs can be click and drag operations, as Goossens Col. 3 Line 57 teach the movement to a new placement can be done via dragging, similar to how the original placement of an attire object taught in Goossens Col. 1 Line 41 can be done via a click and drag operation.)
It would have been obvious to a person having ordinary skill in the art before the effective filing data of the claimed invention to combine Hua with Goossens where attire objects placed on a virtual entity can be placed via a click and drag operation, and the rotation and placement of the attire can also be changed via a click and drag operation.
There are several reasons that would motivate one to do so, the present invention and Hua aim to provide a user friendly, accessible means to view pieces of clothing on a model/avatar/virtual entity. If one wish to make the placing and moving of attire as easy to interact with as possible for users, common, existing, near universal UI operations that a user would already be familiar with could be used, like a click and drag operation.
Regarding claim 2, 14, 19
Hua teaches:
The system according to Claim 13, further comprising: fitting each attire object of the plurality of attire objects to a given geometric region of a plurality of geometric regions of the virtual entity, (Hua ¶6 “The deformation engine may be configured to: … applying a predetermined weighting to each identified template body vertex and each identified other garment vertex; mapping the garment vertex to the one or more identified template body vertices based on a sum of the weighted template body vertices and the weighted garment vertices;”
PNG
media_image5.png
418
694
media_image5.png
Greyscale
Note: Hua teaches that garments are fitted by using vertices of the body model we are mapping the garment to. As seen in Fig. 5A-F above a garment and a body mesh are shown, as the vertices on every region of the body Hua teaches garments are fit to each vertex, Hua teaches that garments can be fit to any given geometric region of the body.)wherein the fitting of each attire object causes the respective attire object to change from a first n-dimensional geometric size to a second n-dimensional geometric size;(Hua ¶32 “a system may include a deformation engine configured to receive at least one garment mesh fitted to a template body mesh and deform the garment mesh such that it is fitted onto the target body mesh … The deformation process may include mapping of the garment mesh to the target body mesh, to deform the garment mesh to the target body mesh. The deformation process may also include performing a length adjustment on the deformed garment mesh, such that the length of the garment mesh corresponds to the original garment mesh. The deformation process may also include reconstructing the deformed garment mesh to eliminate any self-intersections of the deformed garment mesh, and any intersections between the garment mesh and the target body mesh. The template body mesh may be different from the target body mesh. For example, a shape, a size and/or a pose of the template body mesh may be different from the target body me” Note: Hua teaches that a garment fit to one type of body, here a template body, can be deformed so that it properly fits a differently sized body, a target body. Hua teaches specifically that the size and shape of the garment geometry is changed to fit the different height and body shape of the target body resulting in the garment having a first and second dimensions.) and wherein configuring, by the one or more computer processors, the stored data further includes storing, the second n-dimensional geometric size of each of the plurality of attire objects based on the fitting. (Hua ¶52 “In some examples, deformed garment mesh(s) may be stored in data storage 190.” ¶59 “In some examples, collapsed garment meshes, expanded garment meshes, shape-recovered garment meshes and/or the received garment meshes may be stored in data storage 190, e.g., at least during the layering process performed by layering engine 130.” Note: Hua teaches that the previously described deformed garment meshes deformed to fit the dimensions of the target body are stored, teaching that the second dimensional geometric size of the attire objects based on the fitting to a different entity are saved.)
While Hua does teach changing the dimensions and size of clothing items to fit properly fit a virtual entity it does not teach that a second dimension and size the garments should be displayed as, or the actual garment itself, is stored in a transferrable data container. This is instead taught in Roblox which teaches and wherein configuring, by the one or more computer processors, the transferrable data container further includes storing, within the transferrable data container, the n-dimensional geometric size of each of the plurality of attire objects based on the fitting. (Roblox HumanoidDescription
PNG
media_image6.png
552
888
media_image6.png
Greyscale
PNG
media_image7.png
634
912
media_image7.png
Greyscale
Roblox Layers of Genius Behind Layered Clothing “The magic of the clothes in this system is that they can stretch to fit any platform character – from a Classic Blocky all the way to a T-Rex – and it fits nicely on top of multiple layers a character is already wearing … The ‘aha’ moment came when our team considered the “abstraction layer” between the two meshes — introducing a new cage layer acting as an outer boundary of the underlying body structure, then interacting with the inner cage of the shirt getting layered on top of the body. This interaction gets even more complicated when the character starts to animate and move around, since the interaction of surfaces, cages and skin becomes exceedingly complex. We found a way to wrap every vertex of one mesh around another, their dimensions governed by the behavior of the abstraction layer” Note: In claim 1 it was shown how a HumanoidDescription teaches that the multiple clothing items and their layering sequence are stored in a transferrable data container. Aside from just the clothing items, the screen shots above from HumanoidDescription show that the dimensions of the body are stored as well. HumanoidDescription stores all avatar body dimensions however in the screenshots only depth and height scaling are provided as examples. In the provided citation it can be seen that the Roblox teaches fitting clothes to avatars leveraging the size of the avatar itself to determine how to stretch the clothes. As the new garment dimensions are directly obtained from stretching them to fit avatar dimensions, and Roblox stores avatar dimensions when it saves its attire objects and sequence Roblox teaches storing the geometric size of the fitted attire objects.)
It would have been obvious to a person having ordinary skill in the art before the effective filing data of the claimed invention to combine Hua with Roblox where a system that allows multiple clothing objects in a sequence to be properly fit to the body of a virtual entity and saving multiple fit sizes of a clothing object also allows for the multiple clothing objects in sequence to be saved to a transferrable data contained with multiple different sizes of the same clothing object for different fits.
There are several reasons that would motivate one to do so, it has been previously shown why one would combine a transferrable data container with one sequence of layered clothing content Hua produces. The functionality could be similarly improved further by allowing a differently sized version of the clothing objects to be stored as well since a user designing clothes would likely have a need to have multiple instances of the same clothing object to fit different individuals.
Regarding claim 3, 15, 20,
Hua teaches:
The system according to Claim 13, further comprising: identifying n-dimensional coordinates for each attire object of the plurality of attire objects based on a placement of the respective attire object onto a given geometric region of a plurality of geometric regions of the virtual entity;(Hua ¶6 “The deformation engine may be configured to: … applying a predetermined weighting to each identified template body vertex and each identified other garment vertex; mapping the garment vertex to the one or more identified template body vertices based on a sum of the weighted template body vertices and the weighted garment vertices;” ¶73 “FIG. 5A illustrates a template body mesh of the type that may be received at input interface 110. FIG. 5B illustrates an original garment mesh of the type that may be received at input interface 110. In FIG. 5B, the garment mesh is fitted to the template body mesh shown in FIG. 5A. FIG. 5C illustrates the combination of the original garment mesh of FIG. 5B and the template body mesh of FIG. 5A. [0074] FIG. 5D illustrates a target body mesh that is different from the template body mesh of FIG. 5A (e.g., having a different shape which may be associated with a different size and/or pose). FIG. 5E illustrates the original garment mesh of FIG. 5B deformed to fit the target body mesh shown in FIG. 5D according to the deformation process of deformation engine 120. FIG. 5F illustrates the deformed garment mesh of FIG. 5E combined with the target body mesh of FIG. 5D.”
PNG
media_image5.png
418
694
media_image5.png
Greyscale
Note: Hua teaches that the vertices of a body model are leveraged when fitting a clothing item to the body. As seen in the Fig. 5A-5F a garment 5B fit to body 5A will be deformed to fit body 5D and becomes the reshaped garment 5E. As see bub the figure the geometry has changed noticeably and therefore the individual vertices/coordinates that make up the geometry.) and wherein configuring, by the one or more computer processors, the transferrable data container further includes storing the n-dimensional coordinates for each of the plurality of attire objects. (Hua ¶48 “Reconstruction module 123 may be configured to generate a reconstructed garment mesh(s) that resolves the final shape of the length-adjusted garment mesh to form the deformed garment mesh(s). To resolve the final shape, reconstruction module 123 may be configured to eliminate local defects in the garment mesh, such as self-intersections … Reconstruction module 123 may then output the deformed garment mesh. Reconstruction module 123 may repeat the reconstruction and collision avoidance process for each received (length-adjusted) garment mesh. In some examples, deformed garment mesh(s) may be stored in data storage 190.” Note: Hua teaches that when a plurality of meshes are placed on a body a reconstruction module is employed to reduce clipping between the layered clothes, after which it is taught the multiple garments meshes are stored. Previously in Figs. 5A-F it was shown how a garment fit to a different virtual entity has new coordinates/vertices based on the geometry of the new body it was fit to. Here it is taught those deformed garments with the newly determined coordinates are saved teaching the claims language that the coordinates for the plurality of attire objects are stored.)
While Hua teaches saving the attire objects and their n-dimensional coordinates as described above it does not teach saving them into a transferrable data container. Saving a plurality of attire objects and the coordinates they are fit to based on the region the attire is applied to into a transferrable data container is taught in Roblox which teaches the transferrable data container further includes storing, within the transferrable data container, the n-dimensional coordinates for each of the plurality of attire objects. (Roblox HumanoidDescription
PNG
media_image8.png
227
158
media_image8.png
Greyscale
PNG
media_image8.png
227
158
media_image8.png
Greyscale
Roblox “The magic of the clothes in this system is that they can stretch to fit any platform character – from a Classic Blocky all the way to a T-Rex – and it fits nicely on top of multiple layers a character is already wearing … The ‘aha’ moment came when our team considered the “abstraction layer” between the two meshes — introducing a new cage layer acting as an outer boundary of the underlying body structure, then interacting with the inner cage of the shirt getting layered on top of the body … We found a way to wrap every vertex of one mesh around another, their dimensions governed by the behavior of the abstraction layer” Note: Roblox’s HumanoidDescription object has already been shown to be a transferrable data container that stores a plurality of attire objects and direct avatar mesh information. A larger list of what can be stored in HumanoidDescription is provided above, showing that a large amount of clothing items and avatar info can be stored. In the provided citation it is taught that every coordinate/vertex of a clothing item mesh will be wrapped around another mesh such as the avatar’s body. Thus, Roblox teaches not only storing a plurality of attire objects but also the coordinates they will be fit to.)
It would have been obvious to a person having ordinary skill in the art before the effective filing data of the claimed invention to combine Hua with Roblox where a system that allows for clothing items to be sized differently as they are applied to different regions of the virtual entity allows for the clothing items and their differently sized dimensions to be saved.
There are several reasons that would motivate one to do so, in an interactable environment a single clothing item could easily be shaped/deformed differently depending on where it is placed on the body. By saving the different coordinates detailing how the clothing item should be fit at different locations the system saves time and efficiency by not having to recompute how the item should be fit, instead only pulling up the saved version of the coordinates.
Regarding claim 4, 16
Hua teaches:
The system according to Claim 13,,
While Hua teaches storing its clothing items and virtual entities it does not detail the specific methods or data structures leveraged to do so. This is instead taught in Roblox which teaches wherein the transferrable data container comprises at least a two-dimensional data structure storing attributes associated with the plurality of attire objects wherein the at least two-dimensional data structure includes: at least a first dimension storing a unique identifier for or a representation of a given attire object of the plurality of attire objects;(Roblox HumanoidDescription
PNG
media_image9.png
308
890
media_image9.png
Greyscale
Note: Roblox teaches that among things stored in the HumanoidDescription transferrable data container AccessoryBlob is stored. AccessoryBlob is an array of “Layered Accessories” tables where each table stores all the relevant info on a single Layered Accessory. This is a classic example of a 2D data structure, as the table itself is a 1D data struct analogous to a list AccessoryBlob is a list of lists aka a grid, a 2D data structure. Thus Roblox teaches the claims language that a first dimension identifier, the index in the AccessoryBlob list, is a unique identifier for a piece of clothing, as by going to that index in the array you will obtain the information about the accessory.) and at least a second dimension storing one or more values of the attributes associated with the plurality of attire objects. (Roblox HumanoidDescription, cited above, teaches that after accessing a first dimension identified, choosing an element in the AccessoryBlob array, a Layered Accessories table is obtainied detailing multiple values of attributes associated with the current piece of attire such as puffiness, AccessoryType, Order referring to its order in the layer, etc…)
It would have been obvious to a person having ordinary skill in the art before the effective filing data of the claimed invention to combine Hua with Roblox where a system that allows for users to save a clothing items layered in a sequence also allows for them to be saved into a 2D data structure where clothing items can easily be accessed by an identifier that allows the item’s attributes, content, and info to be easily obtained.
There are several reasons that would motivate one to do so, Hua teaches that aside form just pieces of clothing themselves and their fit being saved info about the clothes in context can be saved like their layering order. Two dimensional data structures are a simple and fundamental method of ordering data in computer systems, one could easily gain the benefits of storing a series or list of attribute information for multiple clothing items by leveraging a 2D data structure.
Regarding claim 5, 17,
Hua teaches:
The system according to Claim 13, wherein the attributes associated with the plurality of attire objects include the object sequence metadata, a second n-dimensional geometric size of a given attire object of the plurality of attire objects, or n-dimensional coordinates of a placement of a given attire object of the plurality of attire objects onto the virtual entity. (Hua ¶62 “Data storage 190 may be any device or combination of devices suitable for storing polygonal meshes (e.g., target body mesh(s), template body mesh(s), input garment mesh(s), deformed garment mesh(s), a set of layered garment meshes), a predetermined layering order, data or instructions (e.g., software) for performing any one or more of the functions described herein” Note: Previously in claim 4 a “second n-dimensional geometric size of a given attire” refers to a “deformed garment mesh” that has been resized to fit a different body model than it was originally designed to fit. Therefore, the claim is stating that multiple versions of an attire can be saved along with other info about the piece of attire such as its order in the sequence. The deformed garment was originally an input garment mesh for a template body that was resized to fit a target body, in the germs of Hua. Thus the claim is taught in the citation provided which teaches that a second size of the garment can be saved along with the original, or the “input garment mesh(s)s” and “deformed garment mesh(s)”.)
Regarding claim 6,
Hua teaches:
The method according to claim 1, further comprising: analyzing, by the one or more computer processors, geometric intersections between a given attire object and an adjacent attire object of the plurality of attire objects placed on the virtual entity; and modifying, by the one or more computer processors, a geometric configuration of the given attire object and the adjacent attire object to resolve the geometric intersections based on the user-determined sequence. (Hua ¶60 “In general, layering engine 130 may receive two or more garment meshes, a target body mesh and a predetermined layering order, and process the garment meshes (via modules 131-133), such that inner garment meshes are iteratively deformed one garment mesh at a time, starting from the second outermost layer to the innermost layer. At each iteration, the garment mesh being deformed may be slightly shrunk to resolve intersections with the outer garment mesh(s). Layering engine 130 is described further below with respect to FIG. 16.” Note: Hua teaches that for layered garments in a predetermined layering order, which can be set by the user as shown in claim 1, are analyzed with their adjacent garment to check for intersections and if so remove them by changing the geometric configuration by deforming them.)
Regarding claim 8,
The method according to claim 2, wherein fitting each attire object further comprises: performing collision detection between each attire object of the plurality of attire objects and the virtual entity to adjust the n-dimensional geometric size of a given attire object of the plurality of attire objects based on surface contours of the virtual entity (Hua ¶52 “Reconstruction module 123 may be configured to receive the length-adjusted garment mesh(s) from length adjustment module 122, as well as the target body mesh and the original garment mesh(s) fitted to the template body mesh. Reconstruction module 123 may be configured to generate a reconstructed garment mesh(s) that resolves the final shape of the length-adjusted garment mesh to form the deformed garment mesh(s). To resolve the final shape, reconstruction module 123 may be configured to eliminate local defects in the garment mesh, … Reconstruction module 123 may also apply a collision detection and response process to avoid intersections between the final reconstructed garment mesh and the target body mesh. Reconstruction module 123 may then output the deformed garment mesh. Reconstruction module 123 may repeat the reconstruction and collision avoidance process for each received (length-adjusted) garment mesh. In some examples, deformed garment mesh(s) may be stored in data storage 190.” Note: Hua teaches that collision detection is performed to remove potential intersections between clothing items. Hua teaches that this collision detection is done for garments such as deformed garment meshes deformed to fit a target body, and that collision detection is first checked on the first layer and the body itself. This teaches the claims language that collision detection is done for clothing items fit to the surface contour of a virtual entity.)
Regarding claim 11,
The method according to claim 1, further comprising: automatically updating the object sequencing metadata based on the adjustment by the user. (Hua ¶87 “At Step 704, a template body mesh and a garment mesh fitted to the template body mesh may be received via user interface 110. The target body mesh, template body mesh and garment mesh may be provided to mapping module 121 of deformation engine 120.” ¶7 “A layering method includes: receiving, by an input interface, a target body mesh representing the target body; receiving, by the input interface, a plurality of garment meshes representative of the respective plural garments, each garment mesh separately fitted to the target body mesh; assigning a layering order to each of the plurality of garment meshes from a closest layer to a furthest layer with respect to the target body mesh; and performing, by a layering engine, a layering process for each assigned layer, according to a sequential order from a next furthest layer to the closest layer.” Note: Hua teaches that via the user interface multiple garments meshes can be provided along with a target body mesh to map them onto. As the garments are added and moved around the sequence is determined automatically by a layering engine which counts the first item as the closest to the body and then counts up as the clothing items move away from the body. Therefore, Hua teaches automatically updating the sequence after adjustment by the user.)
While Hua teaches a user interface as a core component of its system it does not elaborate on many of its potential uses. Leveraging a UI to move and adjust clothing items and similar functionality is instead taught in Roblox which teaches providing, by the one or more computer processors, a user interface allowing the user to adjust a position or an orientation of a given attire object of the plurality of attire objects after applying the given attire object to the virtual entity, (Roblox Accessory Fitting Tool “The Accessory Fitting Tool (AFT) is a built-in Studio tool that allows you to test your custom models on multiple combinations of character bodies, animations, and accessories … you can make minor fit and positional changes to ensure that you get the best result possible … When selecting the type of accessory, the following options are available:
Clothing: Layerable accessories that use an inner and outer cage to stretch and wrap around a body and other clothing items …
You can position, rotate, and scale objects within this bounding box to ensure your accessory fits on different character models.”)
It would have been obvious to a person having ordinary skill in the art before the effective filing data of the claimed invention to combine Hua with Roblox where a user interface that allows for clothing items to be input and automatically layered depending on adjustments also allows users to determine the position and orientation of clothing items.
There are several reasons that would motivate one to do so, as many clothing items can be worn in a variety of positions and orientations allowing the user more freedom in how clothes are positioned over their virtual entity would increase the functionality of the program.
Claims 9-10 are rejected under 35 U.S.C. 103 as being unpatentable over Hua (US 20170161948 A1) in view of the documentation and official content on the roblox.com official website including things such as help articles, the engine reference, etc… referred to hereinafter as Roblox, further in view of Goossens (US 10922901 B2), and further in view of the forum and documentation site for the clothing simulation software CLO3D, hereinafter CLO3D.
Regarding claim 9,
The method according to claim 3,
While Hua teaches that multiple versions of a garment before and after it is updated to fit a new body mesh are saved it does not teach saving the state of the garment as one is editing so that changes made can be undone. This is instead taught by CLO3D which teaches storing a history of modifications to the n-dimensional coordinates for each attire object of the plurality of attire objects stored within the transferrable container thereby enabling a user to revert to a previous configuration of a given attire object of the plurality of attire objects. (CLO3D Forum
PNG
media_image10.png
1010
922
media_image10.png
Greyscale
“As CLO3D saves the default backup usually to every 3 minute intervals (unless you switched that off) you can always reload a garment or even open another version of the same project at the previous save point view it and then decide what to do > undo or revert to previous state” Note: In the provided image a user shares their view of CLO3D’s editor showing a top image with a plurality of clothes properly spaced and fit to a body model and a bottom image with an accidental change made flattening the clothes. As seen in the text citation showing user’s suggestions to fix the accidental update it is taught that the state of the garment is saved periodically saved when editing allowing a history of the project to be viewed and a previous configuration of the garment to be reverted to.)
It would have been obvious to a person having ordinary skill in the art before the effective filing data of the claimed invention to combine Hua with CLO3D where a system that allows for a user to input garments to be layered and placed on body meshes stores previous edits and changes the user makes to the garment and allows for a previous state of the garment to be restored if a user wishes to undo a change.
There are several reasons that would motivate one to do so, a “ctrl-z” or undo action is a common functionality included in many software programs including 3D modelling software as described in Hua and the present invention, including such a functionality would make editing easier and less stressful for users as mistakes made during the editing process could easily be reverted.
Regarding claim 10,
The method according to claim 4, wherein the transferrable data container further includes: Metadata specifying material properties of each attire object of the plurality of attire objects, wherein the material properties include one or more of a texture of material,(Hua ¶48 “A garment mesh may include associated garment information such as, without being limited to, one or more of a garment identifier, texture information, manufacturer, designer, store information, material information, rendering options, sizing information, layering order and date” Note: Hua teaches that garments have associated texture and material information.)
While Hua teaches that rendering options and material information are associated with garments it does not directly state that color or reflectivity are attributes that are saved with a garment. This is described in CLO3D which teaches wherein the material properties include one or more of a texture of material, (CLO3D Material Type, cited below, teaches texture) a color of material,(CLO3D Fabric Color “When changing the Color, select the desired item among Avatars, Fabrics, Buttons, and Topstitches. The selected item’s properties will appear in the Property Editor. -Navigate to the Property Editor and locate the Color chip next to the Color option, under the Material section. -Click on the Color chip to open the Color window to assign the desired Color to the selected item. -Click the desired Color. The selected Color will be applied to the item. -Click OK to complete.”) and a reflectivity of material thereby ensuring consistency when rendered in the interactive virtual environment. (CLO3D Material Type
PNG
media_image11.png
878
1054
media_image11.png
Greyscale
Note: CLO3D teaches that reflectivity can be customized by adjusting reflection intensity, and that reflection will be adjusted to the texture material such as silk, velvet, leather, etc… ClO3D also teaches that the texture of the material is stored whether it’s a default general fabric texture, a shiny texture, a silk/satin, etc… with the ability to further customize texture with a roughness option.)
It would have been obvious to a person having ordinary skill in the art before the effective filing data of the claimed invention to combine Hua with CLO3D where the storing of texture and material information about a garment also includes storing reflectivity and color of a garment material.
There are several reasons that would motivate one to do so, a common use case of applying garment meshes to a body is to see how a similar garment would appear in real life, by simulating real physical properties of a garment such as its reflectivity and texture the garment could be viewed in the software more accurately to how it would appear in real life.
Claims 7, 12, are rejected under 35 U.S.C. 103 as being unpatentable over Hua (US 20170161948 A1) in view of the documentation and official content on the roblox.com official website including things such as help articles, the engine reference, etc… referred to hereinafter as Roblox, further in view of Goossens (US 10922901 B2), and further in view Leong (US 10242498 B1).
Regarding claim 7,
The method according to claim 1, wherein enabling the transmission of the transferrable data container further includes:
While Hua teaches the storing of its garment meshes and other content it does not teach the about the file types it would use to do so. Saving garments and other related content in usable file formats is taught in Leong as generating a platform-agnostic file format for the transferrable data container enabling the transferrable data container to be read and utilized by a plurality of different interactive virtual environments.(Col. 4 Line 22 “In general, the meshes may be manifold polygonal triangle meshes represented in files of any suitable format, such as a standard data format (for example, Wavefront obj from Wavefront Technologies, a division of Autodesk)” Note: Wavefront .obj files are a “platform-agnostic file format” as the file type is a simple data-format that only represents 3D geometry without having other data related to specific pieces of software. Wavefront .obj files accomplish this through their simplicity as the entire 3D geometry is stored using simple text.)
It would have been obvious to a person having ordinary skill in the art before the effective filing data of the claimed invention to combine Hua with Leong where storing garments and other related info into a data contained saves the container to a platform-agnostic file format.
There are several reasons that would motivate on to do so, end users may use any number of publicly availably 3D modeling tools, virtual environments, etc… using a platform-agnostic file format ensures that users can use the content they make in as many places as they desire.
Regarding claim 12,
Hua teaches:
The method according to claim 5, further comprising: storing procedural data within the transferrable data container that
While Hua teaches that a number of sequential or procedural data can be saved such as a sequence of clothing items and the garment meshes for the clothing items it does not teach that garments can be automatically adjusted using a material property in response to a change in pose or movement from the body. This is described in Leong which teaches define rules for automatically adjusting a position or a fit of a given attire object of the plurality of attire objects based on changes in a pose or a movement of the virtual entity in the interactive virtual environment. (Leong Col. 1 Line 31 “For example, in one embodiment, a method for simulating the fitting of a deformable object over one or more-time intervals is disclosed. At each time interval, the deformable object's motion is simulated based on at least one material property of the deformable object and at least one external parameter, wherein the deformable object is represented as a polygonal mesh.” Col. 10 Line 48 “As discussed above, processor 140 performs a linear interpolation between the source and destination body meshes in order to simulate the motion of the intermediate body mesh” Col. 4 Line 25 “A garment mesh file may include associated information regarding the material properties of the garment, such as texture and material information, stretching, bending, structure, and thickness among other information. ” Note: Leong teaches that the fit of an object is determined automatically over time by simulating it over a period of time intervals. When simulating how a clothing object should be deformed and fit to a body the material properties of the clothing is used. We know that the changes over time that the fitting simulation updates to can be a movement or change in pose as it is taught that the body mesh itself has simulated motion in Col. 10 Line 48. The material properties that can determine how a garment will move and be fit after movement are described as well with some being how the garment stretches, its thickness, structure, etc…)
It would have been obvious to a person having ordinary skill in the art before the effective filing data of the claimed invention to combine Hua with Leong where a system that allows for garments to be fit and customized to different bodies allows for the fit of the garments to update automatically in response to changes of the body according to predefined rules about the garment.
There are several reasons that would motivate one to do so, one may wish for the content created with garments to be used in a separate virtual environment where virtual entities move around and interact with the environment. When the garments move with the entity the quality and accuracy of the garment models can be increased by including rules that automatically determine how the garment should move.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ALAN GREGORY HAKALA whose telephone number is (571)272-7863. The examiner can normally be reached 8:00am-5:00pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, King Poon can be reached at (571) 270-0728. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ALAN GREGORY HAKALA/ Examiner, Art Unit 2617
/KING Y POON/ Supervisory Patent Examiner, Art Unit 2617