Dynamic generation of custom color selections

A computer system for dynamic generation of custom color selections receives from a user an indication of a target color. The computer system also identifies a location of the target color within a mathematically-defined color space. The computer system identifies a location of a second color within the mathematically-defined color space. Additionally, the computer system generates a first golden triangle within the mathematically-defined color space. The location of the target color comprises a first vertex of the first golden triangle. The location of the second color comprises a second vertex of the first golden triangle. A location of a third color comprises a third vertex of the first golden triangle. The computer system then displays on a user interface an indication of the target color, the second color, and the third color.

TECHNICAL FIELD

The present invention relates to computer-implemented methods and systems for utilizing technological improvements to aid in identifying desired coat colors.

BACKGROUND OF THE INVENTION

Modern coatings provide several important functions in industry and society. Coatings can protect a coated material from corrosion, such as rust. Coatings can also provide an aesthetic function by providing a particular color and/or spatial appearance to an object. For example, most automobiles are coated using paints and various other coatings in order to protect the metal body of the automobile from the elements and also to provide aesthetic visual effects.

In view of the wide-ranging uses for different coatings, it is often necessary for customers to identify a desired coating color. For instance, it might be necessary to identify one or more paints for a bedroom or one or more paints for a garden shed. Currently this identification process can be overwhelming due to the seemingly countless coatings variations that are available. In view of the enormous selection of available options, many consumers have a challenging time identifying color schemes that will together provide a pleasing aesthetic.

Similarly, the current methods of identifying coating colors provide several distinctly technical challenges. Many modern coating database have tens of thousands of possible coating colors available. It can be computationally intensive to individually analyze every available coating color with respect to every other color within the database. Further, it is technically challenging to provide interesting and useful combinations of colors that are appealing to consumers. One of skill in the art will appreciate that computer-based technology does not have an innate appreciation for aesthetic effect. Accordingly, there are several deficiencies within the art that can be benefited by technical advancements.

BRIEF SUMMARY OF THE INVENTION

The present invention comprises a computer system for dynamic generation of custom color selections. The computer system comprises one or more processors and one or more computer-readable media having stored thereon executable instructions that when executed by the one or more processors configure the computer system to perform various acts for dynamic generation of custom color selections. The computer system receives from a user an indication of a target color. The computer system also identifies a location of the target color within a mathematically-defined color space. The computer system identifies a location of a second color within the mathematically-defined color space. Additionally, the computer system generates a first golden triangle within the mathematically-defined color space. The location of the target color comprises a first vertex of the first golden triangle. The location of the second color comprises a second vertex of the first golden triangle. A location of a third color comprises a third vertex of the first golden triangle. The computer system then displays on a user interface an indication of the target color, the second color, and the third color.

The present invention also comprises a method, executed on one or more processors, for dynamic generation of custom color selections. The method comprises receiving from a user an indication of a target color. Additionally, the method comprises identifying a location of the target color within a mathematically-defined color space. The method also comprises identifying a location of a second color within the mathematically-defined color space. In addition, the method comprises generating a first golden triangle within the mathematically-defined color space. The location of the target color comprises a first vertex of the first golden triangle. The location of the second color comprises a second vertex of the first golden triangle. A location of a third color comprises a third vertex of the first golden triangle. Further, the method comprises displaying on a user interface an indication of the target color, the second color, and the third color.

The present invention further comprises a computer-readable media comprising one or more physical computer-readable storage media having stored thereon computer-executable instructions that, when executed at a processor, cause a computer system to perform a method for dynamic generation of custom color selections. The method comprises receiving from a user an indication of a target color. Additionally, the method comprises identifying a location of the target color within a mathematically-defined color space. The method also comprises identifying a location of a second color within the mathematically-defined color space. In addition, the method comprises generating a first golden triangle within the mathematically-defined color space. The location of the target color comprises a first vertex of the first golden triangle. The location of the second color comprises a second vertex of the first golden triangle. A location of a third color comprises a third vertex of the first golden triangle. Further, the method comprises displaying on a user interface an indication of the target color, the second color, and the third color.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention extends to computer systems, computer-implemented methods, computer-readable media with instructions, and devices for dynamic generation of custom color selections. For example, in accordance with the present disclosure a computer system may receive an indication of a target color from a user. The indication of the target color may be received in a variety of different forms. For example, the user may provide a picture or sample of an object that the user wishes to match with the target color. The picture or sample of the object may be measured using a spectrophotometer to identify a target color associated with the picture or sample of the object. Alternatively, the user may provide information that selects a particular color by entering a color name, color code, or selecting a displayed color. One will appreciate that there are a number of different ways that a user can provide an indication of a target color to the computer system. Unless stated otherwise, the present invention is not limited to a particular means for receiving the indication of the target color from the user.

Once the computer system receives the indication of the target color, the computer system may map the target color to a known color within a color database. For example, the indication of the target color may comprise a swatch of fabric from a chair. An exact color match to the swatch of fabric may not be available as a coating. Accordingly, the computer system identifies within the color database, a nearest matching color to the swatch of fabric that is associated with the indication of the target color. Accordingly, the computer system maps the target color to a known color, that is available, within the color database. As used herein a “nearest match” may be determined using a number of different conventional color matching methods. For instance, the nearest/closest match is a color within a color database with the smallest distance in the mathematically-defined color space to the location of the searched color. One will appreciate that in some cases an exact match to the indication of the target color may be available within the color database. In any case, as used herein, the “target color” comprises the known color from the color database, whereas, the “indication of the target color” may be associated with a slightly different particular color.

Once the target color has been identified, the computer system analyzes the colors within a mathematically-defined color space. The computer system proposes one or more accompanying colors that may be aesthetically pleasing when paired within the target color. The proposed one or more accompanying colors may be identified by calculating a golden ratio triangle within the mathematically-defined color space and proposing colors from the color database that are most closely associated with the vertices of the golden ratio triangle. For instance, the colors from the color database that are most closely associated with the vertices of the golden ratio triangle may comprise the colors within a color database that have the smallest distance in the mathematically-defined color space to the vertices of the golden ratio triangle. Various additional or alternative methods may be used to propose different or additional accompanying colors.

Turning now to the Figures,FIG.1depicts a schematic diagram of a system executing a color selection generation software application. The depicted system comprises a computer system100for dynamic generation of custom color selections. The computer system100comprises one or more processors130and one or more computer-readable media140that have stored thereon executable instructions that when executed by the one or more processors configure the computer system100to perform various acts. The one or more processors130and the one or more computer-readable media140may comprise local computer hardware and/or cloud-based computer hardware. The computer system100executes the color selection generation software application120using the one or more processor(s)130that execute computer executable instructions stored on the one or more computer-readable media140.

The color selection generation software application120is also in communication with an I/O interface150. The I/O interface150may be in communication with a keyboard, a mouse, a digital display, a network communication interface, Bluetooth radios, GPS radios, and various other conventional computer I/O interfaces. The computer system100is programmed to receive, through the I/O interface150, an indication of a target color110.

The color selection generation software application120also comprises a color selection generator160. The color selection generator160comprises various modules for generating one or more proposed accompanying colors that may be aesthetically pleasing when paired within the target color110. The modules include a golden ratio module162, an opposite color module164, a monochromatic color module166, and a neighbor color module168. As used herein, a “module” comprises computer executable code and/or computer hardware that performs a particular function. One of skill in the art will appreciate that the distinction between different modules is at least in part arbitrary and that modules may be otherwise combined and divided and still remain within the scope of the present disclosure. As such, the description of a component as being a “module” is provided only for the sake of clarity and explanation and should not be interpreted to indicate that any particular structure of computer executable code and/or computer hardware is required, unless expressly stated otherwise. In this description, the terms “component”, “agent”, “manager”, “service”, “engine”, “virtual machine” or the like may also similarly be used.

FIG.2depicts a user interface200for a color selection generation software application120. As the color selection generator160generates proposed accompanying colors, the user interface200displays the various colors. For example, the user interface200may display the target color110along with various different categories220(a-c) of accompanying colors210. In the depicted example, the different categories220(a-c) include accompanying colors that fall within an intensity category220a, a similar category220b, and a combinations category220c. One will appreciate, however, that the user interface200and these particular categories220(a-c) are provided for the sake of example and explanation and do not limit the invention unless expressly stated otherwise.

FIG.3depicts a target color110and a location of the target color310and potential proposed colors within a mathematically-defined color space300. In the depicted example, the mathematically-defined color space300may comprise the CIELAB color space. The CIELAB color spaces expresses color as three values: L* for lightness and a* and b* for color. When plotted within a two-dimensional cartesian coordinate system, the x-axis and the y-axis are represented by a* and b* respectively. In practice, however, the CIELAB color space is three-dimensional with the z-axis being represented by L* (lightness). Hue is measured as an angle within the a*-b* plane. Chroma is a measurement of a ray extending from the axis of the a*-b* plane. Saturation is measured as an angle in the a*-L* plane. In each example presented herein, the CIELAB color space may be utilized, however, the present invention is not limited to the CIELAB color space and one of skill in the art would appreciate its application across many mathematically-defined color spaces.

After receiving from a user the indication of the target color110, the color selection generation software application120communicates the target color110to the golden ratio module162. The golden ratio module162identifies a location of the target color310within a mathematically-defined color space300. The location of the target color310may comprise L*, a*, b* values within the CIELAB color space. The other color locations described herein may similar be calculated within the CIELAB color space.

The golden ratio module162then identifies a location of a second color320within the mathematically-defined color space300. For example, the opposite color module164may identify the location of the second color320within the mathematically-defined color space300by calculating a set of second-color coordinates that are inverse to a set of coordinates associated with the location of the target color310. For instance, the mathematically-defined color space300may be set upon a cartesian coordinate system, such as within the CIELAB color space. Within such a mathematically-defined color space300, the location of the target color310may be designated as (+a*, +b*). By calculating the inverse of the set of coordinates associated with the target color, the opposite color module164may identify the location of the second color320as being at (−a*, −b*). One will appreciate that alternative means may be used for calculating an inverted position on a variety of different coordinate systems and still remain within the scope of the present invention. For instance, the generation of inverse colors in the RGB space is done by subtracting the RGB values from 255. For instance, the inverse of RGB [200, 200, 10] results in RGB [50, 50 245]. This can also be exemplified with an RGB color wheel.

Once the location of the second color320is calculated, the golden ratio module162generates a first golden triangle340within the mathematically-defined color space300. As used herein, a “golden triangle” comprises an isosceles triangle having vertex angles of 36°, 72° and 72° or alternatively an isosceles triangle having vertex angles of 36°, 36° and 108°. As depicted inFIG.3, the location of the target color310comprises a first vertex of the first golden triangle340, the location of the second color320comprises a second vertex of the first golden triangle340, and a location of a third color330comprises a third vertex of the first golden triangle350.

Once the location of the second color320and the location of the third color330are identified, the color selection generator160identifies respective colors within a color database that are closest to the location of the second color320and the location of the third color330. The color database may be stored within the one or more computer-readable media140. The color selection generator160may utilize a distance calculation to identify a second color within the color database that is closest to the location of the second color320and to identify a third color within the color database that is closest to the location of the third color330. The computer system100then displays on a user interface200an indication of the target color110, the second color, and the third color.

Additionally, the golden ratio module162may generate a second golden triangle400within the mathematically-defined color space. For example,FIG.4depicts the location target color310and locations of potential proposed colors320,330,410, and430within the mathematically-defined color space300. In the case of the second golden triangle400, the golden ratio module162utilizes the location of the target color310and the location of the third color330, which was previously derived using the golden triangle ratios, in order to generate a location of a fourth color410within the mathematically-defined color space300. As depicted, the location of the target color310comprises a first vertex of the second golden triangle400, the location of the third color330comprises a second vertex of the second golden triangle400, and a location of a fourth color410comprises a third vertex of the second golden triangle400. Once the locations of the colors310,330,410have been identified and mapped to colors within the color database, the computer system100displays on the user interface an indication of the target color, the third color, and the fourth color.

FIG.4further depicts that the golden ratio module162is capable of continuing to generate a third golden triangle420utilizing the location of the target color310and the location of the fourth color410to generate a location of a fifth color430. One will appreciate that the golden ratio module162may continue this process of generating new golden triangles utilizing the location of the target color310and sequentially generated new color locations (e.g.,330,410,430, etc.). The golden ratio module162may continue generating new golden ration triangles until the newly generated color locations no longer associate with new colors within the color database but instead are closer to the target color or previously identified potential accompanying colors than to new colors. Additionally or alternatively, the golden ratio module162may continue generating new golden ration triangles until the newly generated color locations are no longer visually distinguishable from the target color or previously identified potential accompanying colors than to other colors. As indicated above, the location of the target color310may be used in the generation of every golden triangle in order to ensure that the proposed colors maintain a relationship with the user provided target color110.

FIG.5depicts a target color110and potential proposed colors within a mathematically-defined color space300. In contrast toFIG.4, the golden triangles500,520are generated on an outward direction from the first golden triangle340. Similar to the above described methods, the golden ratio module162can identify a new potential accompanying color based upon the location for the sixth color510. Additionally, the golden ratio module162identifies that the location of the seventh color530is outside the mathematically-defined color space300. Accordingly, the golden ratio module162determines that the location of the seventh color530is not mappable to a color within the color database. The golden ratio module162then prevents additional golden triangles from being created.

When generating golden triangles340,400,420within the mathematically-defined color space300(seeFIG.4), the golden ratio module162may utilize the concept of the Golden Ratio as a natural way to pattern and proportion aesthetically pleasing combinations of proposed colors. The Golden Ratio, represented by Phi or the Phi Ratio, is an irrational number, Øx≈1.618. The golden ratio module162uses the Golden Ratio to suggest computer-generated color palette(s) (“CGCP”) associated to a user provided color. As an optional, or potentially forced, recommendation, the algorithms utilize the user's provided color to present computer-generated palettes based on the physical layout (1 dimension through many dimensions) of the mathematically-defined color space300. The user can select ‘more options’ as much as needed to cascade through a number of different palette options by changing either the palette selection criteria or the mathematically-defined color space300.

The golden ratio module162may utilize a variety of ways to calculate the selection criteria. Most simplistically, the RGB (or CIELAB) of the customer's selected color can be modified by the golden ratio number, as depicted below in Table 1, which shows computer-generated color palette(s) (e.g., CGCP 1, CGCP 2, CGCP 3, CGCP 4) within respective columns.

TABLE 1Customer'sselectionCGCP 1CGCP 2CGCP 3CGCP 4RR/(Øx)R/(Øx)RRGG/(Øx)GG/(Øx)GBB/(Øx)BBB/(Øx)
Where x is a scalar that can be chosen by the computer based on history (bigger scalar for customers who selected more widely-varied colors) or by customer input like a scale bar (e.g. small color palette=1, big color palette=3) and Ø represents the golden ratio of

The computer system100may additionally or alternatively, use a spiral method for selecting additional colors. For example,FIG.6depicts a golden logarithmic spiral600intersecting with locations of proposed colors610(a-h) within a mathematically-defined color space300. By defining the physical position of the layout of the mathematically-defined color space300, the computer system100can select the RGB/CIELAB of the color corresponding to another identified physical position as indicated by the equations below:
A=ØX*D,
where D is one dimension of the physical layout (e.g. height).

H=Ay⁢⁢∅X
where H is the computer-identified height dimension.
W=√{square root over (A*yØX)}
where W is the computer identified width dimension. Based on the newly calculated H and W, the computer system100can identify the color in that position and report it as the computer-generated color palette color. The computer system may also add more colors by varying the scalars, x and y. Also, the computer system can shift the layout of the palette by ±1 (or other scalar) on the height, the width, or any other dimension.

The computer system100may additionally or alternatively use lines as a selection criterion. For example, the computer system100may select color locations positioned consecutively ±yØxaway on the mathematically-defined color space300in single direction. The computer system100may also additionally or alternatively use triangles and tetrahedrons to select colors. The customer-selected color may be supported by another (1, 2, or 3) known harmonic's position in the mathematically-defined color space300. The golden ratio is used to bisect the hypotenuse at a new point, which is the computer-selected color position. Similar to triangles and tetrahedrons, the computer system100can follow pentagons and pentagrams using circles of customer-selected colors, harmonics, or other computer-generated color positions to bisect and relate other physical layout positions in multi-dimensions. In at least the above described configurations, the computer system100calculates where the computer-selected color position will not exist in the physical (or digital) layout. Therefore, the calculation is bounded by the degrees of freedom in the original physical layout and may be scaled to it.

Turning now toFIG.7A,FIG.7Adepicts a location of the target color310and potential proposed colors within a mathematically-defined color space300. The monochromatic color module166can generate a subset of neighbor colors700from the color database of available colors by selecting colors within the color database that are within positive fifteen degrees710aand negative fifteen degrees710bof hue variance from location of the target color310within the mathematically-defined color space300. As an example, within the CIELAB color space, hue is measured as an angle within the a*, b* plane. As such, hue variance from the location of the target color310may comprise an angular range from the target color310within the CIELAB color space. Nevertheless, other values may be used to a similar or different effect depending upon the desired outcome.

The monochromatic color module166provides a technical and computational advantage to the computer system100by creating a “pie slice” within the mathematically-defined color space300. By reducing the total possible set of colors to only those that have locations within the “pie slice,” the monochromatic color module166is capable of much more efficient and fast calculations due to the lower overheard of not requiring a search through the entire mathematically-defined color space300and/or the entire color database. Additionally, by creating the subset of neighbor colors700within the “pie slice” the monochromatic color module166creates a subset of colors that are capable of analysis using simple and efficient distance calculations. In some uses, however, the monochromatic color module166is not required to generate the subset of neighbor colors, but instead, operates within the entire mathematically-defined color space300.

The monochromatic color module166can also identify a subset of hue-similar colors within the subset of neighbor colors. The subset of hue-similar colors comprise colors that are within a particular threshold of hue difference from the target color110. For example,FIG.7Bdepicts an expanded portion of the mathematically-defined color space300ofFIG.7A. As depicted, the location of the target color310is on a common hue angle with various of colors730(a-d) that fall within the subset of hue-similar colors. The particular threshold of hue difference may comprise colors that are within an absolute value of ten degrees of a hue angle from the target color110within the mathematically-defined color space300, such as the CIELAB color space. Nevertheless, other values may be used to a similar or different effect depending upon the desired outcome. In some uses, however, the monochromatic color module166is not required to generate the subset of hue-similar colors from within the subset of neighbor colors, but instead, operates within the entire mathematically-defined color space300as it maps to colors available within the color database.

The monochromatic color module166can also identify a subset of visually-similar colors within the subset of hue-similar colors. The subset of visually-similar colors comprise colors that are within a particular threshold of delta E from the target color. One of skill in the art will appreciate that delta E (ΔE) comprises a distance metric defined by the International Commission on Illumination (CIE). Delta E can be calculated using various known formulas that vary depending upon the particular mathematically-defined color space300that is being utilized. For instance, the 1976 for delta E is expressed as:
ΔE*ab=√{square root over ((L*2−L*1)2+(a*2−a*1)2+(b*2−b*1)2)}
where ΔE*ab˜2.3 corresponds to a just noticeable difference in color perception. Additionally, one of skill in the art will appreciate that modern equations for ΔE are much more complicated to address non-uniformities within various mathematically-defined color spaces300. Nevertheless, for the sake of clarity and explanation, the 1976 equation is presented herein.

Using these formulas, the monochromatic color module166can identify a subset of visually-similar colors within the subset of hue-similar colors by calculating the ΔE between every color within the subset of hue-similar colors and the target color110. The monochromatic color module166identifies a subset of visually similar colors that are within a threshold ΔE from the target color110. For example, the threshold ΔE may comprise a value of about 60. Nevertheless, other values may be used to a similar or different effect depending upon the desired outcome. In some uses, however, the monochromatic color module166is not required to generate the subset of visually-similar colors from within the subset of hue-similar colors, but instead, operates within the entire mathematically-defined color space300as it maps to colors available within the color database.

Returning toFIG.7B, a chroma scale740and a lightness scale750are depicted. The depicted chroma scale740and a lightness scale750are provided only for the sake of clarity and explanation. One of skill in the art will appreciate that these values can be calculated and displayed without using respective scales. However, in order to maintain the clarity of the figures, they are depicted as scales herein.

The monochromatic color module166can also identify a first set of proposed colors within the subset of visually-similar colors. The first set of proposed colors comprise colors that are both within a first negative threshold of chroma difference from the target color and within a first positive threshold of lightness difference from the target color. For example, if implemented within a CIELAB color space using the chroma difference (C*), the first negative threshold of chroma difference may comprise a range of 0 to −10 and the first positive threshold of lightness difference may comprise a range of 10-20. It is believed that these particular thresholds provide desirable proposed colors due to the specific ranges of both the chroma and the lightness when compared to the target color110. Nevertheless, other ranges may be used to a similar or different effect depending upon the desired outcome. The computer system100can then display on the user interface200the first set of proposed colors as potential accompanying colors to the target color.

Additionally, the monochromatic color module166can identify a second set of proposed colors within the subset of visually-similar colors. The second set of proposed colors comprises colors that are both within a first positive threshold of chroma difference from the target color and within a first negative threshold of lightness difference from the target color. For example, the first positive threshold of chroma difference may comprise a range of 0 to 10 and the first negative threshold of lightness difference may comprise a range of −10 to −20. It is believed that these particular thresholds provide desirable proposed colors due to the specific ranges of both the chroma and the lightness when compared to the target color110. Nevertheless, other ranges may be used to a similar or different effect depending upon the desired outcome. The computer system100can then display on the user interface200the second set of proposed colors as potential accompanying colors to the target color.

Further, the monochromatic color module166can identify a third set of proposed colors within the subset of visually-similar colors. The third set of proposed colors comprise colors that are both within a second negative threshold of chroma difference from the target color and within a second positive threshold of lightness difference from the target color. In some cases, an absolute value of the second negative threshold of chroma difference is greater than the first negative threshold of chroma difference, and an absolute value of the second positive threshold of lightness difference is greater than the first positive threshold of lightness difference. For example, the second negative threshold of chroma difference may comprise a range of 0 to −20 and the second positive threshold of lightness difference may comprise a range of 30 to 40. It is believed that these particular thresholds provide desirable proposed colors due to the specific ranges of both the chroma and the lightness when compared to the target color110. Nevertheless, other ranges may be used to a similar or different effect depending upon the desired outcome. The computer system100can then display on the user interface200the third set of proposed colors as potential accompanying colors to the target color.

Further still, the monochromatic color module166can identify a fourth set of proposed colors within the subset of visually-similar colors. The fourth set of proposed colors comprise colors that are both within a second positive threshold of chroma difference from the target color and within a second negative threshold of lightness difference from the target color. In some cases, an absolute value of the second positive threshold of chroma difference is greater than the first positive threshold of chroma difference, and an absolute value of the second negative threshold of chroma difference is greater than the first positive threshold of lightness difference. For example, the second positive threshold of chroma difference may comprise a range of 0 to 20 and the second negative threshold of lightness difference may comprise a range of −30 to −40. It is believed that these particular thresholds provide desirable proposed colors due to the specific ranges of both the chroma and the lightness when compared to the target color110. Nevertheless, other ranges may be used to a similar or different effect depending upon the desired outcome. The computer system100can then display on the user interface200the fourth set of proposed colors as potential accompanying colors to the target color.

While the above described examples utilize the monochromatic color module166to identify particular ranges of chroma and lightness shifts to generate sets of proposed colors, other ranges may also be used to similar effect. For example, Table 2 describes ten different examples of combinations of chroma and lightness ranges that can be utilized to identify proposed colors from within the subset of visually-similar colors.

FIG.8depicts a location of a target color310and locations of potential proposed colors800,810within a mathematically-defined color space300. As depicted inFIG.1, the neighbor color module168can identify a location of a first proposed neighbor color800within the mathematically-defined color space300. The location of the first proposed neighbor color800is a positive threshold shift in chroma value from the location of the target color310within the mathematically-defined color space300. The neighbor color module168identifies the first proposed neighbor color within the color database that is nearest to the location of a first proposed neighbor color800. The positive threshold may comprise a chroma value of 15. The neighbor color module168also identifies a location of a second proposed neighbor color810within the mathematically-defined color space300. The location of the second proposed neighbor color810is a negative threshold shift in chroma value from the location of the target color310within the mathematically-defined color space300. The negative threshold may comprise a chroma value of −15. The neighbor color module168identifies the second proposed neighbor color within the color database that is nearest to the location of a second proposed neighbor color810. The computer system100then displays, on the user interface, the first proposed neighbor color and the second proposed neighbor color.

Accordingly, the methods, systems and computer-readable media disclosed herein provide several examples of technical improvements in the area of computer-generated color palette(s). Modern color databases are enormous and complex. Computers lack the intuitive ability to identify colors that are aesthetically pleasing when grouped together. Embodiments disclosed herein provide improved methods for efficiently generating computer-generated color palette(s).

FIG.9depicts a flowchart of steps in a method900for the dynamic generation of custom color selections. Method900includes an act910of receiving a target color. Act910comprises receiving from a user an indication of a target color. For example, as depicted and described with respect toFIG.1, a user provides an indication of a target color110to a computer system100. The computer system100then maps that indication of the target color110to an actual target color110that is present within a color database.

Additionally, method900includes an act920of identifying a location of the target color within a color space. Act920comprises identifying a location of the target color310within a mathematically-defined color space300. For example, as depicted and described with respect toFIGS.3-8, several different mathematically-defined color spaces300have been created and are conventionally known within the art. The computer system100is configured to identify a location of the target color310within a mathematically-defined color space300of the target color110that was identified within the color database. In some cases, the location of the target color310may be provided by information within the color database, whereas in other cases, the computer system100calculates the location.

Method900also includes an act930of identifying a location of a second color within a color space. Act930comprises identifying a location of a second color320within the mathematically-defined color space300. For example, as depicted and described with respect toFIG.3, the opposite color module164can calculate an inverse of the coordinates of the location of the target color310. The resulting “opposite location” may comprise the location of the second color320.

In addition, method900includes an act940of generating a first golden triangle within the color space. Act940comprises generating a first golden triangle within the mathematically-defined color space, wherein the location of the target color comprises a first vertex of the first golden triangle, the location of the second color comprises a second vertex of the first golden triangle, and a location of a third color comprises a third vertex of the first golden triangle. For example, as depicted and described with respect toFIGS.3-5, the golden ratio module162identifies a location of a third color320using the golden ratio. Using the location of a third color320, the golden ratio module162is able to create a golden triangle within the mathematically-defined color space300.

Further, method900includes an act950of displaying the target color, a second color and a third color. Act950comprises displaying on a user interface200an indication of the target color110, the second color, and the third color. For example, as depicted and described with respect toFIG.2, the user interface200displays various different categories220(a-c) of accompanying colors210, which can include the second color and the third color.

As used herein, unless otherwise expressly specified, all numbers such as those expressing values, ranges, amounts or percentages may be read as if prefaced by the word “about”, even if the term does not expressly appear. Any numerical range recited herein is intended to include all sub-ranges subsumed therein. Plural encompasses singular and vice versa. Additionally, the stated numerical values and ranges are not meant to be exhaustive, but instead meant to indicate examples of potential ranges and limits to color values.

A cloud-computing model can be composed of various characteristics, such as on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, and so forth. A cloud-computing model may also come in the form of various service models such as, for example, Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”). The cloud-computing model may also be deployed using different deployment models such as private cloud, community cloud, public cloud, hybrid cloud, and so forth.

The invention is further specified in the following clauses:Clause 1: A computer system for dynamic generation of custom color selections, comprising:one or more processors; andone or more computer-readable media having stored thereon executable instructions that when executed by the one or more processors configure the computer system to perform, particularly a method according to any of clauses 17 to 25, at least the following:receive from a user an indication of a target color;identify a location of the target color within a mathematically-defined color space;identify a location of a second color within the mathematically-defined color space;generate a first golden triangle within the mathematically-defined color space, wherein:the location of the target color comprises a first vertex of the first golden triangle,the location of the second color comprises a second vertex of the first golden triangle, anda location of a third color comprises a third vertex of the first golden triangle; anddisplay on a user interface an indication of the target color and the third color.Clause 2: The computer system of clause 1, wherein receiving from a user an indication of a target color comprises the provision of a picture or sample of an object.Clause 3: The computer system of clause 2, wherein receiving from a user an indication of a target color comprises measuring the color of the picture or sample of an object using a spectrometer, wherein the measured color is the indication of a target color.Clause 4: The computer system of any of clauses 1 to 3, wherein the executable instructions include instructions that are executable to configure the computer system to:generate a second golden triangle within the mathematically-defined color space, wherein:the location of the target color comprises a first vertex of the second golden triangle,the location of the third color comprises a second vertex of the second golden triangle, anda location of a fourth color comprises a third vertex of the second golden triangle; anddisplay on the user interface an indication of the target color, the third color, and the fourth color.Clause 5. The computer system of clause 4, wherein the third color comprises a specific color selected from a color database that is located closest to the location of the third color within the mathematically-defined color space, and/or wherein the fourth color comprises a specific color selected from a color database that is located closest to the location of the fourth color within the mathematically-defined color spaceClause 6: The computer system of any of clauses 1 to 5, wherein identifying the location of the second color within the mathematically-defined color space comprises calculating a set of second-color coordinates that are inverse to a set of coordinates associated with the target color, particularly inverse the a* and b* coordinates in a CIELAB color space.Clause 7: The computer system of any of clauses 1 to 6, wherein the executable instructions include instructions that are executable to configure the computer system to display the second color on the user interface.Clause 8: The computer system of any of clauses 1 to 7, wherein the second color comprises a specific color selected from a color database that is located closest to the location of the second color within the mathematically-defined color space.Clause 9: The computer system of any of clauses 1 to 8, wherein the third color comprises a specific color selected from a color database that is located closest to the location of the third color within the mathematically-defined color space.Clause 10: The computer system of any of clauses 1 to 9, wherein receiving from the user the indication of the target color comprises:receiving a particular color; andidentifying, within a color database, a nearest matching color to the particular color, wherein identify a location of the target color within a mathematically-defined color space comprisesidentifying a nearest matching color, within a color database, to the indication of a target color, wherein the nearest matching color is the location of the target color.Clause 11: The computer system of any of clauses 1 to 10, wherein the executable instructions include instructions that are executable to configure the computer system to:generate a subset of neighbor colors from the color database of available colors by selecting colors within the color database that are within positive or negative fifteen degrees of hue variance to the target color within the mathematically-defined color space, wherein the target color is located at an a* and b* coordinate pair within the CIELAB color space.Clause 12: The computer system of any of clauses 1 to 11, wherein the executable instructions include instructions that are executable to configure the computer system to:identify a subset of hue-similar colors within the subset of neighbor colors, wherein the subset of hue-similar colors comprise colors that are within a particular threshold of hue difference, such as 10 degrees, from the target color;identify a subset of visually-similar colors within the subset of hue-similar colors, wherein the subset of visually-similar colors comprise colors that are within a particular threshold of delta E, such as below 60 or 30 or 20 or 10 or 5, from the target color;identify a first set of proposed colors within the subset of visually-similar colors, wherein the first set of proposed colors comprise colors that are both within a first negative threshold of chroma difference, such as 0 to −10, from the target color and within a first positive threshold of lightness difference, such as 10 to 20, from the target color;identify a second set of proposed colors within the subset of visually-similar colors, wherein the second set of proposed colors comprise colors that are both within a first positive threshold of chroma difference, such as 0 to 10, from the target color and within a first negative threshold of lightness difference, such as −10 to −20, from the target color; anddisplay the first set of proposed colors and the second set of proposed colors on the user interface.Clause 13: The computer system of any of clauses 1 to 12, wherein the mathematically-defined color space is the CIELAB color space, wherein L* is the lightness, a* is the red/green value and b* is the blue/yellow value, and/or the RGB color space.Clause 14: The computer system of any of clauses 1 to 13, wherein identification of a location of the respective colors, particularly target, second and third colors, within a mathematically-defined color space is done in CIELAB color space, wherein the coordinates of the locations comprise the a* and b* values in CIELAB color space.Clause 15: The computer system of any of clauses 1 to 14, wherein the executable instructions include instructions that are executable to configure the computer system to:identify a third set of proposed colors within the subset of visually-similar colors, wherein the third set of proposed colors comprise colors that are both within a second negative threshold of chroma difference, such as of 0 to −20, from the target color and within a second positive threshold of lightness difference, such as 30 to 40, from the target color, wherein:an absolute value of the second negative threshold of chroma difference is greater than the first negative threshold of chroma difference, andan absolute value of the second positive threshold of lightness difference is greater than the first positive threshold of lightness difference;identify a fourth set of proposed colors within the subset of visually-similar colors, wherein the fourth set of proposed colors comprises colors that are both within a second positive threshold of chroma difference, such as of 0 to 20, from the target color and within a second negative threshold of lightness difference, such as of −30 to −40, from the target color, wherein:an absolute value of the second positive threshold of chroma difference is greater than the first positive threshold of chroma difference, andan absolute value of the second negative threshold of chroma difference is greater than the first positive threshold of lightness difference; anddisplay the third set of proposed colors and the fourth set of proposed colors on the user interface.Clause 16: The computer system of any of clauses 1 to 15, wherein the executable instructions include instructions that are executable to configure the computer system to:identify a location of a first proposed neighbor color within the mathematically-defined color space, wherein the location of the first proposed neighbor color is a positive threshold shift in chroma value, such as 15, from the location of the target color within the mathematically-defined color space;identify the first proposed neighbor color within the color database that is nearest to the location of a first proposed neighbor color;identify a location of a second proposed neighbor color within the mathematically-defined color space, wherein the location of the second proposed neighbor color is a negative threshold shift in chroma value, such as 15, from the location of the target color within the mathematically-defined color space;identify the second proposed neighbor color within the color database that is nearest to the location of a second proposed neighbor color; anddisplay, on the user interface, the first proposed neighbor color and the second proposed neighbor color.Clause 17: A method, executed on one or more processors, for dynamic generation of custom color selections, particularly as defined in any of clauses 1 to 16 for a computer system, comprising:receiving from a user an indication of a target color;identifying a location of the target color within a mathematically-defined color space;identifying a location of a second color within the mathematically-defined color space;generating a first golden triangle within the mathematically-defined color space, wherein:the location of the target color comprises a first vertex of the first golden triangle,the location of the second color comprises a second vertex of the first golden triangle, anda location of a third color comprises a third vertex of the first golden triangle; anddisplaying on a user interface an indication of the target color, the second color, and the third color.Clause 18: The method of clause 17, further comprising:generating a second golden triangle within the mathematically-defined color space, wherein:the location of the target color comprises a first vertex of the second golden triangle,the location of the third color comprises a second vertex of the second golden triangle, anda location of a fourth color comprises a third vertex of the second golden triangle; anddisplaying on the user interface an indication of the target color, the third color, and the fourth color.Clause 19: The method of clauses 17 or 18, wherein identifying the location of the second color within the mathematically-defined color space comprises calculating a set of second-color coordinates that are inverse to a set of coordinates associated with the target color.Clause 20: The method of any of clauses 17 to 19, further comprising configuring a computer system to display the second color on the user interface.Clause 21: The method of any of clauses 17 to 20, wherein the third color comprises a specific color selected from a color database that is located closest to the location of the third color within the mathematically-defined color space.Clause 22: The method of clause 21, wherein receiving from the user the indication of the target color comprises:receiving a particular color; andidentifying, within a color database, a nearest matching color to the particular color, wherein identify a location of the target color within a mathematically-defined color space comprisesidentifying a nearest matching color, within a color database, to indication of a target color, wherein the nearest matching color is the target color.Clause 23: The method of any of clauses 17 to 22, further comprising generating a subset of neighbor colors from the color database of available colors by selecting colors within the color database that are within positive or negative fifteen degrees of hue variance to the target color within the mathematically-defined color space.Clause 24: The method of any of clauses 17 to 23, further comprising:identifying a subset of hue-similar colors within the subset of neighbor colors, wherein the subset of hue-similar colors comprise colors that are within a particular threshold of hue difference, such as 10 degrees, from the target color;identifying a subset of visually-similar colors within the subset of hue-similar colors, wherein the subset of visually-similar colors comprise colors that are within a particular threshold of delta E, such as below 60 or 30 or 20 or 10 or 5, from the target color;identifying a first set of proposed colors within the subset of visually-similar colors, wherein the first set of proposed colors comprises colors that are both within a first negative threshold of chroma difference, such as 0 to −10, from the target color and within a first positive threshold of lightness difference, such as 10 to 20, from the target color;identifying a second set of proposed colors within the subset of visually-similar colors, wherein the second set of proposed colors comprises colors that are both within a first positive threshold of chroma difference, such as 0 to 10, from the target color and within a first negative threshold of lightness difference, such as −10 to −20, from the target color; anddisplaying the first set of proposed colors and the second set of proposed colors on the user interface.Clause 25: The method of any of clauses 17 to 24, further comprising:identifying a subset of hue-similar colors within the subset of neighbor colors, wherein the subset of hue-similar colors comprise colors that are within a particular threshold of hue difference, such as 10 degrees, from the target color;identifying a subset of visually-similar colors within the subset of hue-similar colors, wherein the subset of visually-similar colors comprise colors that are within a particular threshold of delta E, such as below 60 or 30 or 20 or 10 or 5, from the target color;identifying a third set of proposed colors within the subset of visually-similar colors, wherein the third set of proposed colors comprises colors that are both within a second negative threshold of chroma difference, such as of 0 to −20, from the target color and within a second positive threshold of lightness difference, such as 30 to 40, from the target color, wherein:an absolute value of the second negative threshold of chroma difference is greater than the first negative threshold of chroma difference, andan absolute value of the second positive threshold of lightness difference is greater than the first positive threshold of lightness difference;identifying a fourth set of proposed colors within the subset of visually-similar colors, wherein the fourth set of proposed colors comprises colors that are both within a second positive threshold of chroma difference, such as of 0 to 20, from the target color and within a second negative threshold of lightness difference, such as of −30 to −40, from the target color, wherein:an absolute value of the second positive threshold of chroma difference is greater than the first positive threshold of chroma difference, andan absolute value of the second negative threshold of chroma difference is greater than the first positive threshold of lightness difference; anddisplaying the third set of proposed colors and the fourth set of proposed colors on the user interface.Clause 26: A computer-readable media comprising one or more physical computer-readable storage media having stored thereon computer-executable instructions, particularly as defined in any of clauses 1 to 16, that, when executed at a processor, cause a computer system to perform a method for dynamic generation of custom color selections, the method, particularly the method as defined in any of clauses 17 to 25 for the system clauses, comprising:receiving from a user an indication of a target color;identifying a location of the target color within a mathematically-defined color space;identifying a location of a second color within the mathematically-defined color space;generating a first golden triangle within the mathematically-defined color space, wherein:the location of the target color comprises a first vertex of the first golden triangle,the location of the second color comprises a second vertex of the first golden triangle, anda location of a third color comprises a third vertex of the first golden triangle; anddisplaying on a user interface an indication of the target color, the second color, and the third color.