DETAILED ACTION
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 January 13, 2026 has been entered. Claims 1-9 and 11-20 remain pending in the instant application. Applicant’s amendments to the Claims have overcome each and every 112(a) and 112(b) rejection previously set forth in the Final Office Action mailed February October 16, 2025. Applicant’s Declaration under 37 CFR 1.130(a), filed January 13, 2026, regarding BrickLink (BrickLink Studio 2.0. BrickLink Ltd., 2019. Computer game.) is accepted. BrickLink was published February 26, 2019 while the instant Application has an effective filing date of April 12, 2019. Thus, BrickLink falls within the grace period set forth under 35 U.S.C 102(b)(1)(A), and BrickLink is excepted as prior art.
Response to Arguments
Applicant’s arguments, filed January 13, 2026, with respect to claim(s) 1-9 and 11-20 have been considered but are moot because the new ground of rejection, necessitated by Applicant’s declaration, does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Claim Rejections - 35 USC § 103
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.
The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention.
Claim(s) 1-8 is/are rejected under 35 U.S.C. 103 as being unpatentable over Clark et al. (U.S. Pub. No. 2004/0236539 A1, previously cited in the IDS dated October 21, 2021), hereinafter Clark, in view of Luo et al. (Luo, Sheng-Jie et al. "Legolization: Optimizing LEGO designs." ACM Transactions on Graphics (TOG) 34, no. 6 (2015): 1-12.), hereinafter Luo.
Regarding Claim 1, Clark teaches A computer-implemented method for simulating physical interactions and connections stability of a plurality of assembling elements represented as three-dimensional interactive graphical models disposed in a real time, interactive virtual building space, each of the plurality of assembling elements having at least one coupling part configured to be complementarily coupled to a coupling part of a different assembling element of the plurality of assembling elements (“A host system 4 is in communication with the user systems 2 through network 6. The host system 4 may be implemented using existing servers and executes a computer program for carrying out the processes described herein […] FIG. 2 is a flowchart of a process for generating a virtual brick model in one embodiment. The process begins at step 50 where it is determined whether the user system 2 includes a virtual brick model application.”) (e.g., paragraphs [0010] and [0015]).
the method comprising the steps of: a. electronically generating the real-time, interactive virtual space that enables a user to build structures by manipulating the digital models of assembling elements (“At step 54, the user then generates a virtual brick model through a user interface generated by the virtual brick model application at user system 2. FIG. 3 is an exemplary user interface 70 that allows a user to select a virtual representation of a brick from a list of bricks, represented graphically in virtual brick area 72. Using an input device at user system 2 ( e.g., mouse, keyboard, trackball, etc.) the user can select bricks from virtual brick area 72 and assemble virtual brick models in virtual building area 73.”) (e.g., paragraph [0017]).
the generation including: receiving user input data through an input module, the user input data including commands for manipulating the digital models of assembling elements within the virtual space (“Using an input device at user system 2 ( e.g., mouse, keyboard, trackball, etc.) the user can select bricks from virtual brick area 72 and assemble virtual brick models in virtual building area 73.”) (e.g., paragraph [0017]).
and rendering a real-time, interactive image signal for presentation on a display, the image signal visually depicting the digital models of assembling elements and interconnections of the digital models within the virtual space, reflecting the received user input data (“FIG. 3 is an exemplary user interface 70 that allows a user to select a virtual representation of a brick from a list of bricks, represented graphically in virtual brick area 72.”) (e.g., paragraph [0017]).
However, Clark does not appear to specifically teach accessing a data structure that stores physical property data for each digital model, the data including a preset weight value derived from an actual volume and density of the corresponding real-world building block; c. assigning the preset weight information to each digital model as it is loaded into the virtual space for manipulation; d. in response to two or more digital models being connected via their coupling parts, calculating a coupling strength for each connection by retrieving a pre-quantified force value from a non-transitory computer readable medium, the force value corresponding to a specific combination of coupling type and coupling number for the connected parts; and e. in real-time, determining a structural stability rating for the interconnected elements by comparing the total coupling strengths of their interconnected parts against the combined weight of the assemblies, and assigning a stability status to the interconnected elements based on a predetermined stability threshold.
On the other hand, Luo, which relates to determining LEGO sculpture stability, does teach accessing a data structure that stores physical property data for each digital model, the data including a preset weight value derived from an actual volume and density of the corresponding real-world building block (Table 1 discloses “the weights of different types of LEGO bricks. For each type, we measured five times, and averaged the values.” The averaged brick weights are further assigned to different dimensions of bricks, interpreted as assigning preset weight information to assembling elements. Table 1 is a data structure.) (e.g., page 7, table 1).
c. assigning the preset weight information to each digital model as it is loaded into the virtual space for manipulation (Figure 9 discloses the digital models arranged in a virtual space and colored according to their capacity, which is calculated based on the preset weight information from table 1.) (e.g., page 7, table 1; page 8, figure 9).
d. in response to two or more digital models being connected via their coupling parts, calculating a coupling strength for each connection by retrieving a pre-quantified force value from a non-transitory computer readable medium (“By testing various different ways to separate snapped bricks (Appendix A), we found a minimum value T of the non-zero maximum friction load,” wherein T is interpreted as the predetermined value. The value of T may be stored in the host system of Clark. “First, there is a set of friction forces Ff working in the vertical direction between the knobs and cavities at the contact points (Figure 4(d)). F1~F4 and F13~F20 shown in Figure 5 illustrate these forces […] If [for all Fi that is an element of Ff] in addition satisfies Fi<T, then the sculpture can remain static.”) (e.g., page 5, column 2, paragraph 3; page 6, column 1, paragraph 1).
the force value corresponding to a specific combination of coupling type and coupling number for the connected parts (“The contact points can be categorized into three types according to their contact geometry (Figure 16),” wherein the contact points are interpreted as coupling types. Figure 16 discloses the experimental setup to calculate T, in which “we varied the size of the green brick in Figure 15 and tested [various dimensions of bricks]. Then, for each size, we changed the number of knobs to snap the brick,” wherein changing the number of knobs to snap the brick is interpreted as calculating T i.e., the coupling power, in consideration of a coupling number.) (e.g., page 12, figure 16 and appendix A).
and e. in real-time, determining a structural stability rating for the interconnected elements by comparing the total coupling strengths of their interconnected parts against the combined weight of the assemblies (“For a friction force Fi [that is an element of] Ff,” wherein the friction forces Ff are the forces required to maintain a coupling between an assembling element and another assembling element, “we consider its capacity Ci- defined as Ci = T – Fi.” In other words, Ci is the difference between the coupling power T and the force Fi required to maintain the coupling between the assembling elements. “If Ci > 0, the corresponding point can still accept additional forces,” that is, the force Fi required to maintain the coupling is less than the coupling power T. “We define C-m = mini Ci to indicate the smallest (weakest) capacity […] As long as the forces can be redistributed to make Cm > 0, the LEGO sculpture remains stable […] Therefore, we can use Cm as the stability metric sLR for the layout L.” The stability metric is interpreted as the structural stability rating, and the mathematical formulae disclosed constitute determining the connection stability Cm between assembling elements. The force Fi is calculated based on the weights of the LEGO bricks.) (e.g., page 6, column 1, paragraphs 7 and 8; page 6, column 2, paragraph following equation (7)).
and assigning a stability status to the interconnected elements based on a predetermined stability threshold (The assembling element of the critical region in the example for [Petrovic 2001] in figure 9 is colored red, interpreted as assigning a stability status, indicating that the connection stability of said assembling element is less that a predetermined stability threshold of zero.) (e.g., page 9, figure 9).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the Applicant's claimed invention to combine Clark with Luo. The claimed invention is considered to be merely combining prior art elements according to known methods to yield predictable results, see MPEP § 2143(I)(A). Clark teaches computer software for rendering an interactive model of a LEGO sculpture. However, Clark does not appear to specifically teach determining a structural stability rating based on coupling strength. On the other hand, Luo, which relates similarly to modelling LEGO structures, does teach determining a structural stability rating based on coupling strength. As both Clark and Luo relate to modeling LEGO structures, one of ordinary skill in the art could have combined the virtual environment of Clark with the stability analysis in Luo; in combination, each element merely performs the same function as it does separately. Furthermore, Clark discloses routines for generating building instructions and ordering physical bricks (e.g., Clark; paragraph [0002]). Thus, one of ordinary skill in the art would have been motivated to combine the stability analysis of Luo with Clark, as the methods of Clark are used to generate a physically realizable LEGO model, and one of ordinary skill in the art would have recognized the results of the combination as predictably providing a stability rating for a virtual LEGO structure. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the Applicant's claimed invention to combine Clark with Luo in order to provide stability analysis for a virtual LEGO structure.
Regarding Claim 2, Clark in view of Luo teaches the method of claim 1. Luo further teaches the method further comprising grouping, on the basis of coupling strength, the plurality of assembling elements (“For each step, we devise a structural analysis technique to obtain 1) a structure metric sL and 2) a structure-critical portion wL to reconfigure,” wherein obtaining a structure-critical portion wL is interpreted as grouping. “Furthermore, we can compute [Fiw from equation (8)] and identify the two bricks that share the contact point corresponding to Fiw. These two bricks are the weakest portion wLR of the LEGO sculpture.” Equation (8) defines Fiw as calculated from T, coupling power. As identifying the structure-critical region wLR is performed using Fiw, identifying the structure-critical region wLR, interpreted as performing grouping, is considered to be performed on the basis of coupling power.) (e.g., page 3, column 2, paragraph 4; page 6, column 2, equation (8) with preceding and proceeding paragraphs).
to a first assembling element group including at least one of the plurality of assembling elements (“Furthermore, we can compute [Fiw from equation (8)] and identify the two bricks that share the contact point corresponding to Fiw. These two bricks are the weakest portion wLR of the LEGO sculpture.” The two bricks are interpreted to be a first and second assembling element group, wherein an assembling element group may comprise only a single brick, with a first brick of the two bricks being the first assembling element group, and the second brick of the two bricks being the second assembling element group.) (e.g., page 6, column 2, paragraphs preceding and proceeding equation (8)).
Regarding Claim 3, Clark in view of Luo teaches the method of claim 2. Luo further teaches wherein the grouping comprises comparing the coupling strength and a predetermined value (“Furthermore, we can compute [Fiw from equation (8)] and identify the two bricks that share the contact point corresponding to Fiw. These two bricks are the weakest portion wLR of the LEGO sculpture. Equation (8) defines Fiw as the Fi in the set of forces Ff for which the difference between the Fi and the coupling power T is the greatest. Each Fi in the set of forces Ff were previously calculated in equations (2) – (5), and Fi is thus interpreted as a predetermined value. Therefore, identifying a region wL, interpreted as grouping, is considered to be performed by comparing predetermined value T with a coupling forces Fi.) (e.g., page 6, column 1, equations (2) – (5); page 6, column 2, equation (8) with preceding and proceeding paragraphs).
Regarding Claim 4, Clark in view of Luo teaches the method of claim 2. Luo further teaches the method further comprising determining the structural stability rating between the first assembling element group and a second assembling element group (“For each step, we devise a structural analysis technique to obtain 1) a structure metric sL and 2) a structure-critical portion wL to reconfigure […] Furthermore, we can compute [Fiw from equation (8)] and identify the two bricks that share the contact point corresponding to Fiw. These two bricks are the weakest portion wLR of the LEGO sculpture.” The first brick of the two bricks is interpreted as the first assembling element group. The second brick of the two bricks is interpreted as the second assembling element group. The value of Fi used to find Fiw in equation (8) is used to calculate Cm, wherein Cm is interpreted as the connection stability between the first and second assembling element groups.) (e.g., page 3, column 2, paragraph 4; page 6, column 1, paragraph 7; page 6, column 2, equation 8 and preceding and proceeding paragraphs).
on the basis of the coupling strength (Cm, the connection stability, is determined from the capacity Ci for the two bricks connecting the first and second assembling element groups, and Ci is defined as equal to T – Fiw, wherein T is interpreted as the coupling power. Therefore, the connection stability Cm is determined on the basis of coupling power.) (e.g., page 6, column 1, paragraph 7).
and weight value assigned to the second assembling element group (Cm, the connection stability, is determined from the minimum capacity Ci for each brick in the second assembling element group, and Ci is defined as equal to T – Fi, wherein Fi must satisfy equation (2); that is, Fi for each brick in the second assembling element group must equal the weight of each brick in the second assembling group, wherein the weight of each brick is assigned based on the brick masses in table 1. Therefore, the connection stability Cm is determined on the basis of weight information assigned to the second assembling element group.) (e.g., page 6, column 1, paragraph 7 and equation (2); page 7, column 1, table 1).
wherein the second assembling element group is coupled to the at least one assembling element of the plurality of assembling elements (The first and second assembling element groups are coupled at least through wLR, “the two bricks that share the contact point corresponding to Fiw.” The contact points are disclosed in figure 4, with the contact points being those between the knobs and cavities, that is, the coupling parts, of the assembling elements.) (e.g., page 5, column 2, figure 4 and paragraph 3; page 6, column 2, paragraph proceeding equation (8)).
Regarding Claim 5, Clark in view of Luo teaches the method of claim 2. Luo further teaches the method further comprising displaying a result indicating the structural stability rating (Figure 9 discloses a “Side-by-side comparison to previous work […] The bottom row shows a visualization of the Cm- distribution,” wherein the visualization of the Cm distribution is interpreted as displaying a result indicating the connection stability.) (e.g., page 9, figure 9).
Regarding Claim 6, Clark in view of Luo teaches the method of claim 5. Luo further teaches wherein displaying comprises displaying a color of the assembling element group on the basis of the structural stability rating (The visualization of the Cm distribution in figure 9 comprises coloring each assembling element based on the assembling element’s connection stability Cm.) (e.g., page 9, figure 9).
Regarding Claim 7, Clark in view of Luo teaches the method of claim 5. Luo further teaches wherein displaying comprises: displaying the at least one assembling elements, which connects the first assembling element group and the second assembling element group (Figure 9, in the example for [Petrovic 2001], shows a critical region in red that connects the lower tail of the LEGO model, interpreted as the first assembling element group, with the body of the LEGO model, interpreted as the second assembling element group. The critical region shown in red is interpreted to be at least one assembling element displayed.) (e.g., page 9, figure 9).
to be in a warning state if the stability status is smaller than a first predetermined value (The assembling element of the critical region in the example for [Petrovic 2001] in figure 9 is colored red, interpreted as the assembling element being in a warning state, indicating that the connection stability of said assembling element is less that a first predetermined value of zero.) (e.g., page 9, figure 9).
and displaying the at least one assembling element of the plurality of assembling elements, which connects the first assembling element group and the second assembling element group (Figure 9, in the example for the disclosed method, shows a critical region in white that connects the upper tail of the LEGO model, interpreted as the first assembling element group, with the body of the LEGO model, interpreted as the second assembling element group. The critical region shown in white is interpreted to be at least one assembling element displayed.) (e.g., page 9, figure 9)
to be in a caution state if the stability status is equal to or larger than the first predetermined value and is smaller than a second predetermined value which is larger than the first predetermined value (The assembling element of the critical region in the example for the disclosed method in figure 9 is colored white, interpreted as the assembling element being in a caution state, indicating that the connection stability of said assembling element is greater than or equal to the first predetermined value of zero. The white coloring of the assembling element also indicates that the connection stability is smaller than a second predetermined value of 44.99.) (e.g., page 9, figure 9).
Regarding Claim 8, Luo teaches the method of claim 1, wherein the coupling part comprises at least one of a stud, a cavity, an axle, an axle hole, a pin, a pin hole, a ball, a ball receptacle, and a hinge (The examiner notes the recitation of at least one of. “A LEGO brick has knobs on its top side (Figure 4 (a)),” wherein the knobs are the same as studs, “and cavities on its bottom side (Figure 4(b)).”) (e.g., figure 4; page 5, column 2, paragraph 3).
Claim(s) 9 and 11-13 is/are rejected under 35 U.S.C. 103 as being unpatentable over Clark in view of Luo, further in view of Hanisch (Hanisch, E. “RCS Build Aid Plugin” GitHub Repository, (2018): commit acf5fee. Available at https://github.com/m4v/RCSBuildAid/tree/acf5feef71ad883fe033dd5a4654309ea93c925b), hereinafter Hanisch.
Regarding Claim 9, Clark teaches A computer-implemented method for simulating interactions and balance stability of a plurality of assembling elements represented as three-dimensional interactive graphical models disposed in a real-time, interactive virtual space, each of the plurality of assembling elements having at least one coupling part configured to be complementarily coupled to a coupling part of a different assembling element of the plurality of assembling elements (“A host system 4 is in communication with the user systems 2 through network 6. The host system 4 may be implemented using existing servers and executes a computer program for carrying out the processes described herein […] FIG. 2 is a flowchart of a process for generating a virtual brick model in one embodiment. The process begins at step 50 where it is determined whether the user system 2 includes a virtual brick model application.”) (e.g., paragraphs [0010] and [0015]).
the method comprising the steps of: a. electronically generating a real-time, interactive virtual space that enables a user to build structures by manipulating the digital models of assembling elements (“At step 54, the user then generates a virtual brick model through a user interface generated by the virtual brick model application at user system 2. FIG. 3 is an exemplary user interface 70 that allows a user to select a virtual representation of a brick from a list of bricks, represented graphically in virtual brick area 72. Using an input device at user system 2 ( e.g., mouse, keyboard, trackball, etc.) the user can select bricks from virtual brick area 72 and assemble virtual brick models in virtual building area 73.”) (e.g., paragraph [0017]).
the generation including: receiving user input data through an input module, the user input data including commands for manipulating the digital models of assembling elements within the virtual space (“Using an input device at user system 2 ( e.g., mouse, keyboard, trackball, etc.) the user can select bricks from virtual brick area 72 and assemble virtual brick models in virtual building area 73.”) (e.g., paragraph [0017]).
and rendering a real-time, interactive image signal for presentation on a display, the image signal visually depicting the digital models of assembling elements and interconnections of the digital models within the virtual space, reflecting the received user input data (“FIG. 3 is an exemplary user interface 70 that allows a user to select a virtual representation of a brick from a list of bricks, represented graphically in virtual brick area 72.”) (e.g., paragraph [0017]).
However, Clark does not appear to specifically teach accessing a data structure that stores physical property data for each digital model, the data including a preset weight value derived from an actual volume and density of the corresponding real-world building block; c. assigning the preset weight information to each digital model as it is loaded into the virtual space for manipulation; d. in response to two or more digital models being connected via their coupling parts, calculating a center of mass for the interconnected elements by aggregating the assigned weight values of the individual digital models; and e. in real-time, determining a balance stability rating for the interconnected elements by comparing the calculated center of mass to a predetermined support base and assigning a balance status to the interconnected elements based on whether the center of mass is located within boundaries of the predetermined support base.
On the other hand, Luo, which relates to LEGO sculpture stability analysis, does teach accessing a data structure that stores physical property data for each digital model, the data including a preset weight value derived from an actual volume and density of the corresponding real-world building block (Table 1 discloses “the weights of different types of LEGO bricks. For each type, we measured five times, and averaged the values.” The averaged brick weights are further assigned to different dimensions of bricks, interpreted as assigning preset weight information to assembling elements. Table 1 is a data structure.) (e.g., page 7, table 1).
c. assigning the preset weight information to each digital model as it is loaded into the virtual space for manipulation (Figure 9 discloses the digital models arranged in a virtual space and colored according to their capacity, which is calculated based on the preset weight information from table 1.) (e.g., page 7, table 1; page 8, figure 9).
However, neither Clark nor Luo appear to specifically teach d. in response to two or more digital models being connected via their coupling parts, calculating a center of mass for the interconnected elements by aggregating the assigned weight values of the individual digital models; and e. in real-time, determining a balance stability rating for the interconnected elements by comparing the calculated center of mass to a predetermined support base and assigning a balance status to the interconnected elements based on whether the center of mass is located within boundaries of the predetermined support base.
On the other hand, Hanisch, which relates similarly to computer-aided design of virtualized toys, does teach d. in response to two or more digital models being connected via their coupling parts, calculating a center of mass for the interconnected elements by aggregating the assigned weight values of the individual digital models (The disclosed program uses the mass and position of each assembling toy part to calculate the center of mass of the assembly toy, wherein an assembling toy part is analogous to an assembling element. The masses of the components are aggregated in line 52 of CoMMarker.cs in response to simulated rocket components being connected.) (e.g., CoMMarker.cs, page 9, lines 42-52).
and e. in real-time, determining a balance stability rating for the interconnected elements by comparing the calculated center of mass to a predetermined support base (“Colored in red, [torque force] represents the resulting torque the thrusters are exerting into your vessel,” wherein a vessel is interpreted as the assembling toy. “The effect of this torque is represented by a circular arrow […] when you see a red arrow, it means that in the current configuration and with the given input your vessel will try to rotate.” Seeing a red arrow indicating a net torque on the assembling toy is interpreted as determining the balance stability of the assembly; any non-zero torque, shown by a circular arrow, indicates that the assembling toy will not maintain its static configuration. One of ordinary skill in the art would recognize the method of Hanisch as working for a normal force from a surface substituted for a thruster force.) (e.g., README, page 3, Usage section, Torque force subsection).
and assigning a balance status to the interconnected elements based on whether the center of mass is located within boundaries of the predetermined support base (“Colored in red, [torque force] represents the resulting torque the thrusters are exerting into your vessel,” wherein a vessel is interpreted as the assembling toy. “The effect of this torque is represented by a circular arrow […] when you see a red arrow, it means that in the current configuration and with the given input your vessel will try to rotate.” Seeing a red arrow indicating a net torque on the assembling toy is interpreted as determining the balance stability of the assembly; any non-zero torque, shown by a circular arrow, indicates that the assembling toy will not maintain its static configuration. The net torque is interpreted as a balance status.) (e.g., README, page 3, Usage section, Torque force subsection).
The following image of the assembly from Hanisch is provided from a forum post promoting the relied upon software plugin by Hanisch, posted by Linuxgurugamer (Linuxgurugamer “RCS Build Aid Continued – New Dependencies” Kerbal Space Program Forums, (2018). Available at https://forum.kerbalspaceprogram.com/topic/166546-19x-rcs-build-aid-continued-new-dependencies/). The image is a screenshot from Kerbal Space Program (Kerbal Space Program. Directed by Felipe Falanghe and Paul Boyle, Squad/ Private Division, 2015. Computer game.), utilizing the plugin by Hanisch. Annotations are provided to clarify the Examiner’s interpretation of the prior art with respect to the claimed invention.
PNG
media_image1.png
600
805
media_image1.png
Greyscale
Rocket assembly created in Kerbal Space Program using Hanisch’s Plugin.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the Applicant's claimed invention to combine Clark with Luo for the same reasons as in Claim 1, above.
It would have been obvious to one of ordinary skill in the art before the effective filing date to combine the modified reference of Clark in view of Luo with Hanisch. The claimed invention is considered to be using a known technique to improve a similar method in the same way, see MPEP § 2143(I)(C). Clark teaches computer software for rendering an interactive model of a LEGO sculpture, and Luo teaches a method for determining connection stability which considers rotational forces. However, the Clark-Luo combination does not appear to specifically teach determining a balance stability based on a position of a center of mass. On the other hand, Hanisch discloses a stability analysis method that has been improved by using a mass distribution of an assembly in the stability analysis. As Luo discloses satisfying a rotational equilibrium constraint, i.e., a brick must have zero net torque (e.g., Luo; page 6, column 1, equation (3), one of ordinary skill in the art could have improved the stability analysis of the Clark-Luo combination by using the method of Hanisch to determine a center of mass and determine a net torque. Furthermore, Luo identifies the mass and mass center of a single brick as important to the stability analysis (e.g., Luo; page 6, column 1, equations (2) and (3)). Thus, a person of ordinary skill in the art would have recognized the use of a mass distribution of an assembly in Hanisch as applicable to stability analysis, and improving the stability analysis of the Clark-Luo combination would have yielded predictable results. As Clark discloses routines for generating building instructions and ordering physical bricks for a virtual LEGO structure (e.g., Clark; paragraph [0002]), one of ordinary skill in the art would have been motivated to determine a balance stability to determine if the virtual LEGO structure is physically realizable. Therefore, it would have been obvious to combine the modified reference of Clark in view of Luo with Hanisch in order to provide a method for determining the balance stability of a LEGO sculpture.
Regarding Claim 11, Clark in view of Luo and Hanisch teaches the method of claim 9. Hanisch further teaches the method further comprising displaying a result indicating the balance stability (The red arrow indicating net torque, interpreted as indicating the balance stability, is displayed by the disclosed program in MarkerForces.cs, wherein the size of the arrow is proportional to the magnitude of the torque.) (e.g., README, page 3, Usage section, Torque force subsection; MarkerForces.cs, pages 14-15, lines 222-234).
Regarding Claim 12, Clark in view of Luo and Hanisch teaches the method of claim 11. Luo further teaches the method wherein displaying comprises displaying a color of a flat surface including a bottom surface of the assembling toy on the basis of balance stability (Figure 9, in all examples, shows the bottom layer of bricks colored, wherein the bottom layer of bricks is interpreted to be a flat surface including the bottom surface of the assembling toy. This color may be based on the balance stability of Hanisch instead of the connection stability of Luo.) (e.g., page 9, figure 9). LEGO structure during a stability analysis, wherein the flat surface may be colored in the same way as the warning and cautions.) (e.g., page 2, figure 2).
Regarding Claim 13, Clark in view of Luo and Hanisch teaches the method of claim 11. Luo further teaches the method wherein displaying comprises displaying a bottom surface of the assembling toy to be in a warning state (Figure 9, in the examples for [Gower et al.] and [van Ziji], shows the bottom layer of bricks colored red. The bottom layer of bricks is interpreted as comprising the bottom surface of the assembling toy, and the bricks being colored red is interpreted as the bottom surface being in a warning state.) (e.g., page 9, figure 9).
Hanisch further teaches the method displaying if the balance stability is smaller than a predetermined value (“When you see a red arrow, it means that in the current configuration and with the given input your vessel will try to rotate, however, depending on your vessel’s mass and on its distribution this rotation might not be noticeable.” The red arrow, representing net torque and interpreted as the balance stability, would have no noticeable effect if the torque is small in comparison to an assembling toy with a large mass. Comparing a small torque with a large mass is interpreted as determining if the balance stability is smaller than a predetermined value.) (e.g., README, page 3, Usage section, Torque force subsection).
Claim(s) 14-19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Clark in view of Luo and Hanisch, further in view of Zhou et al. (Zhou, Jie, Xuejin Chen, and Ying-Qing Xu. "Automatic generation of vivid LEGO architectural sculptures." In Computer Graphics Forum, vol. 38, no. 6, pp. 31-42. 2019.), hereinafter Zhou.
Regarding Claim 14, Clark teaches A computer-implemented method for simulating the combined stability of an assembled virtual structure the method comprising the steps of: a. electronically generating a real-time, interactive virtual building environment that enables a user to build structures by manipulating digital models of assembling elements, each digital model corresponding to a real-world building block (“A host system 4 is in communication with the user systems 2 through network 6. The host system 4 may be implemented using existing servers and executes a computer program for carrying out the processes described herein […] FIG. 2 is a flowchart of a process for generating a virtual brick model in one embodiment. The process begins at step 50 where it is determined whether the user system 2 includes a virtual brick model application.”) (e.g., paragraphs [0010] and [0015]).
g. generating a real-time, interactive image signal for presentation on a display (“At step 54, the user then generates a virtual brick model through a user interface generated by the virtual brick model application at user system 2. FIG. 3 is an exemplary user interface 70 that allows a user to select a virtual representation of a brick from a list of bricks, represented graphically in virtual brick area 72. Using an input device at user system 2 ( e.g., mouse, keyboard, trackball, etc.) the user can select bricks from virtual brick area 72 and assemble virtual brick models in virtual building area 73.”) (e.g., paragraph [0017]).
However, Clark does not appear to specifically teach b. accessing a data structure that stores physical property data for each digital model, the data including a preset weight value derived from an actual volume and density of the corresponding real-world building block; c. in response to two or more digital models being connected, calculating a connection strength for each connection by retrieving a pre-quantified force value from a non-transitory computer readable medium, the force value corresponding to a specific combination of coupling type and coupling number; d. in real-time, calculating a mass distribution for an assemblage of digital models by aggregating their assigned weight values and calculating a center of mass for the assemblage; e. determining a first stability rating for the assemblage based on the connection strength of the connected digital models; f. determining a second stability rating for the assemblage based on the position of the center of mass relative to a predetermined support base of the assemblage […] the image signal visually depicting the assemblage with a color-coded warning state that reflects a combination of the first and second stability ratings, wherein: i. the warning state is a first color if both the first and second stability ratings are below a first predetermined threshold ii. the warning state is a second color if only one of the first or second stability ratings is below the first predetermined threshold; iii. the warning state is a third color if both the first and second stability ratings are above the first predetermined threshold
On the other hand, Luo, which relates to determining LEGO sculpture stability, does teach accessing a data structure that stores physical property data for each digital model, the data including a preset weight value derived from an actual volume and density of the corresponding real-world building block (Table 1 discloses “the weights of different types of LEGO bricks. For each type, we measured five times, and averaged the values.” The averaged brick weights are further assigned to different dimensions of bricks, interpreted as assigning preset weight information to assembling elements. Table 1 is a data structure.) (e.g., page 7, table 1).
c. in response to two or more digital models being connected, calculating a connection strength for each connection by retrieving a pre-quantified force value from a non-transitory computer readable medium (“By testing various different ways to separate snapped bricks (Appendix A), we found a minimum value T of the non-zero maximum friction load,” wherein T is interpreted as the predetermined value. The value of T may be stored in the memory required by Clark. “First, there is a set of friction forces Ff working in the vertical direction between the knobs and cavities at the contact points (Figure 4(d)). F1~F4 and F13~F20 shown in Figure 5 illustrate these forces […] If [for all Fi that is an element of Ff] in addition satisfies Fi<T, then the sculpture can remain static.”) (e.g., page 5, column 2, paragraph 3; page 6, column 1, paragraph 1).
the force value corresponding to a specific combination of coupling type and coupling number (“The contact points can be categorized into three types according to their contact geometry (Figure 16),” wherein the contact points are interpreted as coupling types. Figure 16 discloses the experimental setup to calculate T, in which “we varied the size of the green brick in Figure 15 and tested [various dimensions of bricks]. Then, for each size, we changed the number of knobs to snap the brick,” wherein changing the number of knobs to snap the brick is interpreted as calculating T i.e., the coupling power, in consideration of a coupling number.) (e.g., page 12, figure 16 and appendix A).
e. determining a first stability rating for the assemblage based on the connection strength of the connected digital models (“For a friction force Fi [that is an element of] Ff,” wherein the friction forces Ff are the forces required to maintain a coupling between an assembling element and another assembling element, “we consider its capacity Ci- defined as Ci = T – Fi.” In other words, Ci is the difference between the coupling power T and the force Fi required to maintain the coupling between the assembling elements. “If Ci > 0, the corresponding point can still accept additional forces,” that is, the force Fi required to maintain the coupling is less than the coupling power T. “We define C-m = mini Ci to indicate the smallest (weakest) capacity […] As long as the forces can be redistributed to make Cm > 0, the LEGO sculpture remains stable […] Therefore, we can use Cm as the stability metric sLR for the layout L.” The stability metric is interpreted as the structural stability rating, and the mathematical formulae disclosed constitute determining the connection stability Cm between assembling elements. The force Fi is calculated based on the weights of the LEGO bricks.) (e.g., page 6, column 1, paragraphs 7 and 8; page 6, column 2, paragraph proceeding equation (7)).
ii. the warning state is a second color if only one of the first or second stability ratings is below the first predetermined threshold (The assembling element of the critical region in the example for [Petrovic 2001] in figure 9 is colored red, indicating that the stability rating is below a predetermined threshold.) (e.g., page 9, figure 9).
However, neither Clark nor Luo teaches d. in real-time, calculating a mass distribution for an assemblage of digital models by aggregating their assigned weight values and calculating a center of mass for the assemblage; and f. determining a second stability rating for the assemblage based on the position of the center of mass relative to a predetermined support base of the assemblage;
On the other hand, Hanisch, which relates similarly to computer-aided design of virtualized toys, does teach d. in real-time, calculating a mass distribution for an assemblage of digital models by aggregating their assigned weight values and calculating a center of mass for the assemblage (The disclosed program uses the mass and position of each assembling toy part to calculate the center of mass of the assembly toy, wherein an assembling toy part is analogous to an assembling element. The masses of the components are aggregated in line 52 of CoMMarker.cs in response to simulated rocket components being connected.) (e.g., CoMMarker.cs, page 9, lines 42-52).
f. determining a second stability rating for the assemblage based on the position of the center of mass relative to a predetermined support base of the assemblage (“Colored in red, [torque force] represents the resulting torque the thrusters are exerting into your vessel,” wherein a vessel is interpreted as the assembling toy. “The effect of this torque is represented by a circular arrow […] when you see a red arrow, it means that in the current configuration and with the given input your vessel will try to rotate.” Seeing a red arrow indicating a net torque on the assembling toy is interpreted as determining the balance stability of the assembly; any non-zero torque, shown by a circular arrow, indicates that the assembling toy will not maintain its static configuration. One of ordinary skill in the art would recognize the method of Hanisch as working for a normal force from a surface substituted for a thruster force.) (e.g., README, page 3, Usage section, Torque force subsection).
However, neither Clark nor Luo nor Hanisch teaches the image signal visually depicting the assemblage with a color-coded warning state that reflects a combination of the first and second stability ratings wherein: i. the warning state is a first color if both the first and second stability ratings are below a first predetermined threshold […] iii. the warning state is a third color if both the first and second stability ratings are above the first predetermined threshold.
On the other hand, Zhou, which relates similarly to generating LEGO models, does teach the image signal visually depicting the assemblage with a color-coded warning state that reflects a combination of the first and second stability ratings (“Some bricks are not stable in the automatically generated brick layouts […] As shown in figure 12(a), the bricks marked in red are not connected to the main body marked in white, and they have no lower layers or upper layers to support them. In order to ensure stability and connectivity, we add additional supporting layers (marked in yellow) in Figure 12(b) to reinforce these unstable bricks.” Figure 12(a) discloses groups of unstable bricks marked in red, wherein the instability of these bricks is based on a lack of support and connectivity.) (e.g., page 8, column 2, last paragraph to page 9, column 1, first paragraph and figure 12(a)).
wherein: i. the warning state is a first color if both the first and second stability ratings are below a first predetermined threshold (Figure 12(a) discloses groups of unstable bricks marked in red, wherein the instability of these bricks is based on a lack of support and connectivity.) (e.g., page 9, column 1, figure 12(a)).
iii. the warning state is a third color if both the first and second stability ratings are above the first predetermined threshold (Figure 12(a) discloses groups of stable bricks marked in white, wherein the stable bricks are determined to have adequate support and connectivity.) (e.g., page 9, column 1, figure 12(a)).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the Applicant's claimed invention to combine Clark with Luo for the same reasons as in Claim 1, above.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the Applicant's claimed invention to combine the modified reference of Clark in view of Luo with Hanisch for the same reasons as in Claim 9, above.
It would have been obvious to one of ordinary skill in the art before the effective filing date of the Applicant's claimed invention to combine the modified reference of Clark in view of Luo and Hanisch with Zhou. The claimed invention is considered to be merely combining prior art elements according to known methods to yield predictable results, see MPEP § 2143(I)(A). Clark in view of Luo and Hanisch teaches computer software for rendering an interactive model of a LEGO sculpture and determining a connection and balance stability. However, the combination of Clark, Luo, and Hanisch does not appear to specifically teach grouping digital models into a single virtual object, or displaying a colored warning indicating a lack of both balance and connection stability. On the other hand, Zhou, which relates similarly to generating LEGO models, does teach a color-coded warning state indicating both balance and connection stability. As Clark, Luo, Hanisch, and Zhou relate to modeling structures, one of ordinary skill in the art could have combined the virtual environment and stability analysis of the Clark, Luo, and Hanisch combination with the grouping and warning of Zhou; in combination, the virtual environment of Clark and the grouping and warning of Zhou merely perform the same functions as they do separately. Furthermore, Luo and Hanisch already disclose using color to convey stability information (e.g., Luo, page 9, figure 9; Hanisch, README, page 3, Usage section, Torque force subsection). Thus, one of ordinary skill in the art would have recognized the results of the combination as predictable. Therefore, it would have been obvious to one of ordinary skill in the art before the effective filing date of the Applicant's claimed invention to combine the modified reference of Clark in view of Luo and Hanisch with Zhou in order to identify and warn users about groups of unstable blocks.
Regarding Claim 15, Clark in view of Luo, Hanisch, and Zhou teaches The method of claim 14. Luo further teaches the method further comprising, in response to a determination that the structural stability rating is below a predetermined threshold, electronically generating a visual indicator on the display that highlights the specific connection point determined to be unstable (The assembling element of the critical region in the example for [Petrovic 2001] in figure 9 is colored red, interpreted as the assembling element being in a warning state, indicating that the connection stability of said assembling element is less that a first predetermined value of zero.) (e.g., page 9, figure 9).
Regarding Claim 16, Clark in view of Luo, Hanisch, and Zhou teaches The method of claim 14. Luo further teaches the method further comprising: scanning, based on the location data of the digital models in the virtual building environment, a plurality of coupling points at which complementary coupling parts of connected digital models are coupled (Algorithm 8 discloses step 1 of “compute {FkM} that maximizes the smallest capacity using (6).” Equation (6) uses an argmax function which involves iterating over each connection to find the value of Fk that provides the largest capacity Cm.) (e.g., page 6, column 2, algorithm 8 and equation (6)).
calculating, for each scanned coupling point, a coupling power corresponding to a coupling type of the coupling point (Equation (6) uses T, interpreted as the coupling power, to calculate the smallest capacity Cm.) (e.g., page 6, column 2, equation (6)).
setting at least one assembling element group based on a comparison between at least one coupling power and at least one threshold coupling power (“For each step, we devise a structural analysis technique to obtain 1) a structure metric sL and 2) a structure-critical portion wL to reconfigure,” wherein obtaining a structure-critical portion wL is interpreted as grouping.”) (e.g., page 3, column 2, paragraph 4).
and selecting, as an inspection coupling point, a coupling point between (i) a digital model belonging to the assembling element group and (ii) a digital model not belonging to the assembling element group, for use in determining the first stability rating (“Furthermore, we can compute [Fiw from equation (8)] and identify the two bricks that share the contact point corresponding to Fiw. These two bricks are the weakest portion wLR of the LEGO sculpture.” Algorithm 8 further discloses step 4, “find the weakest contact point i via (8),” wherein i is the inspection point, and step 5 that defines wLR as the two bricks sharing i, further wherein one brick of wLR constitutes the first group and the second brick of wLR constitutes the second group.) (page 6, column 2, equation (8) with preceding and proceeding paragraphs).
Regarding Claim 17, Clark in view of Luo, Hanisch, and Zhou teaches The method of claim 14. Luo further teaches wherein calculating the connection strength for a connection between a first digital model and a second digital model comprises retrieving a pre- quantified force value from a non-transitory computer readable medium (“By testing various different ways to separate snapped bricks (Appendix A), we found a minimum value T of the non-zero maximum friction load,” wherein T is interpreted as the predetermined value. The value of T may be stored in the computer of Clark. “First, there is a set of friction forces Ff working in the vertical direction between the knobs and cavities at the contact points (Figure 4(d)). F1~F4 and F13~F20 shown in Figure 5 illustrate these forces […] If [for all Fi that is an element of Ff] in addition satisfies Fi<T, then the sculpture can remain static.”) (e.g., page 5, column 2, paragraph 3; page 6, column 1, paragraph 1).
based on a combination of the coupling part type of the first digital model and the complementary coupling part type of the second digital model (“The contact points can be categorized into three types according to their contact geometry (Figure 16),” wherein the contact points are interpreted as coupling types. Figure 16 discloses the experimental setup to calculate T, in which “we varied the size of the green brick in Figure 15 and tested [various dimensions of bricks]. Then, for each size, we changed the number of knobs to snap the brick,” wherein changing the number of knobs to snap the brick is interpreted as calculating T i.e., the coupling power, in consideration of a coupling number.) (e.g., page 12, figure 16 and appendix A).
Regarding Claim 18, Clark in view of Luo, Hanisch, and Zhou teaches The method of claim 14. Zhou further teaches the method further comprising: grouping a plurality of interconnected digital models into a single virtual object (“Some bricks are not stable in the automatically generated brick layouts […] As shown in figure 12(a), the bricks marked in red are not connected to the main body marked in white, and they have no lower layers or upper layers to support them. In order to ensure stability and connectivity, we add additional supporting layers (marked in yellow) in Figure 12(b) to reinforce these unstable bricks.” The bricks marked in red are interpreted as a grouping of interconnected digital models.) (e.g., page 8, column 2, last paragraph to page 9, column 1, first paragraph).
and displaying a single stability rating for the single virtual object, the stability rating representing a combination of the determined connection stability and balance stability of the grouped digital models (Figure 12 discloses groups of unstable bricks marked in red, wherein the instability of these bricks is based on a lack of support and connectivity.) (e.g., page 9, column 1, figure 12).
Regarding Claim 19, Clark in view of Luo, Hanisch, and Zhou teaches The method of claim 14. Luo further teaches wherein the threshold coupling power is set in consideration of weight (“In addition, CM > 0 naturally serves as a threshold for the stability.” CM, defined by equation (7), is determined using T – FiM. As FiM is determined by satisfying the constraint given by equation (2), which uses weight information, CM, and thus the stability threshold, is determined in consideration of weight.”) (e.g., page 6, equation (7) and following paragraph).
comprising setting the threshold coupling power for an inspection coupling point (Algorithm 8 further step 4, “find the weakest contact point i via (8),” wherein i is the inspection point. Equation (8) finds the value of Fi that gives the value of CM in equation (7). Thus, CM > 0, a threshold for coupling power, corresponds to the inspection point i.) (page 6, column 1, equation (2); column 2, Algorithm 8, equations (7) and (8)).
based on (i) a coupling power of the inspection coupling point and (ii) a weight of at least one of: (a) an assembling element, (b) an assembling element group, or (c) an assemblage, positioned at one side of the inspection coupling point or positioned at both sides of the inspection coupling point (The Examiner notes the use of or, and the prior art provides the weight of an assembling element. CM, defined by equation (7), is determined using T – FiM. As FiM is determined using weight information and T defines a coupling power, CM, and thus the stability threshold, is determined in consideration of weight and a coupling power.) (e.g., page 6, equation (7) and following paragraph).
such that the threshold coupling power changes according to the magnitude of the weight (CM, defined by equation (7), is determined using T – FiM. As FiM is determined by satisfying the constraint given by equation (2), which uses weight information, CM, and thus the stability threshold, changes according to the magnitude of the weight.) (page 6, column 1, equation (2); column 2, Algorithm 8, equations (7) and (8)).
Allowable Subject Matter
Claim 20 is objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
The following is a statement of reasons for the indication of allowable subject matter:
Regarding Claim 20, in light of Clark, Luo, Hanisch, Zhou, and Mosemann et al. (Mosemann, Heiko, F. Rohrdanz, and F. Wahl. "Assembly stability as a constraint for assembly sequence planning." In Proceedings. 1998 IEEE International Conference on Robotics and Automation (Cat. No. 98CH36146), vol. 1, pp. 233-238. IEEE, 1998.), hereinafter Mosemann, the claimed invention would not have been anticipated or obvious to one of ordinary skill in the art before the effective filing date of the Applicant’s claimed invention.
Clark, the closest prior art, teaches a user interface for manipulating a virtual environment comprising a LEGO sculpture. However, Clark does not teach determining a balance stability by setting a support surface and determining that a center of mass is within the support surface.
Luo teaches a method for determining a connection stability of a LEGO sculpture. However, Luo also does not teach setting a support surface and determining that a center of mass is within the support surface.
Hanisch teaches a method for determining a balance stability including determining a center of mass, however Hanisch also does not teach setting a support surface and determining that a center of mass is within the support surface.
Zhou teaches a method for automatically generating virtual LEGO sculptures and supporting unstable pieces. However, Zhou does not teach determining whether a center of mass is within a support surface.
Mosemann teaches a method for determining an assembly sequence for a manufactured object (e.g., pg. 4, fig. 1 shows a motorcycle engine being assembled). The stability is determined by balancing the moments of the assembly elements and normal forces from contact points with the assembly. The contact points of Mosemann are interpreted as a plurality of bottom surfaces, however the contact points are evaluated individually for their normal forces, as opposed to creating a single support surface. Furthermore, Mosemann also does not teach determining whether a center of mass is within a support surface.
In summary, the aforementioned prior art fails to teach at least the following limitations, in combination with the remaining limitations: wherein determining the second stability rating comprises: detecting that the assemblage has a plurality of bottom surfaces spaced apart from each other, and in response, setting a support surface based on positions of the plurality of bottom surfaces, the support surface including a region between the plurality of bottom surfaces, and determining the second stability rating based on whether the calculated center of mass is located within the support surface. The combination of the teachings of the closest prior art listed above would not completely teach the limitations of Claim 20
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to KYLE HWA-KAI TSENG whose telephone number is (571)272-3731. The examiner can normally be reached M-F 9A-5P PST.
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, Rehana Perveen can be reached at (571) 272-3676. 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.
/K.H.T./ Examiner, Art Unit 2189
/REHANA PERVEEN/ Supervisory Patent Examiner, Art Unit 2189