For a couple of years I’ve been experimenting with automating color design through code.
My first project in the series was a color clock that cycles through the rainbow once every 12 hours, starting at red and ending at purple. The clock also changes brightness every hour so that the half-hour mark is the brightest and the hour-mark is the darkest.
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/f1c699d6-bb13-4bc6-b3b1-483dbb85420b_rw_600.jpg?h=0a1eba4a7ccfd2325509650a251fa85e)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/1dd934df-c594-4632-9a26-16761f2f0c2f_rw_1200.jpg?h=5655c6df3ea868cab511cc7714198842)
To make the clock I first tried cycling through existing color models like HSV or RGB, but I didn't like the neon greens and bright yellows in digital color space. So I designed my own color model to encode only colors I liked, by using R to fit adaptively smoothed splines to a series of colors I picked by hand.
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/e4a94ef3-e574-4875-a516-57c62266af57_rw_1200.jpg?h=4ac8c3f1d1e68076d7873a8a8e901015)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/025fbbc9-9b41-4edb-9f4f-63f1251175ac_rw_1200.jpg?h=fa71039e88030e3780dca4f96e34cb22)
My next project was a color palette tester that featured 50 of my favorite color palettes. In this project I didn't generate colors through code, but I learned to automate colorful animation sketches in Python.
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/847091c4-b7df-4fed-8c92-72c35355ad51_rw_600.gif?h=e1eb02ffbcc59a90dbd4bbbc74e0093b)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/cd01cc2f-35dc-4f0c-89c7-34e970be5c40_rw_600.gif?h=f7c64e0afe3007b8e54baa2517114722)
Finally, I built an algorithm that can design a full color scheme from scratch. After picking the colors, the code can also apply each color appropriately to different sections of a design.
For this project I wrote six equations defining different color palettes for any starting color - analogous, complimentary, etc. I also designed a colorspace that was balanced to my own taste, with lots of pinks and yellows. Finally, I wrote a series of rules about which colors belonged next to each other, and which ones should be used as background colors or accents. To test out the algorithm, I designed a gallery of 1000 digital snowflakes generated using the code and a noun library.
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/d0d41e7d-9187-431a-bef3-8d8361f0ca14_rw_1200.jpg?h=6ab830287e64b78b0bfc7bfe995d8023)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/72005e87-c856-49c9-812a-3de898926414_rw_1200.jpg?h=86e5101c231c4bd99186200c373ce436)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/dbebcb5c-868a-4cc9-b28f-8768705fac7f_rw_600.gif?h=e72769f64bed9efc7b088dcb408a5412)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/a4b01192-c9f3-4762-9b36-c0f4a4394cbd_rw_600.gif?h=48a81f24fd5ba4bfd6036bb613fa05af)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/73140717-3856-482d-93aa-be9ab2c9f5ad_rw_600.gif?h=828db316be1529e126d83e6a85044e1c)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/3665e11d-3ce8-4bb2-bf18-deeff47cea71_rw_600.gif?h=3fe67b80eaf67ea91c1e8b39a4cd4f31)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/6f45752b-7333-4317-ae9b-1669a7ae52cf_rw_600.gif?h=ec1b6afea27403142f7a0ea72b3ca80f)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/e4473348-97da-4c08-b5ba-9510670b4bec_rw_600.gif?h=97ad99c387eb5929fea5f0da0e354bff)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/98ff176e-9e91-43f2-9108-588328c096b1_rw_600.gif?h=b03a29620ffd4bd2137c48b43acbdff2)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/47d3b323-c4c2-48b9-8a92-1237ba48a8c3_rw_600.gif?h=1a3d5edb4c39bddb46226d0b38f8d9cc)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/bd681693-095b-4d29-abf2-91a99d01b6ea_rw_600.gif?h=ba0f4a5d01823cdd32b773157dd47eb3)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/27831904-5642-448a-b4ec-7862e7810503_rw_600.gif?h=39d5bc9721727c29dc25ba20c997eb10)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/42a328a9-1c0a-4442-94a2-e46760a6aeb4_rw_600.gif?h=57f3464f10b7af52b8a2d2cdb464508f)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/e31c6e2e-e91a-4f34-83a1-3f9db73a782a_rw_600.gif?h=23210fe2484b031414cdbd9dc39eaf1e)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/ab6e02af-f182-4a53-bb31-eec627ab0396_rw_600.gif?h=b931b1c9c41fe6d06cf65e81119e8aa4)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/4c416e92-7ffd-4487-ab16-d23690783890_rw_600.gif?h=b4eb847a2444122b8f02f3ec31d8fc4e)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/c5788984-103c-467d-9533-a8e5d2ec4071_rw_600.gif?h=a6f1bbecf0033645355a0b166516da8b)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/a02e2b26-5f63-422f-9ecf-3943c485046b_rw_600.gif?h=3e509b2f7b42096b40cb887fd4479de9)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/026bc4fd-0fc7-4309-8ae8-16153e2e1a2e_rw_600.gif?h=7b7213e21d6eaa76f5ed861431bcd694)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/db904d81-aad4-4240-b4cd-b1936a06aed9_rw_600.gif?h=a21a0053fc61764b10a9f4919ef2612b)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/78a491f1-7a78-4c15-9dac-98fbec1e786b_rw_600.gif?h=e126db2833819bb87d1f5a0544abe6bb)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/f211648d-5015-4795-bc7f-1d92141221e7_rw_600.gif?h=316b07c140aa7ab994b8bb28ab0ee8e4)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/6e87bb21-7525-4c4b-9e1c-b88a7e2008b8_rw_600.gif?h=4770927d4cbeb024ed35dd8efb915d6c)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/b981e60f-835d-4801-a86b-6909e8401f29_rw_600.gif?h=88084a7f0cf9260b0a161040513b231c)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/ec3d88cd-3094-4188-bcca-4dbe55ff51d6_rw_600.gif?h=5fa60c745e6e82b2688adac09177aed8)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/b37bc26a-dfae-48f0-93e8-667555066dbb_rw_600.gif?h=a17e6fdf9d67935f876109ed2e49b4a1)
![](https://cdn.myportfolio.com/7b7db6cd-1456-425c-9495-7482bf5acd76/1ede615b-980e-49f8-ab1e-314c532dabe7_rw_600.gif?h=ec673b71b984bb5810ceb50509b6acae)