METHOD FOR PRODUCING COMPLEX THREE-DIMENSIONAL BUILDING SURFACES

DE602017091926T2Active Publication Date: 2025-09-243 PALMS GRP LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE602017091926
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2017-04-28
Filing Date
2017-05-04
Publication Date
2025-09-24
Estimated Expiration
2037-05-04

AI Technical Summary

Technical Problem

Existing methods for manufacturing three-dimensional building surfaces using solid surface materials are labor-intensive, time-consuming, and expensive, with seams between units being difficult to conceal, especially when etched or contoured, and limited design options are available beyond repetitive tile pieces.

Method used

A computer-automated system partitions a three-dimensional design into non-repeating, seamless segments that can be assembled by low-skilled workers, using CNC machines to cut and align the segments for a seamless, ornate design, hiding seams along existing curves.

Benefits of technology

The system enables efficient, cost-effective creation of complex, non-repeating three-dimensional building surfaces with seamless joins, reducing labor requirements and enhancing design flexibility.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

FIELD OF THE INVENTION

[0001] The present invention relates generally to a method of manufacturing building surfaces and, more particularly, to a method of manufacturing complex three-dimensional building surfaces using solid surface material, as well as a system and a computer-readable storage medium for the same.BACKGROUND

[0002] Interior wall and ceiling surfaces are typically covered with drywall, which can easily be patched and painted to create smooth, flat surfaces. However, design options for drywall surfaces are generally limited to paint selection as drywall cannot be milled to create three-dimensional surfaces or patterns

[0003] Solid surface material, such as Corian LG Hi Mac, Krion, Arishtech Avonite, Meganite, Samsung Staron, Swan Swanstone, or Wilsonart Solid Surface, is generally a non-porous, low-maintenance material often used for countertops. Unlike drywall, solid surface material can be milled to create three-dimensional surfaces and patterns such as grooves or surface contours.

[0004] However, existing technology and installation techniques make it difficult, time consuming, and expensive to use solid surface material for anything other than countertops, let alone interior and exterior building surfaces, such as walls, ceilings, floors, and roofs. For example, unlike drywall, the adjoining areas between units of solid surface material cannot easily be patched and painted to create a seamless surface. Rather, these adjoining areas require extensive sanding by expert installers. This laborious installation process can be expensive and time-consuming.

[0005] Publications related to the construction industry have discussed approaches to automatedly cutting building materials. One U.S. patent application US 2014 / 0156049 A1 discusses the production of frame and sheathing design and cutting based on building specifications. Additionally, another U.S. patent application US 2011 / 0054652 A1 discloses a building construction method using computer software to produce milling commands for cutting building material.

[0006] Indeed, even with expensive, expert installation, the seams between adjoining surface material units can be difficult to conceal. This task is made more arduous when the surface material units are etched or contoured to include a three-dimensional design. For example, the grooves or contour patterns on the surface material units can be difficult to align and, even when properly aligned, often act to highlight the seams between units. Existing methods for manufacturing decorative building surfaces have largely been limited to repetitive, three-dimensional tile pieces, which have limited design potential and are time-consuming to install. The present invention addresses these problems involved in the prior art and provides further related advantages.

[0007] The aforementioned and other problems are solved by the features claimed in the independent claims 1, 12 and 13. Advantageous further embodiments are claimed in the dependent claims.BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Figure 1 illustrates a system including a construction module in accordance with one embodiment of the present disclosure. Figure 2 illustrates a design module in accordance with one embodiment of the present disclosure. Figure 3 illustrates a partitioning module in accordance with one embodiment of the present disclosure. Figure 4 illustrates an instruction generating module in accordance with one embodiment of the present disclosure. Figure 5A illustrates a design page showing a rendering of a three-dimensional design over a building surface area in accordance with one embodiment of the present disclosure. Figure 5B illustrates a design page showing a rendering of a plurality of three-dimensional segments that can be arranged to form the three-dimensional design of Figure 5A, in accordance with one embodiment of the present disclosure. Figure 5C illustrates a design page showing a rendering of a three-dimensional design over a building surface area in accordance with one embodiment of the present disclosure. Figure 5D illustrates a design page showing a rendering of a plurality of three-dimensional segments that can arranged to form the three-dimensional design of Figure 5C, in accordance with one embodiment of the present disclosure. Figure 6A illustrates a design page showing a rendering of a three-dimensional design over a building surface area in accordance with one embodiment of the present disclosure. Figure 6B illustrates a design page showing a rendering of a plurality of three-dimensional segments that can be arranged to form the three-dimensional design of Figure 6A, in accordance with one embodiment of the present disclosure. Figure 6C illustrates a design page showing a rendering of a three-dimensional design over a building surface area in accordance with one embodiment of the present disclosure. Figure 6D illustrates a design page showing a rendering of a plurality of three-dimensional segments that can arranged to form the three-dimensional design of Figure 6C, in accordance with one embodiment of the present disclosure. Figure 7A illustrates a design page showing a rendering of a three-dimensional design over a building surface area in accordance with one embodiment of the present disclosure. Figure 7B illustrates a design page showing a rendering of a plurality of three-dimensional segments that can be arranged to form the three-dimensional design of Figure 7A, in accordance with one embodiment of the present disclosure. Figure 7C illustrates an original image of a moose, which is used as an image element in the three-dimensional design of Figure 7A, in accordance with one embodiment of the present disclosure. Figure 8 illustrates a network diagram of an example system including a user device and a Computer Numeric Control (CNC) system that can be utilized in various scenarios, in accordance with one embodiment of the present disclosure. Figure 9 illustrates an example method of manufacturing a building surface in accordance with one embodiment of the present disclosure. Figure 10 illustrates an example of a computer system or computing device that can be used in various scenarios, in accordance with one embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] An improved approach rooted in computer technology overcomes the previously discussed and other difficulties associated with conventional approaches. Based on computer technology, the disclosed technology can automatically partition a three-dimensional design into a plurality of three-dimensional segments that can be assembled to create a non-repeating, seamless, three-dimensional design for a building surface. The three-dimensional design and dimensions of a surface material unit are used to determine how to partition the three-dimensional design into the plurality of three-dimensional segments. In certain embodiments, the three-dimensional design can be automatically partitioned such that partition edges are generated along curves included in the three-dimensional design. In this way, when the three-dimensional segments are joined together, they are joined together at existing curves which hide any seams caused by partition edges. The partitioned three-dimensional design is used to generate milling instructions for cutting a plurality of surface material units into three-dimensional design segments that are configured to be assembled into the three-dimensional design. Low-skilled workers can easily assemble the segments over a building surface area - without extensive sanding or finishing - to create a non-repeating, ornate, and seamless, three-dimensional design.

[0010] With reference now to Figure 1 of the illustrative drawings, there is shown a system 100 including a construction module 110 configured to partition a three-dimensional design into a plurality of three-dimensional segments that can be assembled to create a seamless three-dimensional design on a building surface, in accordance with one embodiment. The construction module 110 can be configured to receive dimensions of a building surface, dimensions of a surface material unit, and design parameters. The dimensions of the building surface include a surface length and a surface height. The dimensions of the surface material unit include one or more material lengths and one or more material heights. The design parameters define a three-dimensional design. In certain embodiments according to the invention, the three-dimension design can be designed for a building surface. The three-dimensional design is partitioned into the plurality of three-dimensional segments based on both the three-dimensional design and the dimensions of the surface material unit. The methods, systems, and non-transitory computer readable media are further configured to generate a set of milling instructions for cutting a plurality of surface material units into the plurality of three-dimensional segments.

[0011] As shown in Figure 1, in one embodiment, the construction module 110 can include a design module 120, a partitioning module 130, an instruction generating module 140, and a cutting module 150. In some instances, the example system 100 can include at least one data store 110. In another embodiment, the construction module 110 may not include the cutting module 150.

[0012] The construction module 110 can be implemented, in part or in whole, as software, hardware, or as a combination of software and hardware. In general, a module can be associated with software, hardware, or any combination of software and hardware. In some cases, the construction module 110 can be implemented, in part or in whole, as software running on one or more computer devices or systems, such as on a server computing system or a user (or client) computing system. For example, the construction module 110, or at least a portion of it, can be implemented as or within an application, a program, or an applet, etc., running on a user computing device or a client computing system, such as the user device 710 of Figure 7. In another example, the construction module 110, or at least a portion of it, can be implemented using one or more computing devices or systems that include one or more servers, such as network servers or cloud servers. In some instances, the construction module 110 can, in part or in whole, be implemented within or configured to operate in conjunction with a Computer Numeric Control (CNC) system, such as the CNC system 720 of Figure 7. For example, in one embodiment, the cutting module 150 can be implemented, in part or in whole, as software running on the CNC system 720 of Figure 7.

[0013] In an embodiment according to the invention, the design module 120 is configured to receive dimensions of a building surface, dimensions of a surface material unit, and design parameters. The dimensions of the building surface include a surface length and a surface height. The dimensions of the surface material unit include material length and material height. The design parameters define a three-dimensional design over the building surface. In addition, in one embodiment, the design module 120 can be configured to further receive dimensions of a CNC machine, including a machine length and a machine width. The design module 120 is described in greater detail below.

[0014] The partitioning module 130 carries out the method step according to the invention of partitioning the three-dimensional design into a plurality of three-dimensional segments based on both the three-dimensional design and the dimensions of the surface material unit. The partitioning module 130 is described in greater detail below.

[0015] The instruction generating module 140 can be configured to produce a set of milling instructions and a set of assembly instructions. In one embodiment, the instruction generating module 140 can be configured to produce a set of computer-readable instructions that can be interpreted to extract the commands needed to operate a particular cutting machine for production of the plurality of three-dimensional segments. For example, the instructions may comprise Computer Numeric Control (CNC) instructions, such as G-code, which is readable by, for example, a CNC milling machine. In another embodiment, the instruction generating module 140 can be configured to produce a set of instructions for assembling the plurality of three-dimensional segments on the building surface. The instruction generating module 140 is described in greater detail below.

[0016] The cutting module 150 can be configured to interpret a set of computer-readable instructions to extract the commands needed to operate a particular cutting machine for production of the plurality of three-dimensional segments. Milling is a cutting process that uses a milling cutter to remove material from the surface of a workpiece. Milling machines, and other cutting tools, have become automated, for example, through the use of Computer Numerical Control (CNC). Rather than being manually operated, CNC machines are operated by programmed commands from a standardized set of instructions, such as G-code. Accordingly, in one embodiment, the cutting module 150 may translate the cutting instructions into commands to move a milling spindle to various locations and depths and otherwise guide the cutting machine for desired operation.

[0017] Furthermore, in one embodiment, the construction module 110 can be configured to communicate or operate with the at least one data store 160, as shown in the example system 100. The data store 160 is configured to store and maintain various types of data. In some implementations, the data store 160 can store information associated with the construction system (e.g., one or both of the user device 710 and the CNC system 720 of Figure 7). The information associated with the construction system includes data about building dimensions, design parameters, and surface materials, and in some embodiments may further include information such as cutting equipment and various other types of data. It is contemplated that there can be many variations or other possibilities.

[0018] Figure 2 illustrates a design module 120 which carries out the method step according to the invention of receiving the dimensions of a building surface, the dimensions of surface material units, and design parameters. As shown in Figure 2, the design module 120 can include a measurement input module 122, a design input module 124, and a rendering module 126. In one embodiment, the design module 120 does not include the rendering module 126.

[0019] The measurement input module 122 can be configured to receive dimensions of a building surface and dimensions of one or more surface material units. The dimensions of a building surface, such as a living room wall, include a surface length (e.g., 155 inches) and a surface height (e.g., 90 inches). The dimensions of a surface material unit, such as a unit of Corian, include a material length (e.g., 144 inches) and a material height (e.g., 30 inches). In certain embodiments, each unit of a plurality of surface material units has the same dimensions. In an alternative embodiment, a plurality of dimensions for a plurality of surface material units can be defined. In one embodiment, the measurement input module 122 can be configured to further receive dimensions of a CNC machine. The dimensions of a CNC machine can include, for example, a machine length (e.g., 96 inches) and a machine width (e.g., 30 inches).

[0020] The design input module 124 can be configured to carry out the method step according to the invention of receiving design parameters defining a three-dimensional design for a building surface. In one example not presently claimed, the three-dimensional design defined by the design parameters can be non-repetitive (i.e., substantially without repeating segments or portions) and have an area at least as large as an area of the building surface. In certain embodiments, the area of the building surface may be at least 50 square meters. In certain embodiments the three-dimensional design may comprise a contoured surface. Accordingly, in an additional embodiment, the design input module 124 can be configured to receive parameters to define the contoured surface over the building surface area.

[0021] In one embodiment according to the invention, the three-dimensional design defined by the design parameters comprises a first series of lines extending generally in a first direction. In another embodiment, the three-dimensional design defined by the design parameters further comprises a second series of lines extending generally in a second direction, wherein the first direction is different from the second direction. In a further embodiment, the lines in the first or second series of lines can define grooves that may be carved into a surface material unit. The term "lines" as used in this application, can include lines that are straight, curved, zigzag, or any combination of these. For example, in an additional embodiment, the first series of lines and the second series of lines may form a grid-like pattern on a plurality of virtual surface material units assembled over a virtual building surface.

[0022] Accordingly, in one embodiment, the design input module 124 can be configured to receive design parameters defining the configuration of the first series of lines, the second series of lines, or both. For example, the design input module 124 can be configured to define a first series of lines or both the first series of lines and a second series of lines. In addition, the design input module 124 can be configured to receive a density of the first series of lines (e.g., 1 line per inch) and a density of the second series of lines (e.g., 3 lines per inch), which can define the density of the grid-like pattern of the three-dimensional design. In a further embodiment, the design input module 124 can be configured to receive a thickness of the first series of lines and a thickness of the second series of lines, which can define the width of the grooves cut into the surface material units in the two sets of lines. In an additional embodiment, the design input module 124 can be configured to receive a depth of the first series of lines and a depth of the second series of lines, which can define the depth of the grooves cut into the surface material units in the two sets of lines. In yet another embodiment, the design input module 124 can be configured to receive parameters for a sine expression that can be applied to the first and second series of lines to add one or more sinusoidal curved lines to one or both of the two sets of lines.

[0023] In one example embodiment not currently claimed, the design input module 124 can be configured to receive one or more drawn design elements or geometry, such as a series of arches, drawn over the design area. In certain embodiments, drawn design elements or geometry can modify the first series of lines, and, if included, the second series of lines. For example, the lines in the first and second series of lines can bend towards (e.g., be attracted to) the drawn geometry or away from (e.g., be repelled by) the drawn geometry. In certain embodiments, the design input module 124 can receive an attraction shape (e.g., 1 inch), which can define a radius of attraction between points on the first and second series of lines and the drawn geometry. In another embodiment, the design input module 124 can be configured to receive an attraction intensity for the first series of lines, which can define a degree of attraction between points on the first series of lines and the drawn geometry. In a further embodiment, the design input module 124 can be configured to receive an attraction intensity for the second series of lines, which can define a degree of attraction between points on the second series of lines and the drawn geometry. In certain embodiments, the design input module 124 can be configured to receive an attraction intensity for any drawn geometry, which can define a degree of attraction between points on the first and second series of lines and the drawn geometry.

[0024] In one example embodiment not currently claimed, the design input module 124 can be configured to receive one or image elements (e.g., images, photographs, or drawings), such as a photograph of a Zebra, drawn over the design area. In certain embodiments, the image element can modify the first series of lines, and, if included, the second series of lines. For example, the lines in the first and second series of lines can bend towards (e.g., be attracted to) or away from (e.g., be repelled by) darker (or lighter) regions of the image element. As discussed above, in certain embodiments, the design input module 124 can receive an attraction shape (e.g., 1 inch), which can define a radius of attraction between points on the first and second series of lines and the dark (or light) regions of the image element. In another embodiment, the design input module 124 can be configured to receive an attraction intensity for the first series of lines, which can define a degree of attraction between points on the first series of lines and the dark (or light) regions of the image element. In a further embodiment, the design input module 124 can be configured to receive an attraction intensity for the second series of lines, which can define a degree of attraction between points on the second series of lines and the dark (or light) regions of the image element. In certain embodiments, the design input module 124 can be configured to receive an attraction intensity for any image element, which can define a degree of attraction between points on the first and second series of lines and the dark (or light) regions of the image element.

[0025] In one embodiment, the design input module 124 can be configured to receive design parameters for a parametric, three-dimensional design. For example, the design parameters can be edited or manipulated to define and modify an ornate, three-dimensional design.

[0026] In certain embodiments, the design input module 124 can be configured to receive an offset value for a horizontal direction and an offset value for a vertical direction. In one embodiment, the horizontal and vertical offset values can define the horizontal and vertical positioning of the plurality of surface material units over the building surface area.

[0027] The rendering module 125 can be configured to produce a rendered image of a virtual building surface, a plurality of virtual surface material units over the building surface, and the three-dimensional design.

[0028] Figure 3 illustrates a partitioning module 130 configured to partition a three-dimensional design into a plurality of three-dimensional segments based on both a three-dimensional design and dimensions of one or more surface material units, in accordance with one embodiment according to the invention. As shown in Figure 3, the partitioning module 130 can include a design deconstruction module 132 and a seam setting module 134.

[0029] The design deconstruction module 132 is configured to carry out the method step according to the invention of dividing each line in the first and second series of lines into a set of points. For example, in one embodiment, the design deconstruction module 132 can create a first index of the lines in the first series of lines and a second index of the lines in the second series of lines. In another embodiment, the design deconstruction module 132 can divide each of the lines in the indexes into a series of points and create an first index of the points on each line in the first index of lines and a second index of points on each line in the second index of lines.

[0030] In one embodiment according to the invention, the seam setting module 134 is configured to set appropriate lines in the first series of lines as seam lines. In one embodiment, seam lines can represent where surface material units should be cut to form three-dimensional segments. In another embodiment, the seam setting module 134 can identify groove lines that should be set as seam lines so as to obscure the seams when the plurality of three-dimensional segments are assembled over a building surface area.

[0031] In one embodiment, the seam setting module 124 can create a first index of seam lines representing seam lines in the first series of lines. For example, if the surface height is less than or equal to the material height, the seam setting module 134 can iteratively set lines in the first series of lines as seam lines in a first set of seam lines if a horizontal distance between any point on a next line in the first series of lines and any point on a latest seam line in the first set of seam lines exceeds a first dimensional threshold. In another embodiment according to the invention, the first dimensional threshold can be determined based on the material length. For example, in a further embodiment, the first dimensional threshold can be the material length minus a tolerance value.

[0032] Alternatively in an exemplary embodiment not presently claimed, if the surface length is less than or equal to the material length, the seam setting module 134 can iteratively set lines in the first series of lines as seam lines in a first set of seam lines if a vertical distance between any point on a next line in the first series of lines and any point on a latest seam line in the first set of seam lines exceeds a first dimensional threshold. In another exemplary embodiment not presently claimed, the first dimensional threshold can be determined based on the material height. For example, in a further embodiment, the first dimensional threshold can be the material height minus a tolerance value.

[0033] When three-dimensional design includes a second series of lines, the seam setting module 134 can be configured to set appropriate lines in the first and second series of lines as seam lines. In one embodiment, the seam setting module 124 can create a first index of seam lines representing seam lines in the first series of lines. In another embodiment, the seam setting module 124 can create a second index of seam lines representing seam lines in the second series of lines.

[0034] In one embodiment according to the invention, the seam setting module 134 iteratively sets lines in the first series of lines as seam lines in a first set of seam lines if a horizontal distance between any point on a next line in the first series of lines and any point on a latest seam line in the first set of seam lines exceeds a first dimensional threshold. In another embodiment according to the invention, the first dimensional threshold can be determined based on the material length. For example, in a further embodiment, the first dimensional threshold can be the material length minus a tolerance value.

[0035] In one embodiment, the seam setting module 134 can loop through the first index of lines and the first index of points to identify one or more points on each of the first series of lines having a minimum distance in the horizontal direction (X min point). In another embodiment, the seam setting module 134 can loop through the first index of lines and the first index of points to identify one or more points on each of the first series of lines having a maximum distance in the horizontal direction (X max point).

[0036] In one embodiment according to the invention, the seam setting module 134 carries out the method step according to the invention of setting the first line in the first series of lines as the first seam line. The seam setting module 134 then moves to a next line in the first index of lines to determine whether the horizontal distance between the next line's X max point to the latest seam line's X min point exceeds the first dimensional threshold. If the next line's X max point to the latest seam line's X min point does not exceed the first dimensional threshold, then the seam setting module 134 can move to the next line in the first index of lines. This continues until it is determined that for a particular line, the line's X max point to the latest seam line's X min point exceeds the first dimensional threshold. When this occurs, the seam setting module 134 can set the previous line in the first index of lines as a seam line. The new seam line can be added to the first index of seam lines, and the seam setting module 134 can step through the next lines in the first index of lines to determine whether the horizontal distance between the next line's X max point to the latest seam line's X min point exceeds the first dimensional threshold in order to identify a next seam line. The seam setting module 134 can continue to step through each line in the first index of lines in this manner until all of the seam lines are set in the first series of lines, i.e., until all lines in the first index of lines are analyzed.

[0037] In one embodiment, the seam setting module 134 may iteratively set lines in the second series of lines as seam lines in a second set of seam lines if a vertical distance between any point on a next line in the second series of lines and any point on a latest seam line in the second set of seam lines exceeds a second dimensional threshold. In another embodiment, the second dimensional threshold can be determined based on the material height. For example, in a further embodiment, the second dimensional threshold can be the material height minus a tolerance value.

[0038] In one embodiment, the seam setting module 134 can loop through the second index of lines and the second index of points to identify one or more points on each of the second series of lines having a minimum distance in the vertical direction (Y min point). In another embodiment, the seam setting module 134 can loop through the second index of lines and the second index of points to identify one or more points on each of the second series of lines having a maximum distance in the vertical direction (Y max point).

[0039] In one embodiment, the seam setting module 134 can set the first line in the second index of lines as a seam line. The seam setting module 134 can then move to a next line in the second index of lines to determine whether the vertical distance between the next line's Y max point to the latest seam line's Y min point exceeds the second dimensional threshold. If the next line's Y max point to the latest seam line's Y min point does not exceed the second dimensional threshold, then the seam setting module 134 can move to the next line in the second index of lines. This continues until it is determined that for a particular line in the second index of lines, the distance from the line's Y max point to the latest seam line's Y min point exceeds the second dimensional threshold. When this occurs, the seam setting module 134 can set the previous line in the second index of lines as a seam line. The new seam line can be added to the second index of seam lines, and the seam setting module 134 can step through the next lines in the second index of lines to determine whether the vertical distance between the next line's Y max point to the latest seam line's Y min point exceeds the second dimensional threshold in order to identify a next seam line. The seam setting module 134 can continue to step through each line in the second index of lines in this manner until all of the seam lines are set in the second series of lines, i.e., until all lines in the second index of lines are analyzed. These concepts will be described in greater detail below with reference to various example scenarios depicted in Figures 5A-D, 6A-D, and 7A-C.

[0040] In certain embodiments, drawn geometry (e.g., drawn curves / lines) can be included in the first or second index of lines such that drawn geometry lines can also be analyzed as potential seam lines.

[0041] Figure 4 illustrates an instruction generating module 140 configured to generate instructions for cutting a plurality of surface material units into a plurality of three-dimensional segments according to an embodiment of the invention, and for assembling the plurality of three-dimensional segments on a building surface area to create a three-dimensional design, in accordance with one embodiment. As shown in Figure 4, the instruction generating module 140 can include a cutting instructions module 142 and an assembly instructions module 144.

[0042] The cutting instructions module 142 can be configured to produce a set of computer-readable instructions that can be interpreted to extract the commands needed to operate a particular cutting machine for production of a plurality of three-dimensional segments. For example, the instructions may comprise Computer Numeric Control (CNC) instructions, such as G-code. As will be discussed in more detail below, the cutting instructions can be transmitted to a local CNC machine or to one or more CNC machines around the world.

[0043] In one embodiment, the cutting instructions module 142 can assign a number to each of the plurality of three-dimensional segments. In one embodiment, the cutting instruction module 142 can include with the computer readable instructions, instructions to cut the number assigned to each of the plurality of three-dimensional segments onto the back of the corresponding three-dimensional segment.

[0044] The assembly instructions module 144 can be configured to generate instructions for assembling the plurality of three-dimensional segments over a building surface to create a three-dimensional design. For example, in one embodiment, the assembly instructions module 144 can generate a drawing of the building surface area, with the plurality of numbered, three-dimensional segments arranged over the building surface area to create the three-dimensional design.

[0045] Figure 5A provides an example scenario 500 associated with receiving dimensions and design parameters for a three-dimensional design 504 and partitioning the three-dimensional design into a plurality of three-dimensional segments 506.0 - 506.7, according to one embodiment. The example scenario 500 illustrates an interface 502. As shown in the example of Figure 5A, the interface 502 can provide a display of the three-dimensional design 504 over a plurality of three-dimensional segments 506.0 - 506.7 arranged over a virtual building surface 508.

[0046] In this example scenario 500, the virtual building surface 508 has a surface length of 155 inches and a surface height of 90 inches. The plurality of three-dimensional segments 506.0 - 506.7 represent a plurality of surface material units, each with a starting material length of 120 inches and a starting material height of 30 inches, that have been cut and arranged over virtual building surface 508.

[0047] The example three-dimensional design comprises a first series of lines 510 extending generally in a first direction A (in this case, vertically) and a second series of lines 512 extending generally in a second direction B (in this case, horizontally), where the first direction is different from the second direction. In this example, the density of the first series of lines is 4 inches per line and the density of the second series of lines is 2 inches per line.

[0048] In this example, the example three-dimensional design further includes five arches 514 as additional drawn design elements or geometry. The attraction shape, which defines the radius of attraction between the first and second series of lines and the drawn geometry 514, is set in this example to 1 inch. The attraction intensity for the first series of lines, which defines the intensity of the attraction between points on the first series of lines and the drawn geometry, is set to 4; and the attraction intensity for the second series of lines, which defines the intensity of the attraction between points on the second series of lines and the drawn geometry, is set to 2.

[0049] In the example scenario 500, a left-most vertical line 510a is identified as a first seam line in a first set of seam lines. The construction module 110 automatically iterates through each vertical line 510, and analyzes whether the distance between a maximum X value on each vertical line 510 to a minimum X value on the first seam line 510a exceeds a horizontal threshold (e.g., 120 inches, the length of the surface material unit). In the example scenario 500, it has been determined that the horizontal distance between a maximum X value on a vertical line 510c and a minimum X value on the first seam line 510a exceeds the horizontal threshold. As such, the immediately preceding vertical line 510b is selected as a second seam line in the first set of seam lines. Repeating these steps, it is determined that there is no vertical line for which the distance to the second seam line 510b exceeds the horizontal threshold. As such, a rightmost vertical edge 510d is selected as a final seam line in the first set of seam lines.

[0050] Seam lines in the perpendicular direction can be selected in a similar manner. In the example scenario 500, a lowermost horizontal line 512a is selected as a first seam line in a second set of seam lines. The construction module 110 may automatically iterate through each horizontal line 512 and determine whether the vertical distance between a maximum Y value on each horizontal line 512 and a minimum Y value on the first seam line 512 in the second set of seam lines exceeds a vertical threshold (e.g., 30 inches, the height of the surface material unit). In the example scenario 500, it is determined that the vertical distance between a maximum Y value on a horizontal line 512c and a minimum Y value on the first seam line 512a in the second set of seam lines exceeds the vertical threshold. As such, the immediately preceding horizontal line 512b is selected as a second seam line in the second set of seam lines. These steps are then repeated from the second seam line 512b in the second set of seam lines. It is determined that the vertical distance between a maximum Y value for a horizontal line 512e and a minimum Y value for the second seam line 512b in the second set of seam lines exceeds the vertical threshold. As such, the immediately preceding horizontal line 512d is selected as a third seam line in the second set of seam lines. These steps are repeated once again from the third seam line 512d in the second set of seam lines. Each horizontal line 512 from the third seam line 512d is analyzed to find the first horizontal line 512 for which the vertical distance between a maximum Y value on that horizontal line and a minimum Y value on the third seam line 512d in the second set of seam lines exceeds the vertical threshold. It is determined that that is true for horizontal line 512g. As such, the immediately preceding horizontal line 512f is selected as a fourth seam line in the second set of seam lines. Repeating these steps, it is determined that there is no horizontal line 512 that exceeds the vertical threshold from the fourth seam line 512f in the second set of seam lines. As such, an uppermost horizontal line 512g is selected as a final seam line in the second set of seam lines.

[0051] Figure 5B provides an example scenario 500 associated with partitioning the three-dimensional design 504 shown in Figure 5A into a plurality of three-dimensional segments 506.0 - 506.7 based on both the three-dimensional design 504 and the dimensions of the surface material units 516 and generating a set of milling instructions for cutting a plurality of surface material units 516 into the plurality of three-dimensional segments 506.0 - 506.7, according to one embodiment. The interface 502 reflects how the plurality of surface material units 516 should be cut to manufacture the plurality of three-dimensional segments 506.0 - 506.7.

[0052] In this example, the cutting instructions would be sent to a CNC milling machine, which would cut eight surface material units, each having a material length of 120 inches and a material height of 30 inches, as shown. In one embodiment, the eight units would be numbered and arranged on the building surface as shown in Figure 5A.

[0053] Figure 5C provides an example scenario 550 associated with receiving modified design parameters, according to one embodiment. The example scenario 550 illustrates an interface 552, similar to interface 502 of Figure 5A. In the example scenario 550, the three-dimensional design 504 is not changed, but a horizontal offset has been changed from 0 inches to 10 inches. This change to the horizontal offset results in shifting the horizontal position of the plurality of three-dimensional segments 518.0 - 518.11 over the virtual building surface 508. In this example, the offset results in increasing the number of three-dimensional segments needed to cover the virtual building surface 508, as demonstrated by the vertical seam lines 570 and horizontal seam lines 572. The horizontal offset can be implemented in a variety of ways. For example, a leftmost first seam line can be offset by the horizontal offset, or the horizontal threshold for only the first iteration can be modified by the horizontal offset. It should be appreciated that a vertical offset can also be similarly implemented.

[0054] Figure 5D provides an example scenario 550 associated with partitioning the three-dimensional design 504 shown in Figure 5C into a modified plurality of three-dimensional segments 518.0 - 518.11 and generating a set of milling instructions for cutting a plurality of surface material units 516 into the plurality of three-dimensional segments 518.0 - 518.11, according to one embodiment. The interface 552 reflects how the plurality of surface material units 516 should be cut to manufacture the plurality of three-dimensional segments 518.0 - 518.11.

[0055] In this example, the cutting instructions would be sent to a CNC milling machine, which would cut six surface material units 516, each having a material length of 120 inches and a material height of 30 inches, as shown. In one embodiment, the six units would be numbered and arranged on the building surface as shown in Figure 5C.

[0056] Figure 6A provides an example scenario 600 associated with receiving dimensions and design parameters for a three-dimensional design 604 and partitioning the three-dimensional design into a plurality of three-dimensional segments 606.0 - 606.2, according to one embodiment. The example scenario 600 illustrates an interface 602. As shown in the example of Figure 6A, the interface 602 can provide a display of the three-dimensional design 604 over a plurality of three-dimensional segments 606.0 - 606.2 arranged over a virtual building surface 608.

[0057] In this example scenario 600, the virtual building surface 608 has a surface length of 96 inches and a surface height of 96 inches. The plurality of three-dimensional segments 606.0 - 606.2 represent a plurality of surface material units, each with a starting material length of 96 inches and a starting material height of 30 inches, that have been cut and arranged over virtual building surface 608.

[0058] The three-dimensional design comprises a first series of lines 610 extending generally in a first direction A (in this case, vertically) and a second series of lines 612 extending generally in a second direction B (in this case, horizontally), where the first direction is different from the second direction. In this example, the density of the first series of lines is 1 inch per line and the density of the second series of lines is 0.5 inches per line.

[0059] In this example, a sine wave function was applied to the design to modify the position of points on the first and second series of lines 610, 612. More specifically, a sine shape value of 2.5 was applied to the first and second series of lines to add sinusoidal curved lines to the design. This results in a three-dimensional design comprising a series of ripples or concentric circles 614.

[0060] In the example scenario 600, a left-most vertical line 610a is identified as a first seam line in a first set of seam lines. The construction module 110 automatically iterates through each vertical line 610, and analyzes whether the distance between a maximum X value on each vertical line 610 to a minimum X value on the first seam line 610a exceeds a horizontal threshold (e.g., 96 inches, the length of the surface material unit). In the example scenario 600, there is no vertical line for which the distance to the first seam line 510a exceeds the horizontal threshold. As such, a rightmost vertical edge 610b is selected as a final seam line in the first set of seam lines.

[0061] It should be appreciated that, for examples like this one, where the length of the building surface is less than or equal to the length of the surface material, the three-dimensional design need not include a series of vertical lines. Similarly, where the width of the building surface is less than or equal to the width of the surface material, the three-dimensional design need not include a series of horizontal lines.

[0062] Seam lines in the perpendicular direction can be selected in a similar manner. In the example scenario 600, a lowermost horizontal line 612a is selected as a first seam line in a second set of seam lines. The construction module 110 automatically iterates through each horizontal line 612 and determines whether the vertical distance between a maximum Y value on each horizontal line 612 and a minimum Y value on the first seam line 612 in the second set of seam lines exceeds a vertical threshold (e.g., 30 inches, the height of the surface material unit). In the example scenario 600, it is determined that the vertical distance between a maximum Y value on a horizontal line 612c and a minimum Y value on the first seam line 612a in the second set of seam lines exceeds the vertical threshold. As such, the immediately preceding horizontal line 612b is selected as a second seam line in the second set of seam lines. These steps are then repeated from the second seam line 612b in the second set of seam lines. It is determined that the vertical distance between a maximum Y value for a horizontal line 612e and a minimum Y value for the second seam line 612b in the second set of seam lines exceeds the vertical threshold. As such, the immediately preceding horizontal line 612d is selected as a third seam line in the second set of seam lines. These steps are repeated once again from the third seam line 612d in the second set of seam lines. Repeating these steps, it is determined that there is no horizontal line 612 that exceeds the vertical threshold from the third seam line 612d in the second set of seam lines. As such, an uppermost horizontal line 612f is selected as a final seam line in the second set of seam lines.

[0063] Figure 6B provides an example scenario 600 associated with partitioning the three-dimensional design 604 shown in Figure 6A into a plurality of three-dimensional segments 606.0 - 606.2 based on both the three-dimensional design 604 and the dimensions of the surface material units 616 and generating a set of milling instructions for cutting a plurality of surface material units 616 into the plurality of three-dimensional segments 606.0 - 606.2, according to one embodiment. The interface 602 reflects how the plurality of surface material units 616 should be cut to manufacture the plurality of three-dimensional segments 606.0 - 606.2.

[0064] In this example, the cutting instructions would be sent to a CNC milling machine, which would cut three surface material units, each having a material length of 96 inches and a material height of 30 inches, as shown. In one embodiment, the three units would be numbered and arranged on the building surface as shown in Figure 6A.

[0065] Figure 6C provides an example scenario 650 associated with receiving modified design parameters, according to one embodiment. The example scenario 650 illustrates an interface 652, similar to interface 602 of Figure 6A. In the example scenario 650, the three-dimensional design 604 is changed to comprise a first series of lines 662 extending generally in a first direction A (in this case, horizontally). Because the length of the building surface is less than or equal to the length of each of the surface material units, it is not necessary to include a second series of lines extending generally in a second direction, wherein the first direction is different from the second direction.

[0066] Seam lines can be selected as described above. For example, in the example scenario 650, a lowermost horizontal line 662a is selected as a first seam line in a first set of seam lines. The construction module 110 automatically iterates through each horizontal line 662 and determines whether the vertical distance between a maximum Y value on each horizontal line 662 and a minimum Y value on the first seam line 662 in the first set of seam lines exceeds a vertical threshold (e.g., 30 inches, the height of the surface material unit). In the example scenario 650, it is determined that the vertical distance between a maximum Y value on a horizontal line 662c and a minimum Y value on the first seam line 662a in the first set of seam lines exceeds the vertical threshold. As such, the immediately preceding horizontal line 662b is selected as a second seam line in the first set of seam lines. These steps are then repeated from the second seam line 662b in the first set of seam lines. It is determined that the vertical distance between a maximum Y value for a horizontal line 662e and a minimum Y value for the second seam line 662b in the first set of seam lines exceeds the vertical threshold. As such, the immediately preceding horizontal line 662d is selected as a third seam line in the first set of seam lines. These steps are repeated once again from the third seam line 662d in the first set of seam lines. Repeating these steps, it is determined that there is no horizontal line 662 that exceeds the vertical threshold from the third seam line 662d in the first set of seam lines. As such, an uppermost horizontal line 662f is selected as a final seam line in the first set of seam lines.

[0067] Figure 6D provides an example scenario 650 associated with partitioning the three-dimensional design 604 shown in Figure 6C into a modified plurality of three-dimensional segments 618.0 - 618.2 and generating a set of milling instructions for cutting a plurality of surface material units 616 into the plurality of three-dimensional segments 618.0 - 618.2, according to one embodiment. The interface 652 reflects how the plurality of surface material units 616 should be cut to manufacture the plurality of three-dimensional segments 618.0 - 618.2.

[0068] In this example, the cutting instructions would be sent to a CNC milling machine, which would cut three surface material units 616, each having a material length of 96 inches and a material height of 30 inches, as shown. In one embodiment, the three units would be numbered and arranged on the building surface as shown in Figure 6C.

[0069] Figure 7A provides an example scenario 700 associated with receiving dimensions and design parameters for a three-dimensional design 704 and partitioning the three-dimensional design into a plurality of three-dimensional segments 706.0 - 706.2, according to one embodiment. The example scenario 700 illustrates an interface 702. As shown in the example of Figure 7A, the interface 702 can provide a display of the three-dimensional design 704 over a plurality of three-dimensional segments 706.0 - 706.2 arranged over a virtual building surface 708.

[0070] In this example scenario 700, the virtual building surface 708 has a surface length of 96 inches and a surface height of 96 inches. The plurality of three-dimensional segments 706.0 - 706.2 represent a plurality of surface material units, each with a starting material length of 96 inches and a starting material height of 30 inches, that have been cut and arranged over virtual building surface 708.

[0071] In one embodiment, the three-dimensional design may comprise a first series of lines 710 extending generally in a first direction A (in this case, vertically) and a second series of lines 712 extending generally in a second direction B (in this case, horizontally), where the first direction is different from the second direction. In this example, the density of the first series of lines is 1 inch per line and the density of the second series of lines is 0.5 inches per line.

[0072] With continued reference to Figure 7A and also to Figure 7C, in this example, the three-dimensional design further includes an image of a moose 714 as additional image element. The attraction intensity for the first series of lines, which defines the intensity of the attraction between points on the first series of lines and dark (or light) regions of the image element, is set to 1; and the attraction intensity for the second series of lines, which defines the intensity of the attraction between points on the second series of lines and dark (or light) regions of the image element, is set to 1.

[0073] In the example scenario 700, a left-most vertical line 710a is identified as a first seam line in a first set of seam lines. The construction module 110 automatically iterates through each vertical line 710, and analyzes whether the distance between a maximum X value on each vertical line 710 to a minimum X value on the first seam line 710a exceeds a horizontal threshold (e.g., 96 inches, the length of the surface material unit). In the example scenario 700, there is no vertical line for which the distance to the first seam line 710a exceeds the horizontal threshold. As such, a rightmost vertical edge 710b is selected as a final seam line in the first set of seam lines.

[0074] Seam lines in the perpendicular direction can be selected in a similar manner. In the example scenario 700, a lowermost horizontal line 712a is selected as a first seam line in a second set of seam lines. The construction module 110 automatically iterates through each horizontal line 712 and determines whether the vertical distance between a maximum Y value on each horizontal line 712 and a minimum Y value on the first seam line 712 in the second set of seam lines exceeds a vertical threshold (e.g., 30 inches, the height of the surface material unit). In the example scenario 700, it is determined that the vertical distance between a maximum Y value on a horizontal line 712c and a minimum Y value on the first seam line 712a in the second set of seam lines exceeds the vertical threshold. As such, the immediately preceding horizontal line 712b is selected as a second seam line in the second set of seam lines. These steps are then repeated from the second seam line 712b in the second set of seam lines. It is determined that the vertical distance between a maximum Y value for a horizontal line 712e and a minimum Y value for the second seam line 712b in the second set of seam lines exceeds the vertical threshold. As such, the immediately preceding horizontal line 712d is selected as a third seam line in the second set of seam lines. These steps are repeated once again from the third seam line 712d in the second set of seam lines. Each horizontal line 712 from the third seam line 712d is analyzed to find the first horizontal line 712 for which the vertical distance between a maximum Y value on that horizontal line and a minimum Y value on the third seam line 712d in the second set of seam lines exceeds the vertical threshold. It is determined that there is no horizontal line 712 that exceeds the vertical threshold from the third seam line 712d in the second set of seam lines. As such, an uppermost horizontal line 712f is selected as a final seam line in the second set of seam lines.

[0075] Figure 7B provides an example scenario 700 associated with partitioning the three-dimensional design 704 shown in Figure 7A into a plurality of three-dimensional segments 706.0 - 706.2 based on both the three-dimensional design 704 and the dimensions of the surface material units 716 and generating a set of milling instructions for cutting a plurality of surface material units 716 into the plurality of three-dimensional segments 706.0 - 706.2, according to one embodiment. The interface 702 reflects how the plurality of surface material units 716 should be cut to manufacture the plurality of three-dimensional segments 706.0 - 706.2.

[0076] In this example, the cutting instructions would be sent to a CNC milling machine, which would cut three surface material units, each having a material length of 96 inches and a material height of 30 inches, as shown. In one embodiment, the three units would be numbered and arranged on the building surface as shown in Figure 7A.

[0077] Figure 8 illustrates a method 800 associated with manufacturing a three-dimensional building surface, according to the invention.

[0078] At block 802, the method 800 receives dimensions of a building surface, including a surface length and a surface height. At block 804, the method 800 receives dimensions of a surface material unit, including a material length and a material height. At block 806, the method 800 receives design parameters, which define a three-dimensional design over the building surface. At block 808, the method 800 partitions the three-dimensional design into a plurality of three-dimensional segments based on both the three-dimensional design and the dimensions of the surface material. At block 810, the method 800 generates a set of milling instructions for cutting a plurality of surface material units into the plurality of three-dimensional segments.Construction System - Example Implementation

[0079] Figure 9 illustrates a network diagram of an example system 900 that can be used in various scenarios, in accordance with one embodiment. The system 900 can include one or more user devices 910, one or more CNC systems 920, and a network 930. For purposes of illustration, the embodiment of the system 900, shown by Figure 9, includes a single user device 910 and a single CNC system 920. However, in other embodiments, the system 900 can include more user devices 910, CNC systems 920, or both.

[0080] The exemplary user device 910 may comprise one or more computing devices (or systems) that can receive input from a user and transmit and receive data via the network 930. In one embodiment, the user device 910 is a conventional computer system executing, for example, a Microsoft Windows compatible operating system (OS), Apple OS X, or a Linux distribution. In another embodiment, the user device 910 can be a computing device or a device having computer functionality, such as a smart-phone, a tablet, a personal digital assistant (PDA), a mobile telephone, a laptop computer, a wearable device (e.g., a pair of glasses, a watch, a bracelet, etc.), a camera, an appliance, etc. The exemplary user device 910 is configured to communicate via the network 930.

[0081] In one embodiment, the user device 910 can include a construction module 914. In one embodiment, the construction module 914 can be implemented as the construction module 110 of Figure 1. In some instances, the construction module 914 (or at least a portion it, for example, the cutting module 150) can be included or implemented in the CNC system 920.

[0082] The user device 910 can be configured to communicate with the CNC system 920 via the network 930, which may comprise any combination of local area or wide area networks, using wired or wireless communication systems.

[0083] In one embodiment, the network 930 may use standard communications technologies and protocols. Thus, the network 930 can include links using technologies such as Ethernet, 802.11, worldwide interoperability for microwave access (WiMAX), 3G, 4G, CDMA, GSM, LTE, digital subscriber line (DSL), etc. Similarly, the networking protocols used on the network 930 can include multiprotocol label switching (MPLS), transmission control protocol / Internet protocol (TCP / IP), User Datagram Protocol (UDP), hypertext transport protocol (HTTP), simple mail transfer protocol (SMTP), file transfer protocol (FTP), and the like. The data exchanged over the network 930 can be represented using technologies or formats including hypertext markup language (HTML) and extensible markup language (XML). In addition, all or some links can be encrypted using conventional encryption technologies such as secure sockets layer (SSL), transport layer security (TLS), and Internet Protocol security (IPsec).

[0084] In one embodiment, the CNC system 920 can include one or more CNC controllers 922 that process instructions to control the CNC system 920. In another embodiment, the instructions can be communicated from the user device 910 to the CNC system 920 using the network 930.Hardware Implementation

[0085] The described methods can be implemented by a wide variety of machine and computer system architectures and in a wide variety of network and computing environments. Figure 10 illustrates a computer system 1000 according to the invention that can be used to implement one or more of the described embodiments. The computer system 1000 includes sets of instructions for causing the computer system 1000 to perform the described processes. The computer system 1000 may be connected (e.g., networked) to other machines. In a networked deployment, the computer system 1000 may operate in the capacity of a server machine or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. In one embodiment, the computer system 1000 may be the user device 910, the CAD system 920, or a combination or component of these systems.

[0086] The computer system 1000 includes a processor 1002, and may include a cache 1004, and one or more executable modules and drivers, stored on a computer-readable medium, directed to the described processes. Additionally, the computer system 1000 may include a high performance input / output (I / O) bus 1006 and a standard I / O bus 1008. A host bridge 1010 may couple processor 1002 to high performance I / O bus 1006, whereas I / O bus bridge 1012 couples the two buses 1006 and 1008 to each other. In one embodiment, a system memory 1014 and one or more network interfaces 1016 couple to high performance I / O bus 1006. The computer system 1000 may further include video memory and a display device coupled to the video memory (not shown). In one embodiment, mass storage 1018 and I / O ports 1020 may couple to the standard I / O bus 1008. The computer system 1000 may optionally include a keyboard and pointing device, a display device, or other input / output devices (not shown) coupled to the standard I / O bus 1008. Collectively, these elements are intended to represent a broad category of computer hardware systems, including but not limited to computer systems based on the x86-compatible processors manufactured by Intel Corporation of Santa Clara, California, and the x86-compatible processors manufactured by Advanced Micro Devices (AMD), Inc., of Sunnyvale, California, as well as any other suitable processor.

[0087] An operating system may manage and control the operation of the computer system 1000, including the input and output of data to and from software applications (not shown). The operating system may provide an interface between the software applications being executed on the system and the hardware components of the system. Any suitable operating system may be used, such as the LINUX Operating System, the Apple Macintosh Operating System, available from Apple Computer Inc. of Cupertino, California, UNIX operating systems, Microsoft ®< Windows ®< operating systems, BSD operating systems, and the like. Other implementations are possible.

[0088] The elements of the computer system 1000 are described in greater detail below. In particular, the exemplary network interface 1016 provides communication between the computer system 1000 and any of a wide range of networks, such as an Ethernet (e.g., IEEE 802.3) network, a backplane, etc. The exemplary mass storage 1018 provides permanent storage for the data and programming instructions to perform the above-described processes and features implemented by the respective computing systems identified above, whereas the system memory 1014 (e.g., DRAM) provides temporary storage for the data and programming instructions when executed by the processor 1002. The I / O ports 1020 may be one or more serial or parallel communication ports, which provide communication between additional peripheral devices that may be coupled to the computer system 1000.

[0089] The computer system 1000 may include a variety of system architectures, and various components of the computer system 1000 may be rearranged. For example, the cache 1004 may be on-chip with processor 1002. Alternatively, the cache 1004 and the processor 1002 may be packed together as a "processor module," with processor 1002 being referred to as the "processor core." Furthermore, certain embodiments of the invention may neither require nor include all of the above components. For example, peripheral devices coupled to the standard I / O bus 1008 may couple to the high performance I / O bus 1006. In addition, in some embodiments, only a single bus may exist, with the components of the computer system 1000 being coupled to the single bus. Moreover, the computer system 1000 may include additional components, such as additional processors, storage devices, or memories.

[0090] In one implementation, the described processes are implemented as a series of executable modules run by the computer system 1000, individually or collectively in a distributed computing environment. The foregoing modules may be realized by hardware, executable modules stored on a computer-readable medium (or machine-readable medium), or a combination of both. For example, the modules may comprise a plurality or series of instructions to be executed by a processor in a hardware system, such as the processor 1002. Initially, the series of instructions is stored on a storage device, namely the mass storage 1018. In some embodiments, the series of instructions need not be stored locally, and could be received from a remote storage device, such as a server on a network, via the network interface 1016. The instructions are copied from the storage device, such as the mass storage 1018, into the system memory 1014 and then accessed and executed by the processor 1002. In various implementations, a module or modules can be executed by a processor or multiple processors in one or multiple locations, such as multiple servers in a parallel processing environment.

[0091] Examples of computer-readable media include, but are not limited to, recordable type media such as volatile and non-volatile memory devices; solid state memories; floppy and other removable disks; hard disk drives; magnetic media; optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks (DVDs)); other similar non-transitory (or transitory), tangible (or non-tangible) storage medium; or any type of medium suitable for storing, encoding, or carrying a series of instructions for execution by the computer system 800 to perform any one or more of the described processes.

Claims

1. A computer-implemented method (800) comprising: receiving (802), by a computing system (1000), dimensions of a two-dimensional building surface area, including a surface length and a surface height; receiving, by the computing system, dimensions of a surface material unit, including a material length and a material height; generating (810), by the computing system (1000), a set of milling instructions for cutting a plurality of surface material units (516, 616, 716) into a plurality of three-dimensional segments (506, 518, 606, 618, 706); characterized by: receiving (806), by the computing system (1000), design parameters defining a three-dimensional surface design over the two-dimensional building surface area; and partitioning (808), by the computing system (1000), the three-dimensional surface design into the plurality of three-dimensional segments (506, 518, 606, 618, 706) based on both the three-dimensional surface design and the dimensions of a surface material unit (516, 616, 716), wherein the three-dimensional surface design comprises a first series of lines extending generally in a first direction; wherein partitioning further includes the steps of: dividing each line in the first series of lines into a set of points; and iteratively setting lines in the first series of lines as seam lines if a horizontal distance between any point on a next line in the first series of lines and any point on a latest seam line exceeds a first dimensional threshold, wherein the first dimensional threshold is determined based on the material length; and wherein the plurality of three-dimensional segments (506, 518, 606, 618, 706) are configured to be assembled to provide the three-dimensional surface design over the two-dimensional building surface area.

2. The computer-implemented method (800) of claim 1, wherein the three-dimensional surface design is a parametric design.

3. The computer-implemented method (800) of claim 2, wherein the three-dimensional surface design is non-repetitive and has an area at least as large as an area of the two-dimensional building surface area, and wherein the area of the two-dimensional building surface area is at least 50 square meters.

4. The computer-implemented method of claim 1, wherein the surface length is less than or equal to the material length, and wherein the partitioning the three-dimensional surface design comprises: dividing each line in the first series of lines into a set of points; and iteratively setting lines in the first series of lines as seam lines if a vertical distance between any point on a next line in the first series of lines and any point on a latest seam line exceeds a first dimensional threshold, wherein the first dimensional threshold is determined based on the material height.

5. The computer-implemented method (800) of claim 1, wherein the three-dimensional design further comprises a second series of lines extending generally in a second direction; wherein the first direction is different from the second direction.

6. The computer-implemented method (800) of claim 5, wherein the partitioning the three-dimensional surface design comprises: dividing each line in the first and second series of lines into a set of points; iteratively setting lines in the first series of lines as seam lines in a first set of seam lines if a horizontal distance between any point on a next line in the first series of lines and any point on a latest seam line in the first set of seam lines exceeds a first dimensional threshold, wherein the first dimensional threshold is determined based on the material length; and iteratively setting lines in the second series of lines as seam lines in a second set of seam lines if a vertical distance between any point on a next line in the second series of lines and any point on a latest seam line in the second set of seam lines exceeds a second dimensional threshold, wherein the second dimensional threshold is determined based on the material height.

7. The computer-implemented method (800) of claim 5, wherein the lines in the first series of lines and the lines in the second series of lines are curved.

8. The computer-implemented method (800) of claim 5, wherein the three-dimensional surface design further comprises a contoured surface.

9. The computer-implemented method (800) of claim 5, further comprising: receiving, by the computing system (1000), modified design parameters for a modified three-dimensional surface design; adjusting, by the computing system (1000), one or a combination of the first series of lines and the second series of lines based on the modified design parameters; and repartitioning, by the computing system (1000), the modified three-dimensional surface design into a modified plurality of segments (506, 518, 606, 618, 706) based on the modified three-dimensional surface design and the dimensions of the surface material unit (516, 616, 716).

10. The computer-implemented method (800) of claim 1, further comprising: cutting the plurality of surface material units (516, 616, 716) into the plurality of three-dimensional segments (506, 518, 606, 618, 706).

11. The computer-implemented method (800) of claim 1, further comprising: generating, by the computing system (1000), a set of instructions for assembling the plurality of three-dimensional segments (506, 518, 606, 618, 706) onto the building surface to create the three-dimensional surface design over the building surface.

12. A system (1000) comprising: at least one processor (1002); and a memory (1014) storing instructions that, when executed by the at least one processor (1002), cause the system (1000) to perform a method comprising: receiving dimensions of a two-dimensional building surface area, including a surface length and a surface height; receiving dimensions of a surface material unit (516, 616, 716), including a material length and a material height; and generating a set of milling instructions for cutting a plurality of surface material units (516, 616, 716) into a plurality of three-dimensional segments (506, 518, 606, 618, 706) characterized by: receiving (806), by the computing system (1000), design parameters defining a three-dimensional surface design over the two-dimensional building surface area; and partitioning (808), by the computing system (1000), the three-dimensional surface design into the plurality of three-dimensional segments (506, 518, 606, 618, 706) based on both the three-dimensional surface design and the dimensions of a surface material unit (516, 616, 716) wherein the three-dimensional surface design comprises a first series of lines extending generally in a first direction; wherein the computer is configured to divide each line in the first series of lines into a set of points; and iteratively set lines in the first series of lines as seam lines if a horizontal distance between any point on a next line in the first series of lines and any point on a latest seam line exceeds a first dimensional threshold, wherein the first dimensional threshold is determined based on the material length; and wherein the plurality of three-dimensional segments (506, 518, 606, 618, 706) are configured to be assembled to provide the three-dimensional surface design over the two-dimensional building surface area.

13. A non-transitory computer-readable storage medium (1018) including instructions that, when executed by at least one processor (1002) of a computing system (1000), cause the computing system (1000) to perform a method comprising: receiving dimensions of a two-dimensional building surface area, including a surface length and a surface height; receiving dimensions of a surface material unit (516, 616, 716), including a material length and a material height; and generating a set of milling instructions for cutting a plurality of surface material units (516, 616, 716) into a plurality of three-dimensional segments (506, 518, 606, 618, 706) characterized by: receiving (806), by the computing system (1000), design parameters defining a three-dimensional surface design over the two-dimensional building surface area; and partitioning (808), by the computing system (1000), the three-dimensional surface design into the plurality of three-dimensional segments (506, 518, 606, 618, 706) based on both the three-dimensional surface design and the dimensions of a surface material unit (516, 616, 716), wherein the three-dimensional surface design comprises a first series of lines extending generally in a first direction; wherein the computer is configured to divide each line in the first series of lines into a set of points; and iteratively set lines in the first series of lines as seam lines if a horizontal distance between any point on a next line in the first series of lines and any point on a latest seam line exceeds a first dimensional threshold, wherein the first dimensional threshold is determined based on the material length; and wherein the plurality of three-dimensional segments (506, 518, 606, 618, 706) are configured to be assembled to provide the three-dimensional surface design over the two-dimensional building surface area.