File size: 201,833 Bytes
a6cbe5b
1
{"v1":{"steps":[{"step":1,"reward":0.06828953080286553,"valid":0.375,"hps":0.14393291777847092,"entropy":0.07695618038997054},{"step":2,"reward":0.02861485186294316,"valid":0.125,"hps":0.19849166568230178,"entropy":0.061541718896478415},{"step":3,"reward":0.12112930420095469,"valid":0.5,"hps":0.21092330758106892,"entropy":0.07337940437719226},{"step":4,"reward":0.12037434222458873,"valid":0.625,"hps":0.15435263179108175,"entropy":0.08786471234634519},{"step":5,"reward":0.1354381851944687,"valid":0.625,"hps":0.1819982941468917,"entropy":0.071576913818717},{"step":6,"reward":0.135311963509956,"valid":0.5,"hps":0.24383530877456103,"entropy":0.09774560201913118},{"step":7,"reward":0.21937777788216056,"valid":0.75,"hps":0.2666553499488798,"entropy":0.08175822859629989},{"step":8,"reward":0.21821053173365929,"valid":0.75,"hps":0.2659275583838487,"entropy":0.07153106853365898},{"step":9,"reward":0.33770264432405894,"valid":1.0,"hps":0.31938329876162486,"entropy":0.06427476974204183},{"step":10,"reward":0.2974726451104182,"valid":1.0,"hps":0.27429830938194616,"entropy":0.069448156747967},{"step":11,"reward":0.31875013202172997,"valid":0.875,"hps":0.3476296580392896,"entropy":0.06814575102180243},{"step":12,"reward":0.487211449079157,"valid":1.0,"hps":0.48470740930822503,"entropy":0.07499115820974112},{"step":13,"reward":0.5022098101390425,"valid":1.0,"hps":0.5016207929420161,"entropy":0.06231752643361688},{"step":14,"reward":0.4994508627501061,"valid":1.0,"hps":0.49837071981980596,"entropy":0.06067279912531376},{"step":15,"reward":0.5000561362356143,"valid":1.0,"hps":0.4993496542968814,"entropy":0.05310191633179784},{"step":16,"reward":0.41957439132688207,"valid":1.0,"hps":0.4100132125854245,"entropy":0.048235959373414516},{"step":17,"reward":0.5475528215810324,"valid":1.0,"hps":0.5521341048756111,"entropy":0.04334140638820827},{"step":18,"reward":0.4525667437251344,"valid":0.875,"hps":0.5182245478659463,"entropy":0.03544260188937187},{"step":19,"reward":0.6390563746715548,"valid":1.0,"hps":0.6535641005122539,"entropy":0.02973203151486814},{"step":20,"reward":0.6980010992016268,"valid":1.0,"hps":0.7192245400485913,"entropy":0.02724879188463092}],"frames":{"1":["img/d41548b16bbc.jpg","img/f2cc61794b05.jpg","img/29ae5390a1b9.jpg"],"2":["img/6280f961f511.jpg","img/1edcf92eb1e2.jpg"],"3":["img/9e7f275e8046.jpg","img/3d27c6812b7c.jpg","img/06edcabd9d00.jpg","img/a09cd5824523.jpg","img/1731680f13f2.jpg","img/c28d26c5b570.jpg"],"4":["img/3563ea790bf4.jpg","img/2713ffc66bab.jpg","img/7a5e6b3535db.jpg","img/644c1c0cf9ef.jpg","img/8e3022538845.jpg","img/d7d3010cc9ec.jpg"],"5":["img/41d6400ddf5b.jpg","img/e71381494804.jpg","img/587118c486b0.jpg","img/392ddbeb3a77.jpg","img/085ce61353fe.jpg","img/b7ef409f8934.jpg","img/0b367e01dd31.jpg"],"6":["img/2624e2503a5f.jpg","img/ed68aef476c6.jpg","img/e9416de5bad0.jpg","img/aba1253677e5.jpg","img/f4f659210ed6.jpg","img/5ecf8f0ba832.jpg","img/aae1de826de7.jpg"],"7":["img/4639060094ad.jpg","img/497b21e39de3.jpg","img/beb3a34615ed.jpg","img/dae3c57bfaff.jpg","img/b1f86c2c4280.jpg","img/b2487082f8cd.jpg","img/e54b8eef9dcf.jpg"],"8":["img/2b0b3462d2c7.jpg","img/281240250708.jpg","img/1bd6b3cb21be.jpg","img/74751b24a1d6.jpg","img/4165e3637880.jpg","img/0b6f5e1c3de3.jpg","img/59d7af4bbea6.jpg","img/a30d3773910c.jpg"],"9":["img/18c02aec7b83.jpg","img/a87dff4df479.jpg","img/b19bd71e2503.jpg","img/fcd5cd4f38c9.jpg","img/812bc805333d.jpg","img/31aa23016c73.jpg","img/035782f48b38.jpg","img/d5b7fe8cdc70.jpg"],"10":["img/95847daea9d8.jpg","img/017da2df7697.jpg","img/323ddc8e6d56.jpg","img/fd1c15147cb7.jpg","img/3f032ebd9c31.jpg","img/bba6842d7677.jpg","img/c38dac09082a.jpg","img/031ee66a9961.jpg"],"11":["img/dce4cfde6539.jpg","img/8fb8503b60a1.jpg","img/9747c7b2a6e6.jpg","img/816ad09ea651.jpg","img/5f468e913777.jpg","img/d416ddfe784d.jpg","img/6faba0808268.jpg","img/d22ead2fb851.jpg"],"12":["img/984f6ad05120.jpg","img/21075ef7e96d.jpg","img/a05bf63871b2.jpg","img/a02dc4d809a2.jpg","img/cd55ac1b214a.jpg","img/1cc77b07c06b.jpg","img/ffc01badb3b6.jpg","img/4521e68af19f.jpg"],"13":["img/2227cc04cd18.jpg","img/207907476d5b.jpg","img/6ffa37e4604f.jpg","img/a8b2e73906af.jpg","img/9a5166115c1f.jpg","img/172be7401f29.jpg","img/37d768638daf.jpg","img/0774251e5902.jpg"],"14":["img/a7e854ad88c0.jpg","img/53b179633956.jpg","img/6834471eca20.jpg","img/8a2d27426ec8.jpg","img/e6ccd5634970.jpg","img/584d9ac9f576.jpg","img/c7b73a6aef4f.jpg","img/8590890b200c.jpg"],"15":["img/0c7128e0472e.jpg","img/1deea9226324.jpg","img/03cf0089ec3d.jpg","img/a23235f503ca.jpg","img/1cd8561e0a08.jpg","img/fba3c484712e.jpg","img/7dbc7571edf8.jpg","img/779919601171.jpg"],"16":["img/55a22306bba4.jpg","img/44ee726d05d7.jpg","img/0a78ee1ed776.jpg","img/5c056da56a30.jpg","img/f357fa01d559.jpg","img/2d3523f3d5d5.jpg","img/8983b9aba997.jpg","img/fca103368329.jpg"],"17":["img/093a8a89c527.jpg","img/d187886b1bcd.jpg","img/8b1070949513.jpg","img/14cdd8349e56.jpg","img/0d60603715de.jpg","img/6cb553f1a675.jpg","img/de9ed0dd04e9.jpg","img/a1b774f03d8e.jpg"],"18":["img/d072d5e2c8a7.jpg","img/7356899fc5d0.jpg","img/78d262297ebd.jpg","img/4d0afae7c53e.jpg","img/b115d02b2ccc.jpg","img/088fc033ea9a.jpg","img/61e242070407.jpg","img/54f7ed9e5f7e.jpg"],"19":["img/306a39eb3c63.jpg","img/e4c95b97dde1.jpg","img/73de0f284fed.jpg","img/76553be052ca.jpg","img/6f0da6fba2bb.jpg","img/7f98d21ba178.jpg","img/810c7067e36e.jpg","img/741b61bbdce4.jpg"],"20":["img/8e66927e0928.jpg","img/65d71854e61b.jpg","img/e1a13e991515.jpg","img/8be4fe3696ed.jpg","img/08f4d79bdcbf.jpg","img/a482e7b675ea.jpg","img/8df4654be1a6.jpg","img/43164b8d35e6.jpg"]},"pairs":[{"subject":"a pale yellow hibiscus in side profile","domain":"in_domain","seed":101,"base_reward":0.0,"trained_reward":0.5983173056080101,"base":null,"trained":{"img":"img/2dece238bd94.jpg","full":"img/2dece238bd94-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 6; i++) {\n    let angle = 60 * i - 90;\n    let x = 300 + 100 * cos(angle);\n    let y = 300 + 100 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#fdd835', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 80);\n  brush.fill('#fff4df', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 140);\n}","rating":null}},{"subject":"a pale yellow hibiscus in side profile","domain":"in_domain","seed":202,"base_reward":0.12870554321511127,"trained_reward":0.7112481508257893,"base":{"img":"img/76a15948b849.jpg","full":"img/76a15948b849-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let i = 0; i < 360; i++) {\n    let angle = i;\n    let r = 100 + 50 * Math.sin(angle * 0.5);\n    let x = 300 + r * Math.cos(angle);\n    let y = 300 + r * Math.sin(angle);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n}","rating":null},"trained":{"img":"img/ad5477b4227b.jpg","full":"img/ad5477b4227b-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 6; i++) {\n    let angle = 360 / 6 * i - 90;\n    let x = 300 + 120 * cos(angle);\n    let y = 300 + 120 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#ffd700', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 80);\n  brush.fill('#fff4df', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 100);\n}","rating":null}},{"subject":"a pale yellow hibiscus in side profile","domain":"in_domain","seed":303,"base_reward":0.0,"trained_reward":0.4143953717903246,"base":null,"trained":{"img":"img/1566f116311a.jpg","full":"img/1566f116311a-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  \n  for (let i = 0; i < 6; i++) {\n    let angle = 60 * i - 90;\n    let x = 200 * cos(angle);\n    let y = 200 * sin(angle);\n    brush.circle(300 + x, 300 + y, 60);\n  }\n  \n  brush.fill('#ffd700', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 80);\n  \n  brush.fill('#fff4df', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 140);\n}","rating":null}},{"subject":"a deep red hibiscus viewed from above","domain":"in_domain","seed":101,"base_reward":0.0,"trained_reward":0.5184415939669187,"base":null,"trained":{"img":"img/013d7a4081fd.jpg","full":"img/013d7a4081fd-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 300 + 120 * cos(angle);\n    let y = 300 + 120 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#d73a4a', 140);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.3, 0.4);\n  brush.circle(300, 300, 80);\n  brush.fill('#d73a4a', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 60);\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 140);\n}","rating":null}},{"subject":"a deep red hibiscus viewed from above","domain":"in_domain","seed":202,"base_reward":0.1425152926829849,"trained_reward":0.6360146840636701,"base":{"img":"img/7078b2590ed7.jpg","full":"img/7078b2590ed7-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let i = 0; i < 360; i++) {\n    let angle = i;\n    let r = 100 + 50 * Math.sin(angle * 0.2);\n    let x = 300 + r * Math.cos(angle);\n    let y = 300 + r * Math.sin(angle);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n}","rating":null},"trained":{"img":"img/5da862a42d74.jpg","full":"img/5da862a42d74-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 300 + 120 * cos(angle);\n    let y = 300 + 120 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#e91e63', 140);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.3, 0.4);\n  brush.circle(300, 300, 80);\n  brush.fill('#d50000', 160);\n  brush.fillBleed(0.4);\n  brush.fillTexture(0.4, 0.5);\n  brush.circle(300, 300, 50);\n}","rating":null}},{"subject":"a deep red hibiscus viewed from above","domain":"in_domain","seed":303,"base_reward":0.0,"trained_reward":0.44044182710640506,"base":null,"trained":{"img":"img/2a08c7c8686c.jpg","full":"img/2a08c7c8686c-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 200 + 100 * cos(angle);\n    let y = 200 + 100 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#d50000', 140);\n  brush.fillBleed(0.4);\n  brush.fillTexture(0.3, 0.5);\n  brush.circle(200, 200, 60);\n}","rating":null}},{"subject":"a white hibiscus with a crimson center","domain":"in_domain","seed":101,"base_reward":0.1295022994020728,"trained_reward":0.11487793007837813,"base":{"img":"img/faae885473f3.jpg","full":"img/faae885473f3-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#ffffff', 140);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 15; i++) {\n    let angle = i * 24;\n    let r = 120 + random(20);\n    let x = 300 + r * cos(angle);\n    let y = 300 + r * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#e8907a', 140);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 80);\n}","rating":null},"trained":{"img":"img/99353dc00841.jpg","full":"img/99353dc00841-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#fff4df', 100);\n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 300 + 120 * cos(angle);\n    let y = 300 + 120 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 80);\n}","rating":null}},{"subject":"a white hibiscus with a crimson center","domain":"in_domain","seed":202,"base_reward":0.11541601772267779,"trained_reward":0.2742638712726254,"base":{"img":"img/ba5891348d75.jpg","full":"img/ba5891348d75-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ffffff', 140);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  \n  const numPetals = 12;\n  const petalAngle = 360 / numPetals;\n  const petalRadius = 100;\n  const petalWidth = 20;\n  \n  for (let i = 0; i < numPetals; i++) {\n    const angle = i * petalAngle;\n    const x = 300 + petalRadius * cos(angle);\n    const y = 300 + petalRadius * sin(angle);\n    const dx = petalWidth * cos(angle);\n    const dy = petalWidth * sin(angle);\n    \n    brush.beginShape();\n    brush.vertex(x, y);\n    brush.vertex(x + dx, y + dy);\n    brush.vertex(x + dx * 2, y + dy * 2);\n    brush.vertex(x + dx * 1.5, y + dy * 1.5);\n    brush.endShape(CLOSE);\n  }\n  \n  brush.fill('#ff1493', 140);\n  brush.circle(300, 300, 40);\n}","rating":null},"trained":{"img":"img/13245b194b3c.jpg","full":"img/13245b194b3c-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 12; i++) {\n    let angle = i * 30;\n    let x = 200 + 100 * cos(angle);\n    let y = 200 + 100 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#d32f2f', 120);\n  brush.circle(300, 300, 60);\n}","rating":null}},{"subject":"a white hibiscus with a crimson center","domain":"in_domain","seed":303,"base_reward":0.18278979963637204,"trained_reward":0.0,"base":{"img":"img/d1d619731b21.jpg","full":"img/d1d619731b21-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 140);\n  brush.noFill();\n  brush.fill('#e8907a', 140);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.1, 0.4);\n  for (let i = 0; i < 16; i++) {\n    let angle = i * 22.5;\n    let x = 250 + 100 * cos(angle);\n    let y = 250 + 100 * sin(angle);\n    brush.beginShape();\n    brush.vertex(x, y, 20);\n    brush.vertex(x + 50 * cos(angle + 90), y + 50 * sin(angle + 90), 20);\n    brush.vertex(x + 50 * cos(angle + 180), y + 50 * sin(angle + 180), 20);\n    brush.vertex(x + 50 * cos(angle + 270), y + 50 * sin(angle + 270), 20);\n    brush.endShape(CLOSE);\n  }\n  brush.fill('#ea4335', 140);\n  brush.fillBleed(0.4);\n  brush.fillTexture(0.05, 0.3);\n  brush.circle(300, 300, 60);\n}","rating":null},"trained":null},{"subject":"two orange hibiscus flowers on a leafy stem","domain":"in_domain","seed":101,"base_reward":0.0,"trained_reward":0.21788616540674838,"base":null,"trained":{"img":"img/8de912045863.jpg","full":"img/8de912045863-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 10; i++) {\n    let angle = 360 / 10 * i - 90;\n    let x = 200 + 100 * cos(angle);\n    let y = 200 + 100 * sin(angle);\n    brush.circle(x, y, 40);\n  }\n  brush.fill('#ff9800', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(200, 200, 60);\n  brush.fill('#ffab40', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 200, 60);\n}","rating":null}},{"subject":"two orange hibiscus flowers on a leafy stem","domain":"in_domain","seed":202,"base_reward":0.1256785677288733,"trained_reward":0.1785059096062688,"base":{"img":"img/c216b7c31464.jpg","full":"img/c216b7c31464-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let i = 0; i < 360; i++) {\n    let r = 100 + 50 * Math.sin(i * 2);\n    let x = 300 + r * Math.cos(i);\n    let y = 300 + r * Math.sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#f4511e', 140);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.3, 0.4);\n  brush.beginShape();\n  for (let i = 0; i < 360; i++) {\n    let r = 70 + 30 * Math.sin(i * 2);\n    let x = 300 + r * Math.cos(i);\n    let y = 300 + r * Math.sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#ff8f00', 140);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.3, 0.4);\n  brush.beginShape();\n  for (let i = 0; i < 360; i++) {\n    let r = 50 + 20 * Math.sin(i * 2);\n    let x = 300 + r * Math.cos(i);\n    let y = 300 + r * Math.sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#f57f17', 140);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.3, 0.4);\n  brush.beginShape();\n  for (let i = 0; i < 360; i++) {\n    let r = 30 + 10 * Math.sin(i * 2);\n    let x = 300 + r * Math.cos(i);\n    let y = 300 + r * Math.sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#ff6d00', 140);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.3, 0.4);\n  brush.beginShape();\n  for (let i = 0; i < 360; i++) {\n    let r = 20 + 5 * Math.sin(i * 2);\n    let x = 300 + r * Math.cos(i);\n    let y = 300 + r * Math.sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#ff9800', 140);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.3, 0.4);\n  brush.beginShape();\n  for (let i = 0; i < 360; i++) {\n    let r = 15 + 3 * Math.sin(i * 2);\n    let x = 300 + r * Math.cos(i);\n    let y = 300 + r * Math.sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#ffab00', 140);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.3, 0.4);\n  brush.beginShape();\n  for (let i = 0; i < 360; i++) {\n    let r = 10 + 2 * Math.sin(i * 2);\n    let x = 300 + r * Math.cos(i);\n    let y = 300 + r * Math.sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#ffb300', 140);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.3, 0.4);\n  brush.beginShape();\n  for (let i = 0; i < 360; i++) {\n    let r = 5 + 1 * Math.sin(i * 2);\n    let x = 300 + r * Math.cos(i);\n    let y = 300 + r * Math.sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n}","rating":null},"trained":{"img":"img/81418a617763.jpg","full":"img/81418a617763-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 6; i++) {\n    let angle = 60 * i;\n    brush.circle(300 + 80 * cos(angle), 300 + 80 * sin(angle), 30);\n  }\n  brush.fill('#ffa726', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 60);\n  brush.fill('#ff8f00', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 40);\n  brush.fill('#ff6f00', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 20);\n  brush.fill('#ff3d00', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 10);\n  brush.fill('#e8907a', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 120);\n  brush.fill('#ffd580', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 140);\n}","rating":null}},{"subject":"two orange hibiscus flowers on a leafy stem","domain":"in_domain","seed":303,"base_reward":0.0,"trained_reward":0.24161345465317782,"base":null,"trained":{"img":"img/114f6d9da8ab.jpg","full":"img/114f6d9da8ab-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  \n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 300 + 100 * cos(angle);\n    let y = 300 + 100 * sin(angle);\n    brush.circle(x, y, 40);\n  }\n  \n  brush.fill('#ffd700', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 60);\n  \n  brush.fill('#e8907a', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 40);\n  \n  brush.fill('#a86a4b', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 20);\n  \n  brush.fill('#8e443d', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 10);\n  \n  brush.noFill();\n  brush.fill('#4e7947', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 320, 40);\n}","rating":null}},{"subject":"a blue iris in a translucent watercolor wash","domain":"out_of_domain","seed":101,"base_reward":0.0,"trained_reward":0.509785631715121,"base":null,"trained":{"img":"img/fd790ffce5bc.jpg","full":"img/fd790ffce5bc-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#6495ed', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 300 + 120 * cos(angle);\n    let y = 300 + 120 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#d1c4e9', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 80);\n  brush.fill('#ffffff', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 40);\n}","rating":null}},{"subject":"a blue iris in a translucent watercolor wash","domain":"out_of_domain","seed":202,"base_reward":0.0,"trained_reward":0.5132838104849801,"base":null,"trained":{"img":"img/0dac59e25b8d.jpg","full":"img/0dac59e25b8d-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#87ceeb', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 300 + 120 * cos(angle);\n    let y = 300 + 120 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#87ceeb', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 80);\n  brush.fill('#90caf9', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 40);\n}","rating":null}},{"subject":"a blue iris in a translucent watercolor wash","domain":"out_of_domain","seed":303,"base_reward":0.0,"trained_reward":0.5703050545819581,"base":null,"trained":{"img":"img/74ff9cada8d9.jpg","full":"img/74ff9cada8d9-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#6495ed', 100);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.2, 0.4);\n  \n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 300 + 120 * cos(angle);\n    let y = 300 + 120 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  \n  brush.fill('#90caf9', 100);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.1, 0.3);\n  brush.circle(300, 300, 80);\n  \n  brush.fill('#e1bee7', 100);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 40);\n}","rating":null}},{"subject":"a pink peony viewed from the side","domain":"out_of_domain","seed":101,"base_reward":0.0,"trained_reward":0.42548785028930003,"base":null,"trained":{"img":"img/5d0bfd98c28a.jpg","full":"img/5d0bfd98c28a-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 300 + 100 * cos(angle);\n    let y = 300 + 100 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#ffcdd2', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 140);\n}","rating":null}},{"subject":"a pink peony viewed from the side","domain":"out_of_domain","seed":202,"base_reward":0.0,"trained_reward":0.3942689832897355,"base":null,"trained":{"img":"img/c1092352cd2b.jpg","full":"img/c1092352cd2b-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 300 + 100 * cos(angle);\n    let y = 300 + 100 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#ffd9d9', 100);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 140);\n}","rating":null}},{"subject":"a pink peony viewed from the side","domain":"out_of_domain","seed":303,"base_reward":0.0,"trained_reward":0.5716947446638616,"base":null,"trained":{"img":"img/cab12a660a57.jpg","full":"img/cab12a660a57-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  \n  for (let i = 0; i < 12; i++) {\n    let angle = 30 + i * 30;\n    let x = 300 + 100 * cos(angle);\n    let y = 300 + 100 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  \n  brush.fill('#ffc107', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 80);\n  \n  brush.fill('#e8907a', 140);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.3, 0.4);\n  brush.circle(300, 300, 140);\n}","rating":null}},{"subject":"three small daisies in a loose watercolor composition","domain":"out_of_domain","seed":101,"base_reward":0.11516572183401395,"trained_reward":0.3297644203226538,"base":{"img":"img/35dde52bedc4.jpg","full":"img/35dde52bedc4-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#e8907a', 140);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let i = 0; i < 12; i++) {\n    let angle = i * 30;\n    let x = 100 * cos(angle);\n    let y = 100 * sin(angle);\n    brush.vertex(x + 300, y + 300);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#f9d6c3', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 80);\n  brush.fill('#ffffff', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 60);\n}","rating":null},"trained":{"img":"img/6ec617ee7480.jpg","full":"img/6ec617ee7480-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#e8907a', 140);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 6; i++) {\n    let angle = 60 * i;\n    let x = 300 + 100 * cos(angle);\n    let y = 300 + 100 * sin(angle);\n    brush.circle(x, y, 30);\n  }\n  brush.fill('#f4c26a', 140);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 40);\n  brush.fill('#f0e68c', 140);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 20);\n}","rating":null}},{"subject":"three small daisies in a loose watercolor composition","domain":"out_of_domain","seed":202,"base_reward":0.11888453614691796,"trained_reward":0.12646166479273657,"base":{"img":"img/2479cb2bdba7.jpg","full":"img/2479cb2bdba7-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 300, 140);\n  brush.fill('#ffe0b2', 140);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.1, 0.4);\n  brush.circle(300, 300, 100);\n  brush.fill('#ffccbc', 160);\n  brush.fillBleed(0.4);\n  brush.fillTexture(0.05, 0.5);\n  brush.circle(300, 300, 70);\n  brush.fill('#ffab91', 180);\n  brush.fillBleed(0.5);\n  brush.fillTexture(0.08, 0.6);\n  brush.circle(300, 300, 40);\n}","rating":null},"trained":{"img":"img/3e64dd287a16.jpg","full":"img/3e64dd287a16-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 6; i++) {\n    let angle = 60 * i;\n    brush.circle(250 + 50 * Math.sin(angle), 250 + 50 * Math.cos(angle), 30);\n  }\n  brush.fill('#ffd700', 120);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.3, 0.4);\n  brush.circle(300, 300, 40);\n  brush.fill('#ffffff', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 20);\n}","rating":null}},{"subject":"three small daisies in a loose watercolor composition","domain":"out_of_domain","seed":303,"base_reward":0.11812053561325028,"trained_reward":0.1279933385392626,"base":{"img":"img/31afb58e7bc1.jpg","full":"img/31afb58e7bc1-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let i = 0; i < 360; i += 10) {\n    let x = 200 + 80 * cos(i);\n    let y = 200 + 80 * sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#f8bbd0', 140);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.beginShape();\n  for (let i = 0; i < 360; i += 10) {\n    let x = 180 + 60 * cos(i);\n    let y = 200 + 60 * sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#fbc0c0', 160);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.beginShape();\n  for (let i = 0; i < 360; i += 10) {\n    let x = 190 + 50 * cos(i);\n    let y = 200 + 50 * sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#fff9c4', 180);\n  brush.fillBleed(0.05);\n  brush.fillTexture(0.05, 0.1);\n  brush.beginShape();\n  for (let i = 0; i < 360; i += 10) {\n    let x = 195 + 30 * cos(i);\n    let y = 200 + 30 * sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#ffe0b2', 200);\n  brush.fillBleed(0.05);\n  brush.fillTexture(0.05, 0.1);\n  brush.beginShape();\n  for (let i = 0; i < 360; i += 10) {\n    let x = 197 + 20 * cos(i);\n    let y = 200 + 20 * sin(i);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n}","rating":null},"trained":{"img":"img/119ddd4afe44.jpg","full":"img/119ddd4afe44-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#e8907a', 140);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 6; i++) {\n    let angle = 60 * i;\n    let x = 300 + 80 * cos(angle);\n    let y = 300 + 80 * sin(angle);\n    brush.circle(x, y, 30);\n  }\n  brush.fill('#fff4df', 140);\n  brush.circle(300, 300, 60);\n  brush.fill('#f4f1de', 140);\n  brush.circle(300, 300, 40);\n  brush.fill('#f9f9f4', 140);\n  brush.circle(300, 300, 20);\n}","rating":null}},{"subject":"a single sunflower with soft bleeding edges","domain":"out_of_domain","seed":101,"base_reward":0.2709205385693133,"trained_reward":0.7053398918734765,"base":{"img":"img/3e0cab236524.jpg","full":"img/3e0cab236524-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let i = 0; i < 30; i++) {\n    let angle = i * 12;\n    let r = 100 + 30 * sin(angle * 0.1 + random(0, 100));\n    let x = 300 + r * cos(angle);\n    let y = 300 + r * sin(angle);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#f48fb1', 140);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.3, 0.4);\n  brush.beginShape();\n  for (let i = 0; i < 20; i++) {\n    let angle = i * 18;\n    let r = 80 + 20 * sin(angle * 0.1 + random(0, 100));\n    let x = 300 + r * cos(angle);\n    let y = 300 + r * sin(angle);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n  brush.fill('#f8bbd0', 160);\n  brush.fillBleed(0.4);\n  brush.fillTexture(0.4, 0.5);\n  brush.beginShape();\n  for (let i = 0; i < 15; i++) {\n    let angle = i * 24;\n    let r = 60 + 15 * sin(angle * 0.1 + random(0, 100));\n    let x = 300 + r * cos(angle);\n    let y = 300 + r * sin(angle);\n    brush.vertex(x, y);\n  }\n  brush.endShape(CLOSE);\n}","rating":null},"trained":{"img":"img/6017af98bfab.jpg","full":"img/6017af98bfab-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 20; i++) {\n    let angle = 360 / 20 * i;\n    let x = 300 + 120 * cos(angle);\n    let y = 300 + 120 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#ffd700', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 80);\n  brush.fill('#fdd271', 120);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.15, 0.25);\n  brush.circle(300, 300, 100);\n  brush.fill('#fff4df', 120);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.3, 0.4);\n  brush.circle(300, 300, 120);\n}","rating":null}},{"subject":"a single sunflower with soft bleeding edges","domain":"out_of_domain","seed":202,"base_reward":0.0,"trained_reward":0.7663012347040884,"base":null,"trained":{"img":"img/a4efd2c549f8.jpg","full":"img/a4efd2c549f8-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 20; i++) {\n    let angle = 360 / 20 * i - 90;\n    let x = 300 + 120 * cos(angle);\n    let y = 300 + 120 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#f9a825', 140);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.3, 0.4);\n  brush.circle(300, 300, 80);\n  brush.fill('#f4511e', 160);\n  brush.fillBleed(0.4);\n  brush.fillTexture(0.4, 0.5);\n  brush.circle(300, 300, 60);\n  brush.fill('#e64a19', 180);\n  brush.fillBleed(0.5);\n  brush.fillTexture(0.5, 0.6);\n  brush.circle(300, 300, 40);\n  brush.fill('#d32f2f', 200);\n  brush.fillBleed(0.6);\n  brush.fillTexture(0.6, 0.7);\n  brush.circle(300, 300, 20);\n}","rating":null}},{"subject":"a single sunflower with soft bleeding edges","domain":"out_of_domain","seed":303,"base_reward":0.0,"trained_reward":0.7777638197540251,"base":null,"trained":{"img":"img/93e1cfb30d71.jpg","full":"img/93e1cfb30d71-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.noFill();\n  brush.fill('#ef9a82', 120);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.2, 0.3);\n  for (let i = 0; i < 20; i++) {\n    let angle = 360 / 20 * i - 90;\n    let x = 300 + 120 * cos(angle);\n    let y = 300 + 120 * sin(angle);\n    brush.circle(x, y, 60);\n  }\n  brush.fill('#ffd700', 120);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.1, 0.2);\n  brush.circle(300, 300, 80);\n  brush.fill('#e8907a', 140);\n  brush.fillBleed(0.3);\n  brush.fillTexture(0.3, 0.4);\n  brush.circle(300, 300, 40);\n}","rating":null}}]},"v2":{"steps":[{"step":1,"reward":0.2582021763159607,"valid":0.875,"hps":0.16107685165108526,"subject":0.15331910969013865,"chars":2044.75,"kl":null},{"step":2,"reward":0.23129148851085118,"valid":0.71875,"hps":0.17595315049296434,"subject":0.18243273088947995,"chars":2216.0625,"kl":null},{"step":3,"reward":0.2086092999246384,"valid":0.625,"hps":0.19216602688188283,"subject":0.24327756802740624,"chars":2269.625,"kl":null},{"step":4,"reward":0.2565342461733392,"valid":0.8125,"hps":0.20607411284016422,"subject":0.07453446649574638,"chars":2000.59375,"kl":null},{"step":5,"reward":0.2745205937065805,"valid":0.90625,"hps":0.14952071115541654,"subject":0.16372225549852812,"chars":2089.3125,"kl":null},{"step":6,"reward":0.2821926170097003,"valid":0.8125,"hps":0.20043411501687627,"subject":0.20121089143531906,"chars":2027.96875,"kl":null},{"step":7,"reward":0.28546414587952457,"valid":0.875,"hps":0.18408342597844293,"subject":0.1469109581192762,"chars":1994.625,"kl":null},{"step":8,"reward":0.352056650261479,"valid":0.8125,"hps":0.24398264629386862,"subject":0.5212230126023945,"chars":1809.84375,"kl":null},{"step":9,"reward":0.31698793732251757,"valid":0.90625,"hps":0.16303476507956094,"subject":0.2579255443134602,"chars":1975.28125,"kl":null},{"step":10,"reward":0.36918503234350986,"valid":0.9375,"hps":0.2262227328538984,"subject":0.3636796595460813,"chars":1714.15625,"kl":null},{"step":11,"reward":0.305427032299503,"valid":0.9375,"hps":0.19047146236189724,"subject":0.18984099893811315,"chars":1971.25,"kl":null},{"step":12,"reward":0.3219714356953248,"valid":0.90625,"hps":0.22074731053267918,"subject":0.20521843855059504,"chars":1890.5625,"kl":null},{"step":13,"reward":0.36789651317581146,"valid":0.9375,"hps":0.24336860987490605,"subject":0.35528943328972673,"chars":1670.28125,"kl":null},{"step":14,"reward":0.279429808803062,"valid":0.90625,"hps":0.20349227934274142,"subject":0.11325565667250666,"chars":1992.15625,"kl":null},{"step":15,"reward":0.2851632244437138,"valid":0.90625,"hps":0.15256901462197883,"subject":0.22579275452630226,"chars":1915.34375,"kl":null},{"step":16,"reward":0.3217840481563118,"valid":0.96875,"hps":0.1857545861182087,"subject":0.1883918804422856,"chars":1852.25,"kl":null},{"step":17,"reward":0.2846509056685677,"valid":0.875,"hps":0.19618476017142034,"subject":0.19181290348005373,"chars":1743.40625,"kl":null},{"step":18,"reward":0.3268773946926816,"valid":1.0,"hps":0.18750222773925893,"subject":0.18098237281992624,"chars":1773.25,"kl":null},{"step":19,"reward":0.3859575399628237,"valid":1.0,"hps":0.2080504643960465,"subject":0.3610619860371571,"chars":1656.375,"kl":null},{"step":20,"reward":0.3116132484065374,"valid":0.96875,"hps":0.2422863088346566,"subject":0.06936806875622155,"chars":1850.28125,"kl":null},{"step":21,"reward":0.4661248698635813,"valid":1.0,"hps":0.2995424765615351,"subject":0.5042063342407346,"chars":1746.78125,"kl":null},{"step":22,"reward":0.32085975467942035,"valid":1.0,"hps":0.17538867174951095,"subject":0.2313406887601701,"chars":1748.5625,"kl":null},{"step":23,"reward":0.3139914922871824,"valid":0.90625,"hps":0.20614894409694168,"subject":0.24420842209204646,"chars":2109.25,"kl":null},{"step":24,"reward":0.3378281725917462,"valid":0.96875,"hps":0.2417269030900131,"subject":0.12674661432468,"chars":1711.25,"kl":null},{"step":25,"reward":0.32416539626259105,"valid":1.0,"hps":0.16030541626955938,"subject":0.20839436063033645,"chars":1800.28125,"kl":null},{"step":26,"reward":0.3808166584803227,"valid":0.96875,"hps":0.3259077581030744,"subject":0.19379414553986862,"chars":1809.65625,"kl":null},{"step":27,"reward":0.35948131331879735,"valid":1.0,"hps":0.23067343244841484,"subject":0.20875308402992232,"chars":1892.46875,"kl":null},{"step":28,"reward":0.3506874123180405,"valid":1.0,"hps":0.2717410650861732,"subject":0.09116589845825729,"chars":1819.75,"kl":null},{"step":29,"reward":0.3552250619131699,"valid":1.0,"hps":0.2454840937312834,"subject":0.2018688446478336,"chars":1761.09375,"kl":null},{"step":30,"reward":0.34495915188771825,"valid":0.96875,"hps":0.2614543202467791,"subject":0.12931469301392715,"chars":2039.75,"kl":null},{"step":31,"reward":0.348850591150691,"valid":0.9375,"hps":0.26424306981760537,"subject":0.19982779599376954,"chars":1979.0625,"kl":null},{"step":32,"reward":0.37770348458143543,"valid":1.0,"hps":0.3156437872340752,"subject":0.10321830800444332,"chars":1985.0,"kl":null},{"step":33,"reward":0.3438352060182632,"valid":1.0,"hps":0.2570298507281074,"subject":0.131481450502136,"chars":1707.96875,"kl":null},{"step":34,"reward":0.3865009188282382,"valid":1.0,"hps":0.2911035436488435,"subject":0.22020668942423072,"chars":1897.15625,"kl":null},{"step":35,"reward":0.4034744608342128,"valid":1.0,"hps":0.3123314700996751,"subject":0.19825316151627703,"chars":1990.46875,"kl":null}],"frames":{"5":["img/39c1b694eec0.jpg","img/b030ce9d326f.jpg","img/790b1a2f5bfd.jpg","img/df6628e2353a.jpg"],"10":["img/cac828981d5b.jpg","img/b0590883bc01.jpg","img/56e81f4521f3.jpg"],"15":["img/8a6a06738b9c.jpg","img/c1b4b2e05b63.jpg","img/58329fc532da.jpg","img/e8de21c975de.jpg"],"20":["img/992c8286d41d.jpg","img/8a01100538da.jpg","img/82860f452d35.jpg","img/51747c83204a.jpg"],"25":["img/22a299124ef5.jpg","img/9d81d15f6fa0.jpg","img/a5098b5eec00.jpg","img/0fe8e6cf433f.jpg"],"30":["img/2244c5b0c4dc.jpg","img/93aff190bbe4.jpg","img/fd7f23f5b0c1.jpg","img/6222dc25acf9.jpg"],"35":["img/708cad0d8f78.jpg","img/068498d0c24b.jpg","img/54d649fe7b9e.jpg","img/253a0ffce55b.jpg"]},"grid":{"columns":["original","v2 SFT","v2 SFT+RL","v2.1 SFT+RL"],"rows":[{"subject":"a cat reading a tiny book","cells":[{"img":"img/95d4f8de366b.jpg","full":"img/95d4f8de366b-full.jpg","code":"```javascript\nfunction setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 390, 120);\n  brush.circle(300, 250, 95);\n  brush.beginShape();\n  brush.vertex(225, 215);\n  brush.vertex(240, 130);\n  brush.vertex(285, 180);\n  brush.endShape(CLOSE);\n  brush.beginShape();\n  brush.vertex(375, 215);\n  brush.vertex(360, 130);\n  brush.vertex(315, 180);\n  brush.endShape(CLOSE);\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.circle(332, 245, 9);\n  brush.fill('#e8879a', 200);\n  brush.circle(300, 272, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n  brush.fill('#f2b880', 150);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 470, 30);\n  brush.fill('#f2b880', 200);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(290, 465, 14);\n  brush.circle(310, 465, 14);\n  brush.fill('#e8879a', 200);\n  brush.circle(300, 455, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(295, 475, 285, 485);\n  brush.line(305, 475, 315, 485);\n  brush.fill('#f2b880', 150);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(295, 435, 30);\n  brush.fill('#f2b880', 200);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(285, 430, 14);\n  brush.circle(305, 430, 14);\n  brush.fill('#e8879a', 200);\n  brush.circle(295, 420, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(290, 445, 280, 455);\n  brush.line(300, 445, 310, 455);\n  brush.fill('#f2b880', 150);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(290, 495, 30);\n  brush.fill('#f2b880', 200);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(280, 490, 14);\n  brush.circle(300, 490, 14);\n  brush.fill('#e8879a', 200);\n  brush.circle(290, 480, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(285, 505, 275, 515);\n  brush.line(295, 505, 305, 515);\n  brush.fill('#f2b880', 150);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(295, 415, 35);\n  brush.fill('#f2b880', 200);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(285, 410, 14);\n  brush.circle(305, 410, 14);\n  brush.fill('#e8879a', 200);\n  brush.circle(295, 400, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(290, 425, 280, 435);\n  brush.line(300, 425, 310, 435);\n  brush.fill('#f2b880', 150);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(285, 505, 35);\n  brush.fill('#f2b880', 200);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(275, 500, 14);\n  brush.circle(295, 500, 14);\n  brush.fill('#e8879a', 200);\n  brush.circle(285, 490, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(280, 515, 270, 525);\n  brush.line(290, 515, 300, 525);\n  brush.fill('#f2b880', 150);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(285, 505, 30);\n  brush.fill('#f2b880', 200);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(275, 500, 14);\n  brush.circle(295, 500, 14);\n  brush.fill('#e8879a', 200);\n  brush.circle(285, 490, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(280, 515, 270, 525);\n  brush.line(290, 515, 300, 525);\n}","rating":"no"},null,{"img":"img/5db2ecdbba4d.jpg","full":"img/5db2ecdbba4d-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 220);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(300, 380, 110, 110, '#f2a94c', 190);\n  // head\n  blob(300, 260, 85, 75, '#f2a94c', 190);\n  // ears\n  tri(240, 230, 285, 145, 330, 230, '#f2a94c');\n  tri(360, 230, 315, 145, 270, 230, '#f2a94c');\n  // face\n  brush.noStroke();\n  brush.fill('#4b4747', 240);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#4b4747', 240);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e87aa0', 240);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // whiskers\n  ink('#706a6a', 1);\n  brush.line(268, 245, 200, 230);\n  brush.line(268, 245, 200, 260);\n  brush.line(332, 245, 400, 230);\n  brush.line(332, 245, 400, 260);\n  // paws\n  blob(215, 420, 35, 22, '#f2a94c', 190);\n  blob(385, 420, 35, 22, '#f2a94c', 190);\n  // tail\n  ink('#706a6a', 2);\n  brush.line(300, 380, 445, 475);\n  // tiny book\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(370, 365, 15, 180, 360);\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(397, 348, 10, 180, 360);\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(424, 365, 15, 180, 360);\n  // text\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(363, 389, 6, 180, 360);\n  // www\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(401, 399, 6, 180, 360);\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(440, 389, 6, 180, 360);\n}","rating":"no"},null]},{"subject":"a kitten inside a knitted hat","cells":[{"img":"img/a36bcfba2773.jpg","full":"img/a36bcfba2773-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 390, 120);\n  brush.circle(300, 250, 95);\n  brush.beginShape();\n  brush.vertex(225, 215);\n  brush.vertex(240, 130);\n  brush.vertex(285, 180);\n  brush.endShape(CLOSE);\n  brush.beginShape();\n  brush.vertex(375, 215);\n  brush.vertex(360, 130);\n  brush.vertex(315, 180);\n  brush.endShape(CLOSE);\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.circle(332, 245, 9);\n  brush.fill('#e8879a', 200);\n  brush.circle(300, 272, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n}","rating":"okay"},{"img":"img/6485f60936e4.jpg","full":"img/6485f60936e4-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // kitten\n  // head\n  blob(280, 330, 56, 54, '#d8d8d8', 190);\n  blob(280, 330, 52, 48, '#b8b8b8', 190);\n  // ears\n  tri(223, 280, 251, 157, 299, 217, '#d8d8d8');\n  tri(235, 276, 260, 171, 294, 223, '#b8b8b8');\n  tri(220, 278, 241, 184, 264, 233, '#a5a5a5');\n  tri(241, 271, 257, 197, 269, 236, '#a0a0a0');\n  tri(256, 260, 265, 215, 269, 246, '#939393');\n  // face\n  ink('#4d4d4d', 2);\n  brush.arc(259, 291, 11, 240, 300);\n  brush.arc(295, 294, 11, 240, 300);\n  brush.noStroke();\n  brush.fill('#e8879a', 210);\n  brush.circle(277, 314, 4);\n  brush.noStroke();\n  brush.fill('#000000', 210);\n  brush.circle(274, 327, 2);\n  ink('#2a2a2a', 1);\n  brush.line(258, 330, 214, 320);\n  brush.line(257, 337, 213, 342);\n  brush.line(300, 330, 344, 320);\n  brush.line(301, 337, 346, 342);\n  // kitten in hat\n  // hat\n  brush.noStroke();\n  brush.fill('#221a1a', 170);\n  brush.fillBleed(0.1);\n  brush.beginShape();\n  brush.vertex(205, 135);\n  brush.vertex(125, 212);\n  brush.vertex(247, 270);\n  brush.vertex(327, 205);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#a8a8a8', 140);\n  brush.beginShape();\n  brush.vertex(205, 135);\n  brush.vertex(162, 185);\n  brush.vertex(247, 233);\n  brush.vertex(317, 187);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#d8d8d8', 140);\n  brush.beginShape();\n  brush.vertex(205, 139);\n  brush.vertex(170, 167);\n  brush.vertex(238, 195);\n  brush.vertex(277, 171);\n  brush.endShape(CLOSE);\n  // head in hat\n  blob(232, 198, 27, 22, '#a8a8a8', 170);\n  blob(232, 198, 24, 19, '#878787', 170);\n}","rating":"no"},{"img":"img/c16d5441990f.jpg","full":"img/c16d5441990f-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 220);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // kitten body\n  blob(300, 390, 120, 120, '#f2b880', 150);\n  // head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // paws\n  blob(210, 465, 44, 28, '#f2b880', 150);\n  blob(390, 465, 44, 28, '#f2b880', 150);\n  // ink for whiskers\n  ink('#5a4636', 1);\n  // whiskers\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // knitted hat\n  // brim\n  brush.noStroke();\n  brush.fill('#e2c1a9', 210);\n  brush.fillBleed(0.1);\n  brush.beginShape();\n  brush.vertex(220, 313);\n  brush.vertex(270, 365);\n  brush.vertex(320, 313);\n  brush.vertex(320, 387);\n  brush.vertex(270, 438);\n  brush.vertex(220, 387);\n  brush.endShape(CLOSE);\n  // crown\n  brush.noStroke();\n  brush.fill('#e2c1a9', 210);\n  brush.fillBleed(0.1);\n  brush.beginShape();\n  brush.vertex(270, 373);\n  brush.vertex(300, 462);\n  brush.vertex(359, 462);\n  brush.vertex(389, 373);\n  brush.vertex(359, 284);\n  brush.vertex(300, 284);\n  brush.endShape(CLOSE);\n}","rating":"no"},{"img":"img/d7dab8aa1311.jpg","full":"img/d7dab8aa1311-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.19);\n  brush.fillTexture(0.09, 0.23);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // hat body\n  blob(300, 383, 223, 148, '#ece2d3', 191);\n  blob(283, 414, 44, 18, '#a9a29f', 207);\n  blob(318, 414, 44, 18, '#a9a29f', 207);\n  // brim\n  brush.noFill();\n  brush.set('marker', '#6a5e5a', 6);\n  brush.arc(265, 445, 83, 220, 340);\n  brush.noFill();\n  brush.set('marker', '#6a5e5a', 4);\n  brush.arc(335, 450, 73, 220, 340);\n  // head\n  blob(300, 240, 120, 105, '#e9d6cf', 187);\n  blob(290, 268, 22, 15, '#d7b6a3', 192);\n  blob(311, 268, 22, 15, '#d7b6a3', 192);\n  blob(287, 295, 18, 12, '#f8c5c0', 202);\n  // ears\n  tri(230, 183, 228, 207, 247, 204, '#e9d6cf');\n  tri(230, 190, 229, 214, 248, 212, '#e9d6cf');\n  tri(194, 173, 205, 200, 227, 194, '#f0a39a');\n  tri(194, 178, 205, 205, 228, 198, '#e9b7b3');\n  tri(286, 183, 289, 206, 270, 203, '#e9d6cf');\n  tri(286, 190, 289, 214, 271, 212, '#e9d6cf');\n  tri(251, 173, 262, 200, 283, 194, '#f0a39a');\n  tri(251, 178, 262, 205, 284, 198, '#e9b7b3'); // head ends here\n  // whiskers\n  ink('#6a5e5a', 1);\n  brush.line(282, 272, 217, 237);\n  brush.line(282, 286, 217, 298);\n  brush.line(318, 272, 383, 237);\n  brush.line(318, 286, 383, 298);\n  // face\n  brush.noStroke();\n  brush.fill('#3a2a2c', 240);\n  brush.fillBleed(0.07);\n  brush.circle(277, 255, 8);\n  brush.noStroke();\n  brush.fill('#3a2a2c', 240);\n  brush.fillBleed(0.07);\n  brush.circle(323, 255, 8);\n  brush.noStroke();\n  brush.fill('#f9ca26', 230);\n  brush.fillBleed(0.03);\n  brush.circle(299, 269, 5);\n  // body\n  blob(300, 378, 92, 95, '#e9d6cf', 151);\n  blob(276, 448, 23, 18, '#d7b6a3', 180);\n  blob(324, 448, 23, 18, '#d7b6a3', 180);\n  // legs\n  brush.noFill();\n  brush.set('marker', '#6a5e5a', 5);\n  brush.line(259, 420, 236, 467);\n  brush.line(280, 420, 304, 467);\n  brush.noFill();\n  brush.set('marker', '#6a5e5a', 4);\n  brush.line(263, 442, 246, 480);\n  brush.line(286, 442, 309, 480);\n}","rating":"no"}]},{"subject":"a cat chasing a butterfly","cells":[null,{"img":"img/33018ea09a94.jpg","full":"img/33018ea09a94-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // Body\n  blob(270, 310, 68, 70, '#a9a9b3', 190);\n  // Tail\n  brush.noFill();\n  brush.set('marker', '#a9a9b3', 8);\n  brush.arc(340, 340, 30, 200, 330);\n  // Head\n  blob(200, 220, 45, 44, '#a9a9b3', 190);\n  tri(150, 200, 174, 112, 216, 154, '#d9d9e3');\n  tri(168, 205, 174, 134, 203, 166, '#fafafa');\n  tri(178, 209, 180, 146, 208, 178, '#f7f7fc');\n  // Face\n  ink('#6a6a80', 2);\n  brush.arc(189, 230, 10, 230, 300);\n  brush.arc(197, 221, 10, 230, 300);\n  brush.noStroke();\n  brush.fill('#c5c6da', 230);\n  brush.fillBleed(0.05);\n  brush.circle(204, 237, 5);\n  // Ears\n  blob(145, 170, 17, 13, '#a9a9b3', 200);\n  blob(255, 170, 17, 13, '#a9a9b3', 200);\n  tri(131, 147, 145, 76, 165, 112, '#d9d9e3');\n  tri(227, 147, 241, 76, 261, 112, '#d9d9e3');\n  tri(125, 140, 138, 77, 158, 112, '#f8f8fa');\n  tri(231, 140, 245, 77, 264, 112, '#f8f8fa');\n  tri(121, 132, 134, 77, 154, 111, '#f3f4fb');\n  tri(223, 132, 236, 77, 255, 111, '#f3f4fb');\n  // Legs\n  // Left\n  brush.noFill();\n  brush.set('marker', '#b2b2c3', 5);\n  brush.arc(167, 270, 25, 170, 340);\n  brush.noFill();\n  brush.set('marker', '#b2b2c3', 6);\n  brush.arc(159, 297, 23, 170, 340);\n  // Right\n  brush.noFill();\n  brush.set('marker', '#b2b2c3', 5);\n  brush.arc(232, 270, 25, 170, 340);\n  brush.noFill();\n  brush.set('marker', '#b2b2c3', 6);\n  brush.arc(241, 297, 23, 170, 340);\n  // Butterfly\n  brush.noStroke();\n  brush.fill('#ff9756', 180);\n  brush.fillBleed(0.15);\n  brush.beginShape();\n  brush.vertex(420, 250);\n  brush.vertex(500, 170);\n  brush.vertex(560, 200);\n  brush.vertex(610, 250);\n  brush.vertex(560, 300);\n  brush.vertex(500, 330);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#ff9756', 180);\n  brush.fillBleed(0.15);\n  brush.beginShape();\n  brush.vertex(470, 200);\n  brush.vertex(525, 155);\n  brush.vertex(560, 190);\n  brush.vertex(585, 230);\n  brush.vertex(560, 260);\n  brush.vertex(525, 295);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#fff', 190);\n  brush.fillBleed(0.15);\n  brush.beginShape();\n  brush.vertex(470, 185);\n  brush.vertex(525, 145);\n  brush.vertex(555, 175);\n  brush.vertex(575, 210);\n  brush.vertex(555, 240);\n  brush.vertex(525, 270);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#fff', 190);\n  brush.fillBleed(0.15);\n  brush.beginShape();\n  brush.vertex(470, 215);\n  brush.vertex(525, 175);\n  brush.vertex(555, 205);\n  brush.vertex(575, 240);\n  brush.vertex(555, 270);\n  brush.vertex(525, 300);\n  brush.endShape(CLOSE);\n}","rating":"no"},{"img":"img/23849600b530.jpg","full":"img/23849600b530-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 200);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // Body\n  blob(300, 390, 120, 120, '#f2b880', 150);\n  // Head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // Ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // Paws\n  blob(210, 460, 55, 35, '#f2b880', 150);\n  blob(390, 460, 55, 35, '#f2b880', 150);\n  // Face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // Whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  // Ink for tail\n  ink('#5a4636', 2);\n  // Tail as an arc: points from (300,390) to (430,470)\n  brush.arc(300, 390, 140, 210, 390);\n  // Butterfly\n  ink('#e4a83a', 1);\n  brush.arc(445, 420, 20, 180, 360);\n  brush.arc(475, 420, 20, 200, 300);\n  // Paint body in wash\n  brush.noStroke();\n  brush.fill('#e4a83a', 140);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  brush.vertex(445, 420);\n  brush.vertex(460, 495);\n  brush.vertex(475, 420);\n  brush.endShape(CLOSE);\n}","rating":"no"},{"img":"img/b4a265f96f2c.jpg","full":"img/b4a265f96f2c-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.012);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 200);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(330, 360, 85, 70, '#e9e2d9', 150);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#a9a29e', 10);\n  brush.arc(390, 370, 40, 200, 380);\n  // paws\n  blob(300, 392, 18, 13, '#e9e2d9', 150);\n  blob(361, 403, 17, 12, '#e9e2d9', 150);\n  // head\n  blob(292, 248, 75, 64, '#e9e2d9', 150);\n  // ears\n  tri(220, 222, 246, 128, 285, 172, '#e9e2d9');\n  tri(364, 220, 338, 126, 300, 170, '#e9e2d9');\n  tri(234, 218, 247, 148, 267, 190, '#f5c294');\n  tri(351, 216, 338, 146, 318, 188, '#f5c294');\n  // face\n  ink('#4a4a50', 4);\n  brush.arc(268, 236, 11, 25, 130);\n  brush.arc(316, 236, 11, 25, 130);\n  brush.noStroke();\n  brush.fill('#db4437', 230);\n  brush.fillBleed(0.05);\n  brush.circle(291, 249, 6);\n  brush.noStroke();\n  brush.fill('#e9c46a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(291, 258, 4);\n  // whiskers\n  ink('#8a8a8a', 3);\n  brush.line(253, 247, 190, 234);\n  brush.line(253, 247, 190, 260);\n  brush.line(329, 247, 392, 234);\n  brush.line(329, 247, 393, 260);\n  // body inside\n  ink('#9a8980', 2);\n  brush.arc(330, 360, 85, 20, 160);\n  brush.arc(330, 360, 85, 200, 340);\n  // belly\n  brush.noStroke();\n  brush.fill('#f0d9b5', 200);\n  brush.fillBleed(0.1);\n  brush.beginShape();\n  for (let a = 230; a < 310; a += 24) {\n    brush.vertex(325 + cos(a) * 55, 380 + sin(a) * 32);\n  }\n  brush.endShape(CLOSE);\n  // tail ink\n  ink('#8a7e74', 3);\n  brush.line(380, 373, 425, 410);\n  // butterfly\n  brush.noFill();\n  brush.set('marker', '#a9a29e', 4);\n  brush.arc(433, 224, 28, 260, 300);\n  brush.arc(433, 224, 22, 240, 280);\n  brush.arc(449, 260, 20, 225, 255);\n  brush.noStroke();\n  brush.fill('#fad0c4', 220);\n  brush.fillBleed(0.08);\n  brush.circle(433, 224, 6);\n  brush.noStroke();\n  brush.fill('#f766a3', 200);\n  brush.fillBleed(0.08);\n  brush.circle(438, 219, 5);\n}","rating":"no"}]},{"subject":"a cat with a party hat and a cupcake","cells":[{"img":"img/cd968be28ae0.jpg","full":"img/cd968be28ae0-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 390, 120);\n  brush.circle(300, 250, 95);\n  brush.beginShape();\n  brush.vertex(225, 215);\n  brush.vertex(240, 130);\n  brush.vertex(285, 180);\n  brush.endShape(CLOSE);\n  brush.beginShape();\n  brush.vertex(375, 215);\n  brush.vertex(360, 130);\n  brush.vertex(315, 180);\n  brush.endShape(CLOSE);\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.circle(332, 245, 9);\n  brush.fill('#e8879a', 200);\n  brush.circle(300, 272, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n  brush.fill('#ff9a9e', 200);\n  brush.circle(300, 320, 40);\n  brush.fill('#f5c28b', 180);\n  brush.circle(290, 360, 25);\n  brush.fill('#c49c95', 200);\n  brush.circle(310, 360, 25);\n  brush.fill('#ffab91', 150);\n  brush.circle(300, 380, 20);\n  brush.fill('#ffb685', 180);\n  brush.circle(285, 400, 15);\n  brush.fill('#ffcb90', 180);\n  brush.circle(315, 400, 15);\n  brush.fill('#a9a69f', 200);\n  brush.circle(290, 420, 10);\n  brush.fill('#b7a396', 200);\n  brush.circle(310, 420, 10);\n  brush.fill('#f5c28b', 180);\n  brush.circle(295, 440, 8);\n  brush.fill('#ffb685', 180);\n  brush.circle(305, 440, 8);\n  brush.fill('#ff9a9e', 200);\n  brush.circle(300, 460, 12);\n  brush.fill('#ffd2ca', 160);\n  brush.circle(300, 480, 12);\n  brush.fill('#c49c95', 200);\n  brush.circle(295, 500, 10);\n  brush.fill('#b7a396', 200);\n  brush.circle(305, 500, 10);\n  brush.fill('#ffab91', 150);\n  brush.circle(300, 520, 12);\n  brush.fill('#ffcb90', 180);\n  brush.circle(300, 540, 10);\n  brush.fill('#f2b880', 200);\n  brush.circle(300, 560, 15);\n  brush.noFill();\n  brush.set('HB', '#a9a69f', 1);\n  brush.line(270, 565, 240, 585);\n  brush.line(270, 575, 240, 605);\n  brush.line(330, 565, 360, 585);\n  brush.line(330, 575, 360, 605);\n  brush.set('HB', '#ff9a9e', 1);\n  brush.line(300, 400, 305, 420);\n  brush.set('HB', '#ffab91', 1);\n  brush.line(300, 400, 295, 420);\n  brush.set('HB', '#f5c28b', 1);\n  brush.line(300, 400, 300, 420);\n}","rating":"no"},{"img":"img/1831707a7230.jpg","full":"img/1831707a7230-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let ang = 0; ang < 360; ang += 24) {\n    brush.vertex(x + cos(ang) * rx, y + sin(ang) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noFill();\n  brush.set('marker', col, 3);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // birthday toot\n  ink('#6b5b56', 3);\n  brush.arc(230, 225, 72, 280, 380);\n  brush.arc(350, 225, 72, 280, 380);\n  ink('#6b5b56', 13);\n  brush.line(248, 189, 291, 204);\n  brush.line(248, 238, 291, 223);\n  ink('#6b5b56', 12);\n  brush.arc(290, 200, 46, 250, 310);\n  brush.arc(337, 204, 36, 270, 300);\n  // cupcake\n  brush.noStroke();\n  brush.fill('#f8a3b4', 205);\n  brush.beginShape();\n  brush.vertex(458, 362);\n  brush.vertex(509, 322);\n  brush.vertex(545, 374);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#f8a3b4', 205);\n  brush.beginShape();\n  brush.vertex(509, 322);\n  brush.vertex(563, 291);\n  brush.vertex(596, 350);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#f8a3b4', 205);\n  brush.beginShape();\n  brush.vertex(487, 364);\n  brush.vertex(526, 340);\n  brush.vertex(554, 393);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#f8a3b4', 205);\n  brush.beginShape();\n  brush.vertex(480, 408);\n  brush.vertex(518, 386);\n  brush.vertex(548, 435);\n  brush.endShape(CLOSE);\n  blob(490, 444, 8, 4, '#e04a70', 180);\n  brush.noStroke();\n  brush.fill('#8e44ad', 205);\n  brush.beginShape();\n  brush.vertex(479, 447);\n  brush.vertex(492, 461);\n  brush.vertex(503, 450);\n  brush.endShape(CLOSE);\n  ink('#a75f8d', 2);\n  brush.arc(489, 449, 4, 10, 170);\n  brush.noStroke();\n  brush.fill('#a75f8d', 205);\n  brush.beginShape();\n  brush.vertex(456, 349);\n  brush.vertex(477, 363);\n  brush.vertex(497, 348);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#a75f8d', 205);\n  brush.beginShape();\n  brush.vertex(452, 393);\n  brush.vertex(469, 408);\n  brush.vertex(486, 395);\n  brush.endShape(CLOSE);\n  // cat\n  blob(282, 377, 77, 71, '#d6a5a5', 185);\n  blob(228, 470, 29, 24, '#d6a5a5', 185);\n  blob(342, 470, 29, 24, '#d6a5a5', 185);\n  tri(240, 410, 262, 472, 303, 442, '#5c4349');\n  tri(283, 433, 298, 472, 340, 442, '#5c4349');\n  tri(256, 412, 276, 467, 309, 435, '#b6a5a5');\n  // head\n  blob(269, 285, 87, 82, '#f5a9b4', 185);\n  blob(237, 360, 18, 16, '#f5a9b4', 185);\n  blob(297, 362, 18, 16, '#f5a9b4', 185);\n  tri(257, 326, 272, 369, 295, 344, '#744860');\n  tri(274, 338, 287, 369, 308, 344, '#744860');\n  tri(263, 318, 277, 359, 299, 336, '#e3a8c2');\n  // tail\n  brush.noFill();\n  brush.set('marker', '#f5a9b4', 5);\n  brush.beginShape();\n  brush.vertex(356, 331);\n  brush.vertex(372, 373);\n  brush.vertex(388, 346);\n  brush.endShape(CLOSE);\n  // ears\n  tri(201, 247, 218, 177, 245, 224, '#d088b7');\n  tri(246, 221, 259, 169, 293, 209, '#d088b7');\n  tri(214, 213, 225, 184, 241, 208, '#e3a8c2');\n  tri(236, 208, 244, 189, 262, 209, '#e3a8c2');\n  // whiskers\n  ink('#5a4636', 1);\n  brush.line(224, 250, 165, 240);\n  brush.line(224, 262, 165, 268);\n  brush.line(299, 250, 358, 240);\n  brush.line(299, 262, 358, 268);\n  // party hat\n  brush.noStroke();\n  brush.fill('#73c6e3', 180);\n  brush.circle(275, 206, 44);\n  brush.noStroke();\n  brush.fill('#73c6e3', 180);\n  brush.circle(287, 206, 25);\n  brush.noStroke();\n  brush.fill('#73c6e3', 180);\n  brush.circle(299, 206, 21);\n  brush.noStroke();\n  brush.fill('#4a8cba', 200);\n  brush.beginShape();\n  brush.vertex(273, 182);\n  brush.vertex(293, 161);\n  brush.vertex(313, 182);\n  brush.endShape(CLOSE);\n}","rating":"no"},{"img":"img/f3beea3e9bc8.jpg","full":"img/f3beea3e9bc8-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 210);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(300, 390, 120, 120, '#f2b880', 150);\n  // head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // pupils\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  // nose\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n  // party hat\n  ink('#d85a5a', 3);\n  brush.line(260, 262, 330, 262);\n  brush.arc(295, 262, 18, 180, 340);\n  ink('#fff4df', 1);\n  brush.set('marker', '#e8879a', 3);\n  brush.arc(295, 262, 12, 180, 340);\n  // cupcake\n  blob(440, 380, 55, 25, '#ffb2a5', 150);\n  ink('#f7d695', 2);\n  brush.line(440, 380, 500, 380);\n  brush.line(500, 380, 472, 435);\n  // yellow butter\n  brush.noFill();\n  brush.set('marker', '#f9c436', 2);\n  brush.arc(500, 380, 12, 0, 180);\n  // icing on top\n  brush.noFill();\n  brush.set('marker', '#f2a1a1', 2);\n  brush.arc(500, 380, 7, 270, 360);\n  // cherry\n  brush.noFill();\n  brush.set('marker', '#ff6aa7', 2);\n  brush.arc(493, 425, 5, 240, 300);\n}","rating":"no"},{"img":"img/1f7da76e25a9.jpg","full":"img/1f7da76e25a9-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.08, 0.03);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(303, 364, 103, 130, '#f2a987', 188);\n  // paws\n  blob(266, 477, 22, 13, '#f2a987', 159);\n  blob(339, 477, 22, 13, '#f2a987', 159);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#e9967a', 6);\n  brush.arc(406, 433, 73, 220, 340);\n  // head\n  blob(303, 253, 83, 73, '#f2a987', 188);\n  // ears\n  tri(225, 224, 254, 125, 290, 181, '#f2a987');\n  tri(380, 224, 349, 125, 314, 181, '#f2a987');\n  tri(240, 203, 262, 142, 284, 177, '#f9c4a4');\n  tri(364, 203, 342, 142, 320, 177, '#f9c4a4');\n  // face\n  brush.noStroke();\n  brush.fill('#3a2d28', 240);\n  brush.fillBleed(0.06);\n  brush.circle(273, 249, 8);\n  brush.noStroke();\n  brush.fill('#3a2d28', 240);\n  brush.fillBleed(0.06);\n  brush.circle(332, 249, 8);\n  brush.noStroke();\n  brush.fill('#e8828a', 211);\n  brush.fillBleed(0.09);\n  brush.circle(298, 242, 5);\n  brush.noStroke();\n  brush.fill('#e8828a', 211);\n  brush.fillBleed(0.09);\n  brush.circle(297, 262, 5);\n  // whiskers\n  ink('#6a524a', 1);\n  brush.line(259, 252, 212, 242);\n  brush.line(259, 259, 212, 266);\n  brush.line(345, 252, 393, 242);\n  brush.line(345, 259, 393, 266);\n  // party hat\n  brush.noStroke();\n  brush.fill('#f8c7a5', 217);\n  brush.fillBleed(0.06);\n  brush.beginShape();\n  brush.vertex(262, 218);\n  brush.vertex(295, 180);\n  brush.vertex(353, 200);\n  brush.vertex(323, 237);\n  brush.endShape(CLOSE);\n  brush.noFill();\n  brush.set('marker', '#e6aa85', 3);\n  brush.line(296, 200, 355, 206);\n  brush.noFill();\n  brush.set('marker', '#e6aa85', 3);\n  brush.line(318, 242, 341, 260);\n  // cupcake\n  blob(400, 320, 43, 37, '#f9946a', 202);\n  brush.noStroke();\n  brush.fill('#f06c49', 207);\n  brush.fillBleed(0.07);\n  brush.beginShape();\n  brush.vertex(400, 320 + 29);\n  brush.vertex(430, 305);\n  brush.vertex(469, 332);\n  brush.vertex(452, 366);\n  brush.vertex(423, 350);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#f06c49', 207);\n  brush.fillBleed(0.07);\n  brush.beginShape();\n  brush.vertex(428, 362);\n  brush.vertex(444, 393);\n  brush.vertex(449, 399);\n  brush.vertex(453, 411);\n  brush.vertex(428, 425);\n  brush.vertex(429, 399);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#f5cbb6', 234);\n  brush.fillBleed(0.05);\n  brush.beginShape();\n  brush.vertex(428, 362);\n  brush.vertex(444, 393);\n  brush.vertex(449, 399);\n  brush.vertex(453, 411);\n  brush.vertex(428, 425);\n  brush.vertex(429, 399);\n  brush.endShape(CLOSE);\n  brush.noFill();\n  brush.set('marker', '#e8a07f', 2);\n  brush.line(427, 374, 442, 395);\n  brush.noFill();\n  brush.set('marker', '#e8a07f', 2);\n  brush.line(424, 383, 424, 406);\n}","rating":"okay"}]},{"subject":"a cat napping on a stack of books","cells":[{"img":"img/601c061d2cce.jpg","full":"img/601c061d2cce-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 390, 120);\n  brush.circle(300, 250, 95);\n  brush.beginShape();\n  brush.vertex(225, 215);\n  brush.vertex(240, 130);\n  brush.vertex(285, 180);\n  brush.endShape(CLOSE);\n  brush.beginShape();\n  brush.vertex(375, 215);\n  brush.vertex(360, 130);\n  brush.vertex(315, 180);\n  brush.endShape(CLOSE);\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.circle(332, 245, 9);\n  brush.fill('#e8879a', 200);\n  brush.circle(300, 272, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n}","rating":"love"},{"img":"img/da1b6bffb051.jpg","full":"img/da1b6bffb051-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha, bleed) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(bleed);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 140);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // cat body\n  blob(307, 388, 114, 122, '#f0aab5', 170, 0.18);\n  // paws\n  blob(258, 457, 25, 13, '#f0aab5', 160, 0.15);\n  blob(356, 457, 25, 13, '#f0aab5', 160, 0.15);\n  blob(281, 504, 17, 11, '#a5858d', 155, 0.15);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#c4a5af', 5);\n  brush.arc(412, 446, 60, 240, 370);\n  // head\n  blob(307, 286, 95, 86, '#f0aab5', 170, 0.18);\n  // ears\n  tri(232, 263, 257, 167, 289, 221, '#f0aab5');\n  tri(382, 263, 357, 167, 325, 221, '#f0aab5');\n  tri(245, 256, 258, 203, 275, 230, '#f7d0c8');\n  tri(370, 256, 357, 203, 331, 230, '#f7d0c8');\n  // face\n  ink('#847770', 2);\n  brush.arc(272, 280, 12, 20, 160);\n  brush.arc(342, 280, 12, 20, 160);\n  brush.noStroke();\n  brush.fill('#e68eb7', 200);\n  brush.fillBleed(0.08);\n  brush.circle(307, 302, 6);\n  // whiskers\n  ink('#847770', 1);\n  brush.line(266, 307, 207, 296);\n  brush.line(266, 315, 207, 322);\n  brush.line(348, 307, 408, 296);\n  brush.line(348, 315, 408, 322);\n  // books\n  brush.noStroke();\n  brush.fill('#c5a0a9', 180);\n  brush.fillBleed(0.13);\n  brush.beginShape();\n  brush.vertex(131, 262, 17);\n  brush.vertex(164, 328, 17);\n  brush.vertex(259, 328, 17);\n  brush.vertex(292, 262, 17);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#e2c1c8', 160);\n  brush.fillBleed(0.12);\n  brush.beginShape();\n  brush.vertex(131, 352, 17);\n  brush.vertex(164, 418, 17);\n  brush.vertex(259, 418, 17);\n  brush.vertex(292, 352, 17);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#d6a5a8', 160);\n  brush.fillBleed(0.11);\n  brush.beginShape();\n  brush.vertex(131, 442, 17);\n  brush.vertex(164, 508, 17);\n  brush.vertex(259, 508, 17);\n  brush.vertex(292, 442, 17);\n  brush.endShape(CLOSE);\n}","rating":"no"},{"img":"img/380c4ae3355b.jpg","full":"img/380c4ae3355b-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 210);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\n\nfunction blobx(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction trix(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 210);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction inx(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\n\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // Cat body\n  blob(300, 390, 120, 115, '#f2b880', 150);\n  // Head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // Ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // Paws\n  blob(221, 471, 54, 36, '#f2b880', 150);\n  blob(379, 471, 54, 36, '#f2b880', 150);\n  // Ink sidebar\n  ink('#5a4a3a', 3);\n  // Whiskers\n  brush.line(273, 287, 220, 277);\n  brush.line(273, 294, 220, 298);\n  brush.line(328, 287, 382, 278);\n  brush.line(328, 294, 382, 299);\n  // Ink sidebar\n  ink('#5a4a3a', 3);\n  // Nose\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // Ink sidebar\n  ink('#5a4a3a', 3);\n  // Ink sidebar\n  ink('#5a4a3a', 3);\n  // Books\n  brush.noFill();\n  brush.set('marker', '#707070', 4);\n  brush.arc(225, 477, 37, 20, 160);\n  brush.noFill();\n  brush.set('marker', '#707070', 4);\n  brush.arc(285, 477, 37, 20, 160);\n  brush.noFill();\n  brush.set('marker', '#707070', 4);\n  brush.arc(345, 477, 37, 20, 160);\n  // Note\n  blobx(231, 438, 80, 30, '#fff4df', 190);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 230);\n  brush.fillBleed(0.05);\n  brush.circle(255, 450, 9);\n}","rating":"no"},null]},{"subject":"a grey cat with green eyes and a heart","cells":[{"img":"img/c4619962d7d6.jpg","full":"img/c4619962d7d6-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 390, 120);\n  brush.circle(300, 250, 95);\n  brush.beginShape();\n  brush.vertex(225, 215);\n  brush.vertex(240, 130);\n  brush.vertex(285, 180);\n  brush.endShape(CLOSE);\n  brush.beginShape();\n  brush.vertex(375, 215);\n  brush.vertex(360, 130);\n  brush.vertex(315, 180);\n  brush.endShape(CLOSE);\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.circle(332, 245, 9);\n  brush.fill('#e8879a', 200);\n  brush.circle(300, 272, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n}","rating":"okay"},null,{"img":"img/6c945522c85a.jpg","full":"img/6c945522c85a-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 210);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(300, 390, 120, 120, '#8a8a8a', 210);\n  // head\n  blob(300, 250, 95, 95, '#8a8a8a', 210);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#8a8a8a');\n  tri(375, 215, 360, 130, 315, 180, '#8a8a8a');\n  // paws\n  blob(228, 475, 45, 25, '#8a8a8a', 210);\n  blob(372, 475, 45, 25, '#8a8a8a', 210);\n  // ink for whiskers\n  ink('#5a4636', 1);\n  // whiskers\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  // head markings\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // ink for ink\n  ink('#7e7e7e', 1);\n  // paw prints\n  brush.arc(228, 475, 12, 220, 380);\n  brush.arc(372, 475, 12, 220, 380);\n  // heart\n  ink('#e8879a', 2);\n  brush.line(300, 538, 360, 586);\n  brush.line(300, 538, 240, 586);\n  brush.noStroke();\n  brush.fill('#e8879a', 170);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  brush.vertex(300, 538);\n  brush.vertex(360, 586);\n  brush.vertex(300, 629);\n  brush.vertex(240, 586);\n  brush.endShape(CLOSE);\n}","rating":"no"},{"img":"img/a325ad0b78b1.jpg","full":"img/a325ad0b78b1-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.08);\n  brush.fillTexture(0.06, 0.06, 0.06);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(296, 423, 104, 107, '#8a9aaf', 220);\n  // tail\n  ink('#7e8ca8', 5);\n  brush.line(384, 481, 442, 531);\n  // head\n  blob(296, 265, 80, 75, '#8a9aaf', 220);\n  // ears\n  tri(230, 225, 252, 120, 286, 182, '#8a9aaf');\n  tri(362, 225, 340, 120, 306, 182, '#8a9aaf');\n  tri(240, 213, 252, 146, 272, 192, '#d5c4a3');\n  tri(352, 213, 341, 146, 321, 192, '#d5c4a3');\n  // face\n  brush.noStroke();\n  brush.fill('#5e8a7f', 230);\n  brush.fillBleed(0.04);\n  brush.circle(280, 258, 9);\n  brush.noStroke();\n  brush.fill('#5e8a7f', 230);\n  brush.fillBleed(0.04);\n  brush.circle(312, 258, 9);\n  brush.noStroke();\n  brush.fill('#8fbf9e', 210);\n  brush.fillBleed(0.04);\n  brush.circle(296, 271, 8);\n  // paws\n  blob(230, 434, 26, 19, '#8a9aaf', 205);\n  blob(362, 434, 26, 19, '#8a9aaf', 205);\n  // whiskers\n  ink('#5e8a7f', 1);\n  brush.line(260, 288, 219, 272);\n  brush.line(260, 298, 219, 313);\n  brush.line(332, 288, 373, 272);\n  brush.line(332, 298, 373, 313);\n  // heart\n  blob(361, 496, 20, 24, '#e84a4a', 220);\n  brush.noStroke();\n  brush.fill('#f08585', 200);\n  brush.fillBleed(0.02);\n  brush.circle(372, 510, 6);\n}","rating":"no"}]},{"subject":"a kitten in a flower pot","cells":[{"img":"img/faad404b1a49.jpg","full":"img/faad404b1a49-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 330, 100);\n  brush.circle(300, 220, 75);\n  brush.beginShape();\n  brush.vertex(240, 170);\n  brush.vertex(220, 100);\n  brush.vertex(290, 110);\n  brush.endShape(CLOSE);\n  brush.beginShape();\n  brush.vertex(360, 170);\n  brush.vertex(380, 100);\n  brush.vertex(310, 110);\n  brush.endShape(CLOSE);\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(270, 200, 7);\n  brush.circle(330, 200, 7);\n  brush.fill('#e8879a', 200);\n  brush.circle(300, 230, 5);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(250, 240, 210, 230);\n  brush.line(250, 250, 210, 240);\n  brush.line(350, 240, 390, 230);\n  brush.line(350, 250, 390, 240);\n  brush.arc(300, 245, 10, 15, 160);\n  brush.fill('#ffd700', 180);\n  brush.circle(290, 300, 15);\n  brush.circle(310, 300, 15);\n  brush.fill('#b8a583', 180);\n  brush.circle(290, 310, 6);\n  brush.circle(310, 310, 6);\n}","rating":"no"},{"img":"img/b3df450e2d93.jpg","full":"img/b3df450e2d93-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 160);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // FLower pot\n  brush.noStroke();\n  brush.fill('#a75a2e', 220);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(250 + cos(a) * 30, 415 + sin(a) * 15);\n  }\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#a75a2e', 220);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(250 + cos(a) * 32, 415 + sin(a) * 17);\n  }\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#8a4f28', 180);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(250 + cos(a) * 33.5, 415 + sin(a) * 18.5);\n  }\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#a75a2e', 220);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(230 + cos(a) * 10, 440 + sin(a) * 5);\n  }\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#a75a2e', 220);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(237 + cos(a) * 11, 442 + sin(a) * 6);\n  }\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#a75a2e', 220);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(243 + cos(a) * 11.5, 444 + sin(a) * 6.5);\n  }\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#a75a2e', 220);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(248 + cos(a) * 12, 446 + sin(a) * 7);\n  }\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#a75a2e', 220);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(252.5 + cos(a) * 12.2, 448 + sin(a) * 7.3);\n  }\n  brush.endShape(CLOSE);\n  // Kitten\n  blob(273, 373, 73, 68, '#e2c1e2', 220);\n  blob(286, 301, 33, 23, '#e2c1e2', 220);\n  tri(241, 279, 254, 194, 290, 244, '#e2c1e2');\n  tri(310, 279, 297, 194, 261, 244, '#e2c1e2');\n  blob(267, 297, 9, 7, '#7a4e84', 220);\n  blob(297, 307, 9, 7, '#7a4e84', 220);\n  blob(283, 320, 6, 5, '#e8879a', 220);\n  ink('#5a4636', 1);\n  brush.line(259, 328, 204, 318);\n  brush.line(259, 337, 204, 343);\n  brush.line(307, 328, 362, 318);\n  brush.line(307, 337, 362, 343);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#e3688a', 5);\n  brush.arc(326, 355, 46, 20, 160);\n}","rating":"no"},{"img":"img/2b8c1657c9a1.jpg","full":"img/2b8c1657c9a1-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 190);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // kitten body\n  blob(300, 390, 120, 120, '#ed99a3', 230);\n  // paws\n  blob(222, 500, 45, 19, '#ed99a3', 230);\n  blob(378, 500, 45, 19, '#ed99a3', 230);\n  // head\n  blob(300, 250, 95, 95, '#ed99a3', 230);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#ed99a3');\n  tri(375, 215, 360, 130, 315, 180, '#ed99a3');\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n  // flower pot\n  brush.noStroke();\n  brush.fill('#8d8a6b', 230);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  brush.vertex(180, 490);\n  brush.vertex(130, 420);\n  brush.vertex(180, 350);\n  brush.vertex(230, 420);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#4a4b4f', 230);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(205, 468, 12);\n  // flowers\n  blob(180, 410, 18, 12, '#e57336', 230);\n  blob(225, 410, 18, 12, '#e57336', 230);\n  blob(235, 425, 10, 7, '#f9a825', 230);\n  blob(200, 441, 8, 6, '#7cb342', 230);\n  blob(255, 441, 8, 6, '#7cb342', 230);\n}","rating":"no"},{"img":"img/0ae9e1029647.jpg","full":"img/0ae9e1029647-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.08, 0.2);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(320, 390, 90, 80, '#d6a7a7', 160);\n  // tail\n  ink('#b37f7f', 3);\n  brush.arc(400, 440, 40, 160, 320);\n  // paws\n  blob(285, 480, 25, 15, '#f08aa3', 140);\n  blob(355, 480, 25, 15, '#f08aa3', 140);\n  // head\n  blob(320, 270, 70, 60, '#d6a7a7', 160);\n  // ears\n  tri(250, 235, 270, 135, 290, 200, '#d6a7a7');\n  tri(390, 235, 370, 135, 350, 200, '#d6a7a7');\n  tri(260, 220, 267, 158, 283, 205, '#f8c2c5');\n  tri(380, 220, 373, 158, 357, 205, '#f8c2c5');\n  // face\n  brush.noStroke();\n  brush.fill('#593b4a', 220);\n  brush.fillBleed(0.1);\n  brush.circle(305, 263, 10);\n  brush.noStroke();\n  brush.fill('#593b4a', 220);\n  brush.fillBleed(0.1);\n  brush.circle(335, 263, 10);\n  brush.noStroke();\n  brush.fill('#f3a9a4', 220);\n  brush.fillBleed(0.1);\n  brush.circle(320, 278, 7);\n  // whiskers\n  ink('#593b4a', 1);\n  brush.line(285, 295, 230, 285);\n  brush.line(285, 300, 230, 305);\n  brush.line(355, 295, 410, 285);\n  brush.line(355, 300, 410, 305);\n  // flower pot\n  blob(280, 435, 35, 28, '#4a3b4f', 180);\n  ink('#8a6565', 3);\n  brush.line(242, 450, 260, 492);\n  brush.line(268, 492, 280, 480);\n  brush.line(282, 457, 287, 473);\n  ink('#544a51', 1);\n  brush.line(281, 482, 277, 498);\n  brush.line(275, 478, 269, 486);\n}","rating":"no"}]},{"subject":"a cat looking at falling snow","cells":[{"img":"img/c28d34ab847b.jpg","full":"img/c28d34ab847b-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 390, 120);\n  brush.circle(300, 250, 95);\n  brush.beginShape();\n  brush.vertex(225, 215);\n  brush.vertex(240, 130);\n  brush.vertex(285, 180);\n  brush.endShape(CLOSE);\n  brush.beginShape();\n  brush.vertex(375, 215);\n  brush.vertex(360, 130);\n  brush.vertex(315, 180);\n  brush.endShape(CLOSE);\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.circle(332, 245, 9);\n  brush.fill('#e8879a', 200);\n  brush.circle(300, 272, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  brush.vertex(245, 170);\n  brush.vertex(220, 300);\n  brush.vertex(210, 350);\n  brush.vertex(300, 350);\n  brush.vertex(380, 300);\n  brush.vertex(355, 170);\n  brush.endShape(CLOSE);\n  brush.fill('#b4a5a1', 200);\n  brush.circle(300, 380, 10);\n  brush.set('HB', '#4d3d33', 1);\n  brush.line(260, 370, 280, 400);\n  brush.line(340, 370, 320, 400);\n  brush.fill('#fefefe', 200);\n  brush.circle(295, 410, 12);\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 450, 50);\n  brush.fill('#d6d6d6', 250);\n  brush.circle(300, 490, 20);\n  brush.noFill();\n  brush.set('HB', '#4d3d33', 1);\n  brush.line(300, 490, 300, 530);\n  brush.arc(290, 535, 10, 15, 180);\n  brush.arc(310, 535, 10, 15, 180);\n}","rating":"no"},null,{"img":"img/a16848221920.jpg","full":"img/a16848221920-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 220);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // cat body\n  blob(300, 390, 120, 120, '#f2b880', 150);\n  // paws\n  blob(225, 490, 40, 20, '#f2b880', 150);\n  blob(375, 490, 40, 20, '#f2b880', 150);\n  // head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  blob(268, 245, 9, 9, '#3b2f2f', 220);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  blob(332, 245, 9, 9, '#3b2f2f', 220);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  blob(300, 272, 6, 6, '#e8879a', 200);\n  // whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  // head hair\n  ink('#f9a048', 1);\n  brush.line(300, 250, 250, 220);\n  brush.line(300, 250, 350, 220);\n  ink('#f9a048', 1);\n  brush.line(280, 243, 280, 276);\n  brush.line(320, 243, 320, 276);\n  // snow\n  for (let a = 0; a < 400; a += 65) {\n    ink('#a2d2ff', 1);\n    brush.arc(300, 580, 2 + random(2), a, a + 35);\n  }\n}","rating":"no"},{"img":"img/18ed18c0052f.jpg","full":"img/18ed18c0052f-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.35, 0.28);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 200);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(280, 366, 142, 110, '#f1c40f', 170);\n  // paws\n  blob(234, 438, 28, 16, '#f1c40f', 185);\n  blob(326, 438, 28, 16, '#f1c40f', 185);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#e84393', 8);\n  brush.arc(408, 397, 74, 0, 190);\n  // head\n  blob(280, 221, 81, 67, '#f1c40f', 170);\n  // ears\n  tri(181, 177, 223, 108, 263, 150, '#f1c40f');\n  tri(379, 177, 337, 108, 299, 150, '#f1c40f');\n  tri(201, 168, 211, 129, 228, 142, '#f39c12');\n  tri(359, 168, 349, 129, 332, 142, '#f39c12');\n  // whiskers\n  ink('#4a4a4a', 1);\n  brush.line(249, 234, 173, 227);\n  brush.line(249, 243, 173, 248);\n  brush.line(311, 234, 387, 227);\n  brush.line(311, 243, 387, 248);\n  // face\n  brush.noStroke();\n  brush.fill('#2c3e50', 255);\n  brush.fillBleed(0.08);\n  brush.circle(243, 238, 8);\n  brush.noStroke();\n  brush.fill('#2c3e50', 255);\n  brush.fillBleed(0.08);\n  brush.circle(317, 238, 8);\n  brush.noStroke();\n  brush.fill('#f1c40f', 220);\n  brush.fillBleed(0.08);\n  brush.circle(280, 248, 5);\n  // snow\n  brush.noStroke();\n  brush.fill('#e0e0eb', 200);\n  brush.fillBleed(0.18);\n  brush.beginShape();\n  for (let s = 0; s < 60; s++) {\n    brush.vertex(random(88, 512), random(60, 326));\n    brush.vertex(random(94, 517), random(98, 342));\n    brush.vertex(random(69, 493), random(128, 365));\n    brush.vertex(random(104, 525), random(145, 377));\n  }\n  brush.endShape(CLOSE);\n}","rating":"no"}]},{"subject":"a sleepy cat on a crescent moon","cells":[{"img":"img/cb78f1086937.jpg","full":"img/cb78f1086937-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 390, 120);\n  brush.circle(300, 250, 95);\n  brush.beginShape();\n  brush.vertex(225, 215);\n  brush.vertex(240, 130);\n  brush.vertex(285, 180);\n  brush.endShape(CLOSE);\n  brush.beginShape();\n  brush.vertex(375, 215);\n  brush.vertex(360, 130);\n  brush.vertex(315, 180);\n  brush.endShape(CLOSE);\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.circle(332, 245, 9);\n  brush.fill('#e8879a', 200);\n  brush.circle(300, 272, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n}","rating":"okay"},{"img":"img/ee860f6aa7ef.jpg","full":"img/ee860f6aa7ef-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 200);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // crescent moon\n  ink('#a7bfa9', 4);\n  brush.arc(460, 155, 60, 225, 335);\n  brush.arc(460, 155, 55, 240, 320);\n  // sleepy cat torso\n  blob(290, 380, 80, 100, '#e3a981', 170);\n  blob(258, 440, 10, 4, '#8b6f4c', 180);\n  blob(322, 440, 10, 4, '#8b6f4c', 180);\n  // paws\n  blob(258, 470, 11, 3, '#8b6f4c', 180);\n  blob(322, 470, 11, 3, '#8b6f4c', 180);\n  // head\n  blob(290, 310, 65, 60, '#e3a981', 170);\n  // ears\n  tri(220, 281, 244, 181, 281, 242, '#e3a981');\n  tri(360, 281, 337, 181, 299, 242, '#e3a981');\n  tri(236, 276, 247, 208, 269, 243, '#f8c392');\n  tri(344, 276, 333, 208, 311, 243, '#f8c392');\n  tri(249, 269, 255, 222, 268, 251, '#f8c392');\n  tri(331, 269, 326, 222, 313, 251, '#f8c392');\n  tri(250, 259, 253, 209, 261, 236, '#ecbdaa');\n  tri(328, 259, 325, 209, 316, 236, '#ecbdaa');\n  tri(249, 252, 250, 214, 254, 232, '#f1cfc0');\n  tri(327, 252, 326, 214, 321, 232, '#f1cfc0');\n  // face\n  blob(264, 305, 7, 6, '#5c4433', 210);\n  blob(316, 305, 7, 6, '#5c4433', 210);\n  blob(289, 322, 4, 4, '#d19a9a', 200);\n  // whiskers\n  ink('#995e5e', 1);\n  brush.line(256, 316, 209, 307);\n  brush.line(256, 323, 209, 328);\n  brush.line(320, 316, 366, 307);\n  brush.line(320, 323, 366, 328);\n}","rating":"okay"},{"img":"img/79303a4c9edb.jpg","full":"img/79303a4c9edb-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 220);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // Cat body\n  blob(300, 390, 120, 112, '#f2b880', 150);\n  // Head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // Ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // Face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // Whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  // Crescent moon\n  blob(530, 160, 37, 12, '#a9a9b3', 210);\n  brush.noFill();\n  brush.set('marker', '#ffffff', 3);\n  brush.arc(567, 155, 12, 20, 160);\n}","rating":"no"},{"img":"img/e060dcffb019.jpg","full":"img/e060dcffb019-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.05, 0.4);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(315, 368, 90, 96, '#fdf6e3', 200);\n  blob(315, 400, 35, 22, '#fdf6e3', 180);\n  blob(265, 400, 35, 22, '#fdf6e3', 180);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#e0a8c9', 7);\n  brush.arc(244, 387, 92, 220, 320);\n  // head\n  blob(372, 302, 100, 86, '#fdf6e3', 195);\n  blob(397, 290, 38, 27, '#fdf6e3', 185);\n  blob(330, 290, 38, 27, '#fdf6e3', 185);\n  tri(346, 257, 372, 239, 398, 257, '#f6b2c3');\n  tri(359, 267, 368, 244, 376, 263, '#fad7f5');\n  // ears\n  blob(311, 267, 48, 42, '#fdf6e3', 190);\n  blob(434, 267, 48, 42, '#fdf6e3', 190);\n  brush.noFill();\n  brush.set('marker', '#e0a8c9', 8);\n  brush.arc(287, 250, 40, 320, 40);\n  brush.noFill();\n  brush.set('marker', '#e0a8c9', 8);\n  brush.arc(460, 250, 40, 220, 300);\n  // face\n  brush.noStroke();\n  brush.fill('#b778ea', 255);\n  brush.fillBleed(0.05);\n  brush.circle(330, 263, 9);\n  brush.noStroke();\n  brush.fill('#b778ea', 255);\n  brush.fillBleed(0.05);\n  brush.circle(395, 263, 9);\n  brush.noStroke();\n  brush.fill('#f6b2c3', 220);\n  brush.fillBleed(0.03);\n  brush.circle(363, 272, 6);\n  brush.noStroke();\n  brush.fill('#8a53b5', 220);\n  brush.fillBleed(0.03);\n  brush.circle(363, 289, 4);\n  // whiskers\n  ink('#d5a6bc', 2);\n  brush.line(344, 283, 307, 253);\n  brush.line(344, 292, 307, 307);\n  brush.line(404, 283, 441, 253);\n  brush.line(404, 292, 441, 307);\n  ink('#e0a8c9', 2);\n  brush.line(370, 325, 365, 354);\n  brush.line(381, 325, 386, 354);\n  // moon\n  brush.noFill();\n  brush.set('marker', '#96c9d9', 3);\n  brush.arc(518, 162, 69, 100, 330);\n  brush.noStroke();\n  brush.fill('#f8f0f7', 215);\n  brush.fillBleed(0.1);\n  brush.circle(524, 156, 42);\n}","rating":"no"}]},{"subject":"a mother cat with her kitten","cells":[{"img":"img/0daa5af0ff21.jpg","full":"img/0daa5af0ff21-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  brush.noStroke();\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 390, 120);\n  brush.circle(300, 250, 95);\n  brush.beginShape();\n  brush.vertex(225, 215);\n  brush.vertex(240, 130);\n  brush.vertex(285, 180);\n  brush.endShape(CLOSE);\n  brush.beginShape();\n  brush.vertex(375, 215);\n  brush.vertex(360, 130);\n  brush.vertex(315, 180);\n  brush.endShape(CLOSE);\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.circle(332, 245, 9);\n  brush.fill('#e8879a', 200);\n  brush.circle(300, 272, 6);\n  brush.noFill();\n  brush.set('HB', '#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n  brush.fill('#b8c9a8', 180);\n  brush.fillBleed(0.1);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 500, 50);\n  brush.circle(285, 440, 30);\n  brush.circle(315, 440, 30);\n  brush.fill('#a8d1a5', 200);\n  brush.circle(285, 420, 15);\n  brush.circle(315, 420, 15);\n  brush.fill('#d9f0d5', 120);\n  brush.circle(290, 410, 10);\n  brush.circle(310, 410, 10);\n  brush.fill('#f2b880', 150);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(300, 490, 30);\n}","rating":"no"},{"img":"img/db9c4e28427e.jpg","full":"img/db9c4e28427e-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 150);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // main body\n  blob(285, 360, 133, 137, '#f2b67b', 148);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#e2a35a', 7);\n  brush.arc(415, 395, 38, 20, 140);\n  // paws\n  blob(259, 473, 28, 21, '#f2b67b', 128);\n  blob(312, 473, 28, 21, '#f2b67b', 128);\n  // head\n  blob(228, 266, 72, 63, '#f2b67b', 148);\n  // ears\n  tri(161, 248, 189, 131, 217, 190, '#f2b67b');\n  tri(294, 248, 267, 131, 239, 190, '#f2b67b');\n  tri(177, 235, 188, 151, 198, 209, '#f8c990');\n  tri(278, 235, 267, 151, 257, 209, '#f8c990');\n  // face\n  brush.noStroke();\n  brush.fill('#3b332e', 202);\n  brush.fillBleed(0.06);\n  brush.circle(200, 261, 6);\n  brush.noStroke();\n  brush.fill('#3b332e', 202);\n  brush.fillBleed(0.06);\n  brush.circle(255, 261, 6);\n  brush.noStroke();\n  brush.fill('#cdfdec', 177);\n  brush.fillBleed(0.08);\n  brush.circle(227, 280, 3);\n  // whiskers\n  ink('#a7814f', 1);\n  brush.line(201, 284, 157, 280);\n  brush.line(201, 292, 157, 297);\n  brush.line(253, 284, 296, 280);\n  brush.line(253, 292, 296, 297);\n  // kitten\n  // main body\n  blob(443, 475, 71, 60, '#f2b67b', 148);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#daa45c', 5);\n  brush.arc(520, 506, 27, 20, 160);\n  // paws\n  blob(413, 546, 20, 15, '#f2b67b', 123);\n  blob(474, 546, 20, 15, '#f2b67b', 123);\n  // head\n  blob(401, 369, 57, 48, '#f2b67b', 148);\n  // ears\n  tri(354, 357, 377, 258, 399, 326, '#f2b67b');\n  tri(446, 357, 423, 258, 401, 326, '#f2b67b');\n  tri(366, 348, 373, 275, 379, 314, '#f8c990');\n  tri(435, 348, 428, 275, 421, 314, '#f8c990');\n  // face\n  brush.noStroke();\n  brush.fill('#3b332e', 202);\n  brush.fillBleed(0.06);\n  brush.circle(388, 363, 5);\n  brush.noStroke();\n  brush.fill('#3b332e', 202);\n  brush.fillBleed(0.06);\n  brush.circle(414, 363, 5);\n  brush.noStroke();\n  brush.fill('#cdfdec', 177);\n  brush.fillBleed(0.08);\n  brush.circle(397, 376, 3);\n  // whiskers\n  ink('#a7814f', 1);\n  brush.line(379, 383, 341, 380);\n  brush.line(379, 391, 341, 396);\n  brush.line(415, 383, 452, 380);\n  brush.line(415, 391, 452, 396);\n  brush.noStroke();\n  brush.fill('#d7a462', 180);\n  brush.fillBleed(0.1);\n  brush.circle(434, 436, 9);\n}","rating":"no"},{"img":"img/127f5ee871b0.jpg","full":"img/127f5ee871b0-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 200);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // main body\n  blob(300, 390, 120, 117, '#f2b880', 150);\n  // head\n  blob(300, 250, 95, 94, '#f2b880', 150);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // paws\n  blob(222, 468, 40, 26, '#f2b880', 150);\n  blob(378, 468, 40, 26, '#f2b880', 150);\n  // paws ink\n  ink('#5a4636', 2);\n  brush.line(223, 465, 223, 499);\n  brush.line(377, 465, 377, 499);\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  // catmom head\n  blob(533, 390, 117, 115, '#f2b880', 150);\n  // catmom ears\n  tri(458, 374, 474, 289, 509, 345, '#f2b880');\n  tri(608, 374, 592, 289, 557, 345, '#f2b880');\n  // catmom face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(497, 364, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(576, 364, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(537, 388, 6);\n  // catmom whiskers\n  ink('#5a4636', 1);\n  brush.line(521, 381, 468, 372);\n  brush.line(521, 390, 468, 395);\n  brush.line(609, 381, 663, 372);\n  brush.line(609, 390, 663, 395);\n  // kitten body\n  blob(444, 521, 85, 78, '#f9a69a', 150);\n  // kitten head\n  blob(444, 436, 61, 60, '#f9a69a', 150);\n  // kitten ears\n  tri(379, 419, 394, 335, 429, 391, '#f9a69a');\n  tri(509, 419, 494, 335, 459, 391, '#f9a69a');\n  // kitten face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(407, 410, 8);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(482, 410, 8);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(445, 433, 6);\n  // kitten paws\n  blob(379, 528, 40, 26, '#f9a69a', 150);\n  blob(508, 528, 40, 26, '#f9a69a', 150);\n  // kitten whiskers\n  ink('#5a4636', 1);\n  brush.line(423, 445, 369, 436);\n  brush.line(423, 454, 369, 459);\n  brush.line(508, 445, 562, 436);\n  brush.line(508, 454, 562, 459);\n}","rating":"no"},{"img":"img/922e1ca385b1.jpg","full":"img/922e1ca385b1-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.2);\n  brush.fillTexture(0.1, 0.2);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, wid) {\n  brush.noFill();\n  brush.set('HB', col, wid);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(305, 401, 111, 110, '#959c86', 180);\n  blob(288, 444, 69, 26, '#959c86', 180);\n  blob(323, 448, 69, 26, '#959c86', 180);\n  blob(305, 408, 82, 48, '#e3a185', 180);\n  // tail\n  ink('#a39b9a', 3);\n  brush.arc(385, 432, 65, 20, 160);\n  // paws\n  blob(285, 499, 19, 13, '#959c86', 180);\n  blob(328, 499, 19, 13, '#959c86', 180);\n  blob(279, 530, 12, 8, '#a9a094', 180);\n  blob(324, 530, 12, 8, '#a9a094', 180);\n  // head\n  blob(305, 268, 86, 78, '#959c86', 180);\n  // face\n  ink('#622569', 2);\n  brush.arc(283, 287, 13, 20, 160);\n  ink('#622569', 2);\n  brush.arc(327, 287, 13, 20, 160);\n  ink('#d95b8e', 2);\n  brush.arc(305, 299, 8, 180, 360);\n  // ears\n  tri(224, 245, 252, 132, 299, 205, '#959c86');\n  tri(386, 245, 352, 132, 312, 205, '#959c86');\n  tri(246, 230, 261, 168, 288, 207, '#b68d7c');\n  tri(363, 230, 343, 168, 318, 207, '#b68d7c');\n  blob(256, 200, 8, 8, '#d95b8e', 210);\n  blob(355, 200, 8, 8, '#d95b8e', 210);\n  // whiskers\n  ink('#756a65', 1);\n  brush.line(261, 294, 219, 305);\n  brush.line(260, 330, 219, 339);\n  brush.line(347, 294, 393, 305);\n  brush.line(348, 330, 393, 339);\n  // Kitten\n  blob(391, 426, 63, 60, '#959c86', 180);\n  blob(414, 466, 29, 11, '#959c86', 180);\n  blob(423, 468, 29, 11, '#959c86', 180);\n  blob(395, 439, 42, 27, '#e3a185', 180);\n  // tail\n  ink('#a39b9a', 2);\n  brush.arc(465, 487, 43, 20, 160);\n  // paws\n  blob(427, 511, 17, 12, '#959c86', 180);\n  blob(471, 511, 17, 12, '#959c86', 180);\n  blob(421, 540, 10, 7, '#a9a094', 180);\n  blob(465, 542, 10, 7, '#a9a094', 180);\n  // head\n  blob(398, 345, 58, 56, '#959c86', 180);\n  // face\n  brush.noStroke();\n  brush.fill('#622569', 200);\n  blob(372, 372, 8, 7, 210);\n  brush.noStroke();\n  brush.fill('#622569', 200);\n  blob(423, 372, 8, 7, 210);\n  brush.noStroke();\n  brush.fill('#d95b8e', 200);\n  blob(398, 384, 6, 6, 220);\n  // ears\n  tri(322, 301, 342, 227, 376, 277, '#959c86');\n  tri(474, 301, 449, 227, 417, 277, '#959c86');\n  tri(346, 278, 358, 247, 381, 282, '#b68d7c');\n  tri(446, 278, 430, 247, 404, 282, '#b68d7c');\n  brush.noStroke();\n  brush.fill('#a05c78', 180);\n  blob(356, 248, 6, 6, 200);\n  brush.noStroke();\n  brush.fill('#a05c78', 180);\n  blob(440, 249, 6, 6, 200);\n  // whiskers\n  ink('#756a65', 1);\n  brush.line(360, 347, 313, 356);\n  brush.line(359, 376, 313, 382);\n  brush.line(435, 347, 485, 357);\n  brush.line(436, 376, 484, 382);\n}","rating":"no"}]}]},"sketches":[{"img":"img/8e9bb8a24c83.jpg","full":"img/8e9bb8a24c83-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // kitten body\n  blob(314, 376, 74, 70, '#a9a9b3', 165);\n  blob(287, 441, 20, 12, '#a9a9b3', 165);\n  blob(342, 441, 20, 12, '#a9a9b3', 165);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#8c8c99', 5);\n  brush.arc(389, 404, 41, 240, 380);\n  // head\n  blob(314, 274, 74, 68, '#a9a9b3', 165);\n  // ears\n  tri(244, 248, 268, 159, 303, 215, '#a9a9b3');\n  tri(385, 248, 360, 159, 326, 215, '#a9a9b3');\n  tri(259, 237, 271, 181, 288, 216, '#e3c6cf');\n  tri(370, 237, 358, 181, 340, 216, '#e3c6cf');\n  // face\n  brush.noStroke();\n  brush.fill('#3b3b44', 230);\n  brush.fillBleed(0.08);\n  brush.circle(286, 259, 8);\n  brush.noStroke();\n  brush.fill('#3b3b44', 230);\n  brush.fillBleed(0.08);\n  brush.circle(343, 259, 8);\n  brush.noStroke();\n  brush.fill('#e8a0b0', 220);\n  brush.fillBleed(0.08);\n  brush.circle(314, 280, 5);\n  // whiskers\n  ink('#555560', 1);\n  brush.line(281, 283, 229, 274);\n  brush.line(281, 290, 229, 296);\n  brush.line(348, 283, 400, 274);\n  brush.line(348, 290, 400, 296);\n}","rating":"love","subject":"a grey kitten sitting and looking up"},{"img":"img/272fbf304ee8.jpg","full":"img/272fbf304ee8-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // kitten body\n  blob(297, 376, 67, 63, '#a9a9b3', 165);\n  blob(272, 435, 18, 11, '#a9a9b3', 165);\n  blob(323, 435, 18, 11, '#a9a9b3', 165);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#8c8c99', 5);\n  brush.arc(365, 401, 37, 240, 380);\n  // head\n  blob(297, 283, 67, 61, '#a9a9b3', 165);\n  // ears\n  tri(233, 260, 256, 179, 287, 230, '#a9a9b3');\n  tri(361, 260, 339, 179, 307, 230, '#a9a9b3');\n  tri(247, 250, 258, 199, 274, 231, '#e3c6cf');\n  tri(348, 250, 337, 199, 321, 231, '#e3c6cf');\n  // face\n  brush.noStroke();\n  brush.fill('#3b3b44', 230);\n  brush.fillBleed(0.08);\n  brush.circle(272, 270, 7);\n  brush.noStroke();\n  brush.fill('#3b3b44', 230);\n  brush.fillBleed(0.08);\n  brush.circle(323, 270, 7);\n  brush.noStroke();\n  brush.fill('#e8a0b0', 220);\n  brush.fillBleed(0.08);\n  brush.circle(297, 289, 5);\n  // whiskers\n  ink('#555560', 1);\n  brush.line(267, 292, 220, 283);\n  brush.line(267, 298, 220, 304);\n  brush.line(328, 292, 375, 283);\n  brush.line(328, 298, 375, 304);\n}","rating":"love","subject":"a grey kitten sitting and looking up"},{"img":"img/2ae4b0b5689b.jpg","full":"img/2ae4b0b5689b-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // kitten body\n  blob(307, 382, 74, 71, '#a9a9b3', 165);\n  blob(279, 448, 20, 13, '#a9a9b3', 165);\n  blob(335, 448, 20, 13, '#a9a9b3', 165);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#8c8c99', 5);\n  brush.arc(382, 410, 42, 240, 380);\n  // head\n  blob(307, 279, 74, 68, '#a9a9b3', 165);\n  // ears\n  tri(236, 253, 260, 163, 296, 219, '#a9a9b3');\n  tri(378, 253, 353, 163, 318, 219, '#a9a9b3');\n  tri(251, 242, 263, 186, 281, 221, '#e3c6cf');\n  tri(363, 242, 351, 186, 333, 221, '#e3c6cf');\n  // face\n  brush.noStroke();\n  brush.fill('#3b3b44', 230);\n  brush.fillBleed(0.08);\n  brush.circle(278, 264, 8);\n  brush.noStroke();\n  brush.fill('#3b3b44', 230);\n  brush.fillBleed(0.08);\n  brush.circle(335, 264, 8);\n  brush.noStroke();\n  brush.fill('#e8a0b0', 220);\n  brush.fillBleed(0.08);\n  brush.circle(307, 285, 5);\n  // whiskers\n  ink('#555560', 1);\n  brush.line(273, 288, 221, 279);\n  brush.line(273, 296, 221, 302);\n  brush.line(340, 288, 393, 279);\n  brush.line(340, 296, 393, 302);\n}","rating":"love","subject":"a grey kitten sitting and looking up"},{"img":"img/01ad5addb935.jpg","full":"img/01ad5addb935-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(299, 382, 99, 103, '#3a3a40', 235);\n  blob(299, 382, 91, 95, '#3a3a40', 235);\n  // paws\n  blob(266, 471, 24, 15, '#3a3a40', 190);\n  blob(266, 471, 22, 13, '#3a3a40', 190);\n  blob(332, 471, 24, 15, '#3a3a40', 190);\n  blob(332, 471, 22, 13, '#3a3a40', 190);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#2a2a30', 6);\n  brush.arc(389, 424, 56, 250, 380);\n  // head\n  blob(299, 264, 73, 67, '#3a3a40', 235);\n  blob(299, 264, 67, 62, '#3a3a40', 235);\n  // ears\n  tri(229, 238, 254, 150, 288, 205, '#3a3a40');\n  tri(369, 238, 345, 150, 310, 205, '#3a3a40');\n  tri(244, 227, 256, 172, 274, 207, '#6b5b66');\n  tri(354, 227, 343, 172, 325, 207, '#6b5b66');\n  // face\n  brush.noStroke();\n  brush.fill('#f2c94c', 230);\n  brush.fillBleed(0.08);\n  brush.circle(271, 260, 16);\n  brush.noStroke();\n  brush.fill('#f2c94c', 230);\n  brush.fillBleed(0.08);\n  brush.circle(327, 260, 16);\n  brush.noStroke();\n  brush.fill('#1f1f24', 240);\n  brush.fillBleed(0.08);\n  brush.circle(271, 260, 7);\n  brush.noStroke();\n  brush.fill('#1f1f24', 240);\n  brush.fillBleed(0.08);\n  brush.circle(327, 260, 7);\n  brush.noStroke();\n  brush.fill('#8a6b78', 220);\n  brush.fillBleed(0.08);\n  brush.circle(299, 281, 5);\n  // whiskers\n  ink('#d9d4cc', 1);\n  brush.line(266, 284, 215, 275);\n  brush.line(266, 291, 215, 297);\n  brush.line(332, 284, 384, 275);\n  brush.line(332, 291, 384, 297);\n}","rating":"love","subject":"a black cat with big round yellow eyes"},{"img":"img/1c3f660db224.jpg","full":"img/1c3f660db224-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(298, 382, 100, 105, '#e9e2d8', 205);\n  // paws\n  blob(265, 473, 24, 15, '#e9e2d8', 190);\n  blob(332, 473, 24, 15, '#e9e2d8', 190);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#d3c9bb', 6);\n  brush.arc(389, 426, 57, 250, 380);\n  // head\n  blob(298, 263, 74, 68, '#e9e2d8', 205);\n  // ears\n  tri(227, 237, 252, 147, 287, 203, '#e9e2d8');\n  tri(369, 237, 345, 147, 310, 203, '#e9e2d8');\n  tri(242, 225, 254, 169, 272, 204, '#f4b6c2');\n  tri(354, 225, 342, 169, 324, 204, '#f4b6c2');\n  // face\n  brush.noStroke();\n  brush.fill('#4a4a55', 230);\n  brush.fillBleed(0.08);\n  brush.circle(270, 259, 8);\n  brush.noStroke();\n  brush.fill('#4a4a55', 230);\n  brush.fillBleed(0.08);\n  brush.circle(327, 259, 8);\n  brush.noStroke();\n  brush.fill('#f08aa0', 220);\n  brush.fillBleed(0.08);\n  brush.circle(298, 280, 5);\n  ink('#8a8378', 1);\n  brush.arc(291, 286, 7, 20, 160);\n  brush.arc(306, 286, 7, 20, 160);\n  // whiskers\n  ink('#8a8378', 1);\n  brush.line(265, 283, 212, 274);\n  brush.line(265, 290, 212, 296);\n  brush.line(332, 283, 384, 274);\n  brush.line(332, 290, 384, 296);\n}","rating":"love","subject":"a white cat with a pink nose and a little smile"},{"img":"img/0dd7b796ed28.jpg","full":"img/0dd7b796ed28-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(312, 371, 109, 114, '#ece2d3', 200);\n  blob(355, 387, 43, 38, '#4a4045', 140);\n  // paws\n  blob(275, 470, 27, 16, '#ece2d3', 190);\n  blob(348, 470, 27, 16, '#ece2d3', 190);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#f0a35e', 7);\n  brush.arc(332, 449, 57, 200, 340);\n  // head\n  blob(312, 241, 81, 74, '#ece2d3', 200);\n  blob(275, 213, 36, 32, '#4a4045', 150);\n  blob(352, 225, 28, 28, '#f0a35e', 150);\n  // ears\n  tri(235, 213, 261, 116, 299, 176, '#ece2d3');\n  tri(389, 213, 362, 116, 324, 176, '#ece2d3');\n  tri(251, 201, 264, 140, 283, 178, '#f4b6c2');\n  tri(372, 201, 359, 140, 340, 178, '#f4b6c2');\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 230);\n  brush.fillBleed(0.08);\n  brush.circle(281, 237, 8);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 230);\n  brush.fillBleed(0.08);\n  brush.circle(342, 237, 8);\n  brush.noStroke();\n  brush.fill('#e8879a', 220);\n  brush.fillBleed(0.08);\n  brush.circle(312, 260, 6);\n  // whiskers\n  ink('#8a7a6a', 1);\n  brush.line(275, 263, 218, 253);\n  brush.line(275, 271, 218, 278);\n  brush.line(348, 263, 405, 253);\n  brush.line(348, 271, 405, 278);\n}","rating":"love","subject":"a calico cat sitting with its tail wrapped around its paws"},{"img":"img/3d934c10911e.jpg","full":"img/3d934c10911e-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(277, 365, 101, 106, '#ece2d3', 200);\n  blob(318, 379, 40, 35, '#4a4045', 140);\n  // paws\n  blob(244, 457, 25, 15, '#ece2d3', 190);\n  blob(311, 457, 25, 15, '#ece2d3', 190);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#f0a35e', 7);\n  brush.arc(297, 437, 53, 200, 340);\n  // head\n  blob(277, 244, 75, 69, '#ece2d3', 200);\n  blob(244, 217, 33, 30, '#4a4045', 150);\n  blob(315, 229, 26, 26, '#f0a35e', 150);\n  // ears\n  tri(206, 217, 231, 127, 266, 183, '#ece2d3');\n  tri(349, 217, 324, 127, 289, 183, '#ece2d3');\n  tri(221, 206, 233, 149, 251, 185, '#f4b6c2');\n  tri(334, 206, 322, 149, 304, 185, '#f4b6c2');\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 230);\n  brush.fillBleed(0.08);\n  brush.circle(249, 240, 8);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 230);\n  brush.fillBleed(0.08);\n  brush.circle(306, 240, 8);\n  brush.noStroke();\n  brush.fill('#e8879a', 220);\n  brush.fillBleed(0.08);\n  brush.circle(277, 261, 6);\n  // whiskers\n  ink('#8a7a6a', 1);\n  brush.line(244, 264, 191, 255);\n  brush.line(244, 272, 191, 278);\n  brush.line(311, 264, 364, 255);\n  brush.line(311, 272, 364, 278);\n}","rating":"love","subject":"a calico cat sitting with its tail wrapped around its paws"},{"img":"img/f3b51457081e.jpg","full":"img/f3b51457081e-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // kitten body\n  blob(260, 392, 67, 64, '#a9a9b3', 165);\n  blob(234, 451, 18, 11, '#a9a9b3', 165);\n  blob(285, 451, 18, 11, '#a9a9b3', 165);\n  // tail\n  brush.noFill();\n  brush.set('marker', '#8c8c99', 5);\n  brush.arc(328, 418, 38, 240, 380);\n  // head\n  blob(260, 299, 67, 62, '#a9a9b3', 165);\n  // ears\n  tri(195, 275, 218, 194, 250, 245, '#a9a9b3');\n  tri(324, 275, 302, 194, 270, 245, '#a9a9b3');\n  tri(209, 265, 220, 214, 236, 246, '#e3c6cf');\n  tri(311, 265, 300, 214, 283, 246, '#e3c6cf');\n  // face\n  brush.noStroke();\n  brush.fill('#3b3b44', 230);\n  brush.fillBleed(0.08);\n  brush.circle(234, 296, 7);\n  brush.noStroke();\n  brush.fill('#3b3b44', 230);\n  brush.fillBleed(0.08);\n  brush.circle(286, 296, 7);\n  brush.noStroke();\n  brush.fill('#e8a0b0', 220);\n  brush.fillBleed(0.08);\n  brush.circle(260, 315, 5);\n  // whiskers\n  ink('#555560', 1);\n  brush.line(229, 317, 182, 309);\n  brush.line(229, 324, 182, 329);\n  brush.line(290, 317, 338, 309);\n  brush.line(290, 324, 338, 329);\n  // ball of red yarn\n  brush.noStroke();\n  brush.fill('#d94f5c', 190);\n  brush.fillBleed(0.08);\n  brush.circle(430, 450, 45);\n  ink('#a8323e', 2);\n  brush.arc(430, 450, 30, 200, 340);\n  brush.arc(430, 450, 30, 230, 380);\n  brush.arc(430, 450, 30, 150, 300);\n  brush.line(390, 470, 310, 490);\n}","rating":"love","subject":"a kitten playing with a ball of red yarn"},{"img":"img/b82280adafbb.jpg","full":"img/b82280adafbb-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // head\n  blob(290, 280, 76, 69, '#f2a65a', 165);\n  // ears\n  tri(218, 253, 243, 162, 279, 219, '#f2a65a');\n  tri(362, 253, 337, 162, 302, 219, '#f2a65a');\n  tri(233, 241, 245, 184, 264, 220, '#f7c6a3');\n  tri(347, 241, 335, 184, 317, 220, '#f7c6a3');\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 230);\n  brush.fillBleed(0.08);\n  brush.circle(261, 264, 8);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 230);\n  brush.fillBleed(0.08);\n  brush.circle(319, 264, 8);\n  brush.noStroke();\n  brush.fill('#e8879a', 220);\n  brush.fillBleed(0.08);\n  brush.circle(290, 286, 6);\n  // whiskers\n  ink('#7a4a2a', 1);\n  brush.line(256, 289, 203, 279);\n  brush.line(256, 296, 203, 302);\n  brush.line(324, 289, 378, 279);\n  brush.line(324, 296, 378, 302);\n  blob(247, 346, 22, 17, '#f2a65a', 165);\n  blob(333, 346, 22, 17, '#f2a65a', 165);\n  // cardboard box in front\n  brush.noStroke();\n  brush.fill('#c89a64', 210);\n  brush.beginShape();\n  brush.vertex(170, 360);\n  brush.vertex(430, 360);\n  brush.vertex(420, 520);\n  brush.vertex(180, 520);\n  brush.endShape(CLOSE);\n  ink('#8a6640', 2);\n  brush.line(170, 360, 130, 320);\n  brush.line(430, 360, 470, 320);\n}","rating":"love","subject":"a cat peeking out of a cardboard box"},{"img":"img/53f9323aa84e.jpg","full":"img/53f9323aa84e-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // head\n  blob(304, 280, 83, 76, '#a9a9b3', 165);\n  // ears\n  tri(225, 250, 252, 151, 291, 213, '#a9a9b3');\n  tri(383, 250, 355, 151, 316, 213, '#a9a9b3');\n  tri(241, 238, 255, 176, 274, 215, '#e3c6cf');\n  tri(366, 238, 353, 176, 333, 215, '#e3c6cf');\n  // face\n  brush.noStroke();\n  brush.fill('#3b3b44', 230);\n  brush.fillBleed(0.08);\n  brush.circle(272, 263, 9);\n  brush.noStroke();\n  brush.fill('#3b3b44', 230);\n  brush.fillBleed(0.08);\n  brush.circle(335, 263, 9);\n  brush.noStroke();\n  brush.fill('#e8a0b0', 220);\n  brush.fillBleed(0.08);\n  brush.circle(304, 286, 6);\n  // whiskers\n  ink('#555560', 1);\n  brush.line(266, 289, 208, 280);\n  brush.line(266, 298, 208, 304);\n  brush.line(341, 289, 399, 280);\n  brush.line(341, 298, 399, 304);\n  blob(257, 352, 24, 18, '#a9a9b3', 165);\n  blob(350, 352, 24, 18, '#a9a9b3', 165);\n  // cardboard box in front\n  brush.noStroke();\n  brush.fill('#c89a64', 210);\n  brush.beginShape();\n  brush.vertex(170, 360);\n  brush.vertex(430, 360);\n  brush.vertex(420, 520);\n  brush.vertex(180, 520);\n  brush.endShape(CLOSE);\n  ink('#8a6640', 2);\n  brush.line(170, 360, 130, 320);\n  brush.line(430, 360, 470, 320);\n}","rating":"love","subject":"a cat peeking out of a cardboard box"},{"img":"img/65583ed03695.jpg","full":"img/65583ed03695-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // head\n  blob(298, 280, 80, 74, '#f2a65a', 165);\n  // ears\n  tri(221, 251, 248, 155, 286, 215, '#f2a65a');\n  tri(374, 251, 348, 155, 310, 215, '#f2a65a');\n  tri(237, 239, 250, 179, 269, 217, '#f7c6a3');\n  tri(358, 239, 345, 179, 326, 217, '#f7c6a3');\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 230);\n  brush.fillBleed(0.08);\n  brush.circle(267, 263, 8);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 230);\n  brush.fillBleed(0.08);\n  brush.circle(328, 263, 8);\n  brush.noStroke();\n  brush.fill('#e8879a', 220);\n  brush.fillBleed(0.08);\n  brush.circle(298, 286, 6);\n  // whiskers\n  ink('#7a4a2a', 1);\n  brush.line(261, 289, 205, 280);\n  brush.line(261, 297, 205, 304);\n  brush.line(334, 289, 390, 280);\n  brush.line(334, 297, 390, 304);\n  blob(252, 350, 24, 18, '#f2a65a', 165);\n  blob(343, 350, 24, 18, '#f2a65a', 165);\n  // cardboard box in front\n  brush.noStroke();\n  brush.fill('#c89a64', 210);\n  brush.beginShape();\n  brush.vertex(170, 360);\n  brush.vertex(430, 360);\n  brush.vertex(420, 520);\n  brush.vertex(180, 520);\n  brush.endShape(CLOSE);\n  ink('#8a6640', 2);\n  brush.line(170, 360, 130, 320);\n  brush.line(430, 360, 470, 320);\n}","rating":"love","subject":"a cat peeking out of a cardboard box"},{"img":"img/010db7848cbd.jpg","full":"img/010db7848cbd-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 170);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // head\n  blob(324, 280, 76, 70, '#a9a9b3', 165);\n  // ears\n  tri(250, 253, 276, 160, 312, 218, '#a9a9b3');\n  tri(397, 253, 371, 160, 335, 218, '#a9a9b3');\n  tri(266, 241, 278, 183, 297, 220, '#e3c6cf');\n  tri(381, 241, 369, 183, 350, 220, '#e3c6cf');\n  // face\n  ink('#555560', 2);\n  brush.arc(294, 264, 12, 20, 160);\n  brush.arc(353, 264, 12, 20, 160);\n  brush.noStroke();\n  brush.fill('#e8a0b0', 220);\n  brush.fillBleed(0.08);\n  brush.circle(324, 286, 6);\n  // whiskers\n  ink('#555560', 1);\n  brush.line(289, 289, 235, 280);\n  brush.line(289, 296, 235, 303);\n  brush.line(358, 289, 412, 280);\n  brush.line(358, 296, 412, 303);\n  blob(280, 347, 23, 17, '#a9a9b3', 165);\n  blob(367, 347, 23, 17, '#a9a9b3', 165);\n  // teacup in front\n  brush.noStroke();\n  brush.fill('#9fc6d9', 210);\n  brush.beginShape();\n  brush.vertex(440, 360);\n  brush.vertex(431, 401);\n  brush.vertex(407, 437);\n  brush.vertex(370, 463);\n  brush.vertex(324, 478);\n  brush.vertex(275, 478);\n  brush.vertex(230, 463);\n  brush.vertex(192, 437);\n  brush.vertex(168, 401);\n  brush.vertex(160, 360);\n  brush.endShape(CLOSE);\n  brush.noFill();\n  brush.set('marker', '#7aa8bf', 6);\n  brush.arc(445, 410, 35, 270, 450);\n  blob(300, 490, 190, 22, '#b9d7e4', 180);\n}","rating":"love","subject":"a sleepy cat inside a teacup"}]},"v3":{"steps":[{"step":1,"reward":0.5854867452595593,"valid":0.96875,"hps":0.3953730365028843,"subject":0.6924483997206534,"chars":282.53125,"kl":0.0},{"step":2,"reward":0.7165941937176108,"valid":1.0,"hps":0.4628057323399857,"subject":0.8629438015632331,"chars":293.28125,"kl":0.00789780014383723},{"step":3,"reward":0.7226874595188431,"valid":1.0,"hps":0.5394882895126674,"subject":0.813784287427552,"chars":302.90625,"kl":0.026978259265888482},{"step":4,"reward":0.7994427329601738,"valid":0.96875,"hps":0.5989414142798074,"subject":0.971309285010061,"chars":314.375,"kl":0.03264659582055174},{"step":5,"reward":0.6591004719749565,"valid":0.875,"hps":0.4995388627521974,"subject":0.906884274312428,"chars":597.15625,"kl":0.0698413861246081},{"step":6,"reward":0.5399161828486017,"valid":0.84375,"hps":0.4591944398914413,"subject":0.7124457703946434,"chars":527.125,"kl":0.06269001917098649},{"step":7,"reward":0.658946529767309,"valid":0.75,"hps":0.6993386055989212,"subject":0.9977198615670204,"chars":505.6875,"kl":0.1041484532567362},{"step":8,"reward":0.7193984185533053,"valid":0.96875,"hps":0.5039980308666862,"subject":0.8820112136102491,"chars":301.90625,"kl":0.15544515632791445},{"step":9,"reward":0.7327448634142179,"valid":0.96875,"hps":0.5239752390908937,"subject":0.893583397711477,"chars":292.9375,"kl":0.06977464933879673},{"step":10,"reward":0.7282639681453599,"valid":1.0,"hps":0.4254896551367747,"subject":0.9161362121812999,"chars":288.875,"kl":0.06810097442939878},{"step":11,"reward":0.4705567898899824,"valid":0.75,"hps":0.603542636071578,"subject":0.5719839975160236,"chars":303.6875,"kl":0.0750267570450281},{"step":12,"reward":0.7944066686298892,"valid":1.0,"hps":0.5142468562638866,"subject":0.9774158522486687,"chars":304.53125,"kl":0.12113243847852573},{"step":13,"reward":0.6786604215136627,"valid":0.96875,"hps":0.4880697673747,"subject":0.8106495724510281,"chars":300.59375,"kl":0.09620286046992987},{"step":14,"reward":0.7948996782335934,"valid":1.0,"hps":0.5395403318189824,"subject":0.958167091012001,"chars":294.25,"kl":0.13343924918444827},{"step":15,"reward":0.821851517830763,"valid":1.0,"hps":0.5868826257362318,"subject":0.9741969350725412,"chars":287.4375,"kl":0.06104026167304255},{"step":16,"reward":0.6661912315762202,"valid":1.0,"hps":0.6112639765316725,"subject":0.6433712819271022,"chars":290.4375,"kl":0.10402280575362965},{"step":17,"reward":0.658872809837306,"valid":1.0,"hps":0.4683080669928202,"subject":0.7430991660803556,"chars":296.6875,"kl":0.07994169020093977},{"step":18,"reward":0.6796504768604595,"valid":1.0,"hps":0.6232754116671888,"subject":0.6606806243871688,"chars":296.28125,"kl":0.10521075665019453},{"step":19,"reward":0.7802372783870156,"valid":1.0,"hps":0.5373336384700993,"subject":0.9306076459979522,"chars":299.0,"kl":0.10529506596503779},{"step":20,"reward":0.6773515408390203,"valid":1.0,"hps":0.5771094021449539,"subject":0.6930155599620775,"chars":285.34375,"kl":0.09328234667191282},{"step":21,"reward":0.7342376500909708,"valid":1.0,"hps":0.5670379690317268,"subject":0.8148449249565601,"chars":283.46875,"kl":0.0838822097866796},{"step":22,"reward":0.6022514054739774,"valid":0.9375,"hps":0.6075294054246158,"subject":0.5987794740047927,"chars":279.53125,"kl":0.061505649820901453},{"step":23,"reward":0.7433771794323869,"valid":0.96875,"hps":0.5468259327923736,"subject":0.8972534306587712,"chars":279.4375,"kl":0.04727659106720239},{"step":24,"reward":0.7813369569732234,"valid":0.96875,"hps":0.6609860426452813,"subject":0.8842939157639781,"chars":285.25,"kl":0.06250979477772489},{"step":25,"reward":0.6609472254433644,"valid":1.0,"hps":0.6623794673240904,"subject":0.591990877027456,"chars":299.6875,"kl":0.1278579878853634},{"step":26,"reward":0.8008982913983123,"valid":1.0,"hps":0.6101221864100251,"subject":0.9136988336686045,"chars":290.5,"kl":0.111141383938957},{"step":27,"reward":0.6782424858866408,"valid":1.0,"hps":0.6668526160648551,"subject":0.6230028789213975,"chars":290.03125,"kl":0.08249764624633826},{"step":28,"reward":0.7731875575444934,"valid":1.0,"hps":0.5757105215031871,"subject":0.8858066978864372,"chars":298.3125,"kl":0.09968206097255461},{"step":29,"reward":0.7428414283564824,"valid":1.0,"hps":0.49783819547448044,"subject":0.8874123003333807,"chars":279.8125,"kl":0.13030020490987226},{"step":30,"reward":0.7969971841437729,"valid":1.0,"hps":0.5382502284492325,"subject":0.9633941855281591,"chars":289.875,"kl":0.12438893258513417},{"step":31,"reward":0.8246003355173352,"valid":1.0,"hps":0.609135348185421,"subject":0.9618923924863338,"chars":301.09375,"kl":0.07241190632339567}],"frames":{"10":["img/0afb9b9d01a9.jpg","img/fc4944f40ceb.jpg","img/0b63b0b326e5.jpg","img/da29f4ab3a67.jpg"],"15":["img/4ac15323f67c.jpg","img/e9cf5d65e841.jpg","img/e12d74c6ac24.jpg","img/56d751c3b555.jpg"],"20":["img/66c57a2a6981.jpg","img/230dab77ca8a.jpg","img/b11022366bb6.jpg","img/b959d6d520de.jpg"],"25":["img/0ad873ef1c10.jpg","img/b2a52edab1ff.jpg","img/9378ba150187.jpg","img/d0ec8313b64f.jpg"],"30":["img/54454e686cb5.jpg","img/40d52cdd7393.jpg","img/866f57623917.jpg","img/cf9dab67e218.jpg"]},"grid":{"columns":["v2 best","untrained + kit","v3 SFT","v3 SFT+RL"],"rows":[{"subject":"a cat reading a tiny book","cells":[{"img":"img/5db2ecdbba4d.jpg","full":"img/5db2ecdbba4d-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 220);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(300, 380, 110, 110, '#f2a94c', 190);\n  // head\n  blob(300, 260, 85, 75, '#f2a94c', 190);\n  // ears\n  tri(240, 230, 285, 145, 330, 230, '#f2a94c');\n  tri(360, 230, 315, 145, 270, 230, '#f2a94c');\n  // face\n  brush.noStroke();\n  brush.fill('#4b4747', 240);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#4b4747', 240);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e87aa0', 240);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // whiskers\n  ink('#706a6a', 1);\n  brush.line(268, 245, 200, 230);\n  brush.line(268, 245, 200, 260);\n  brush.line(332, 245, 400, 230);\n  brush.line(332, 245, 400, 260);\n  // paws\n  blob(215, 420, 35, 22, '#f2a94c', 190);\n  blob(385, 420, 35, 22, '#f2a94c', 190);\n  // tail\n  ink('#706a6a', 2);\n  brush.line(300, 380, 445, 475);\n  // tiny book\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(370, 365, 15, 180, 360);\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(397, 348, 10, 180, 360);\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(424, 365, 15, 180, 360);\n  // text\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(363, 389, 6, 180, 360);\n  // www\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(401, 399, 6, 180, 360);\n  brush.noFill();\n  brush.set('marker', '#a2a3a4', 3);\n  brush.arc(440, 389, 6, 180, 360);\n}","rating":"no"},null,{"img":"img/33ee46397a65.jpg","full":"img/33ee46397a65-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  ground();\n  cat(309, 470, 0.99, 'kitten', 'grey', 'sleepy');\n  item('book', 448, 450, 0.7, '#f2a0b6');\n}","rating":"okay"},{"img":"img/7d609c2f559e.jpg","full":"img/7d609c2f559e-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  ground();\n  cat(298, 470, 1, 'sit', 'tuxedo', 'open', '#f2cf55');\n  item('book', 455, 470, 0.7);\n}","rating":"love"}]},{"subject":"a kitten inside a knitted hat","cells":[{"img":"img/c16d5441990f.jpg","full":"img/c16d5441990f-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 220);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // kitten body\n  blob(300, 390, 120, 120, '#f2b880', 150);\n  // head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // paws\n  blob(210, 465, 44, 28, '#f2b880', 150);\n  blob(390, 465, 44, 28, '#f2b880', 150);\n  // ink for whiskers\n  ink('#5a4636', 1);\n  // whiskers\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // knitted hat\n  // brim\n  brush.noStroke();\n  brush.fill('#e2c1a9', 210);\n  brush.fillBleed(0.1);\n  brush.beginShape();\n  brush.vertex(220, 313);\n  brush.vertex(270, 365);\n  brush.vertex(320, 313);\n  brush.vertex(320, 387);\n  brush.vertex(270, 438);\n  brush.vertex(220, 387);\n  brush.endShape(CLOSE);\n  // crown\n  brush.noStroke();\n  brush.fill('#e2c1a9', 210);\n  brush.fillBleed(0.1);\n  brush.beginShape();\n  brush.vertex(270, 373);\n  brush.vertex(300, 462);\n  brush.vertex(359, 462);\n  brush.vertex(389, 373);\n  brush.vertex(359, 284);\n  brush.vertex(300, 284);\n  brush.endShape(CLOSE);\n}","rating":"okay"},{"img":"img/55d81d1064eb.jpg","full":"img/55d81d1064eb-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper('#fff6ea');\n  backdrop('arch', '#f5f3f0');\n  ground('#fffbf8');\n  cat(300, 500, 0.8, 'kitten', 'orange', 'wide', '#ff8f67');\n  wear('knithat', '#d4a5a5');\n  hold('yarn', '#ff9a9e');\n  weather('petals', '#ffe6e6');\n}","rating":"love"},{"img":"img/672d8231add2.jpg","full":"img/672d8231add2-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#f6e3d3');\n  catIn('knithat', 300, 460, 1, 'white', 'wide', '#e4ecdf');\n}","rating":"okay"},{"img":"img/f2e4636f11e4.jpg","full":"img/f2e4636f11e4-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#dbe9f5');\n  catIn('knithat', 303, 470, 1, 'ginger', 'wide', '#f2a0b6');\n}","rating":"love"}]},{"subject":"a cat chasing a butterfly","cells":[{"img":"img/23849600b530.jpg","full":"img/23849600b530-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 200);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // Body\n  blob(300, 390, 120, 120, '#f2b880', 150);\n  // Head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // Ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // Paws\n  blob(210, 460, 55, 35, '#f2b880', 150);\n  blob(390, 460, 55, 35, '#f2b880', 150);\n  // Face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // Whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  // Ink for tail\n  ink('#5a4636', 2);\n  // Tail as an arc: points from (300,390) to (430,470)\n  brush.arc(300, 390, 140, 210, 390);\n  // Butterfly\n  ink('#e4a83a', 1);\n  brush.arc(445, 420, 20, 180, 360);\n  brush.arc(475, 420, 20, 200, 300);\n  // Paint body in wash\n  brush.noStroke();\n  brush.fill('#e4a83a', 140);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  brush.vertex(445, 420);\n  brush.vertex(460, 495);\n  brush.vertex(475, 420);\n  brush.endShape(CLOSE);\n}","rating":"no"},null,{"img":"img/0d63193c72ad.jpg","full":"img/0d63193c72ad-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('arch', '#dfe7f4');\n  item('butterfly', 420, 370, 1.12, '#f2c464');\n  cat(256, 500, 0.97, 'side', 'siamese', 'wide');\n}","rating":"love"},{"img":"img/a849f881e664.jpg","full":"img/a849f881e664-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('arch', '#dfe7f4');\n  item('butterfly', 420, 300, 1.1, '#f28c6a');\n  cat(285, 470, 0.91, 'kitten', 'siamese', 'wide');\n}","rating":"love"}]},{"subject":"a cat with a party hat and a cupcake","cells":[{"img":"img/f3beea3e9bc8.jpg","full":"img/f3beea3e9bc8-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 210);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(300, 390, 120, 120, '#f2b880', 150);\n  // head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // pupils\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  // nose\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n  // party hat\n  ink('#d85a5a', 3);\n  brush.line(260, 262, 330, 262);\n  brush.arc(295, 262, 18, 180, 340);\n  ink('#fff4df', 1);\n  brush.set('marker', '#e8879a', 3);\n  brush.arc(295, 262, 12, 180, 340);\n  // cupcake\n  blob(440, 380, 55, 25, '#ffb2a5', 150);\n  ink('#f7d695', 2);\n  brush.line(440, 380, 500, 380);\n  brush.line(500, 380, 472, 435);\n  // yellow butter\n  brush.noFill();\n  brush.set('marker', '#f9c436', 2);\n  brush.arc(500, 380, 12, 0, 180);\n  // icing on top\n  brush.noFill();\n  brush.set('marker', '#f2a1a1', 2);\n  brush.arc(500, 380, 7, 270, 360);\n  // cherry\n  brush.noFill();\n  brush.set('marker', '#ff6aa7', 2);\n  brush.arc(493, 425, 5, 240, 300);\n}","rating":"no"},null,null,{"img":"img/d4edee61ae9c.jpg","full":"img/d4edee61ae9c-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('arch', '#ead8bf');\n  cat(307, 470, 0.97, 'kitten', 'tuxedo', 'wide');\n  wear('partyhat', '#e98d6b');\n  item('cupcake', 437, 170, 0.72, '#c95d6e');\n}","rating":"love"}]},{"subject":"a cat napping on a stack of books","cells":[{"img":"img/380c4ae3355b.jpg","full":"img/380c4ae3355b-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 210);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\n\nfunction blobx(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction trix(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 210);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction inx(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\n\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // Cat body\n  blob(300, 390, 120, 115, '#f2b880', 150);\n  // Head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // Ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // Paws\n  blob(221, 471, 54, 36, '#f2b880', 150);\n  blob(379, 471, 54, 36, '#f2b880', 150);\n  // Ink sidebar\n  ink('#5a4a3a', 3);\n  // Whiskers\n  brush.line(273, 287, 220, 277);\n  brush.line(273, 294, 220, 298);\n  brush.line(328, 287, 382, 278);\n  brush.line(328, 294, 382, 299);\n  // Ink sidebar\n  ink('#5a4a3a', 3);\n  // Nose\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // Ink sidebar\n  ink('#5a4a3a', 3);\n  // Ink sidebar\n  ink('#5a4a3a', 3);\n  // Books\n  brush.noFill();\n  brush.set('marker', '#707070', 4);\n  brush.arc(225, 477, 37, 20, 160);\n  brush.noFill();\n  brush.set('marker', '#707070', 4);\n  brush.arc(285, 477, 37, 20, 160);\n  brush.noFill();\n  brush.set('marker', '#707070', 4);\n  brush.arc(345, 477, 37, 20, 160);\n  // Note\n  blobx(231, 438, 80, 30, '#fff4df', 190);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 230);\n  brush.fillBleed(0.05);\n  brush.circle(255, 450, 9);\n}","rating":"no"},null,{"img":"img/d7a47fab1b54.jpg","full":"img/d7a47fab1b54-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  item('books', 447, 460, 1.13, '#e4ecdf');\n  cat(255, 460, 0.87, 'sleep', 'ginger', 'sleepy');\n}","rating":"love"},{"img":"img/1a440ab85ffd.jpg","full":"img/1a440ab85ffd-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  ground('#e8ead9');\n  item('books', 315, 170, 1.04, '#8cc084');\n  cat(301, 470, 0.96, 'sleep', 'ginger', 'sleepy');\n}","rating":"okay"}]},{"subject":"a grey cat with green eyes and a heart","cells":[{"img":"img/6c945522c85a.jpg","full":"img/6c945522c85a-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 210);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // body\n  blob(300, 390, 120, 120, '#8a8a8a', 210);\n  // head\n  blob(300, 250, 95, 95, '#8a8a8a', 210);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#8a8a8a');\n  tri(375, 215, 360, 130, 315, 180, '#8a8a8a');\n  // paws\n  blob(228, 475, 45, 25, '#8a8a8a', 210);\n  blob(372, 475, 45, 25, '#8a8a8a', 210);\n  // ink for whiskers\n  ink('#5a4636', 1);\n  // whiskers\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  // head markings\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // ink for ink\n  ink('#7e7e7e', 1);\n  // paw prints\n  brush.arc(228, 475, 12, 220, 380);\n  brush.arc(372, 475, 12, 220, 380);\n  // heart\n  ink('#e8879a', 2);\n  brush.line(300, 538, 360, 586);\n  brush.line(300, 538, 240, 586);\n  brush.noStroke();\n  brush.fill('#e8879a', 170);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  brush.vertex(300, 538);\n  brush.vertex(360, 586);\n  brush.vertex(300, 629);\n  brush.vertex(240, 586);\n  brush.endShape(CLOSE);\n}","rating":"no"},{"img":"img/2a018a2d79cd.jpg","full":"img/2a018a2d79cd-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper('#fff6ea');\n  backdrop('hill', '#f5f5f5');\n  ground('#ffe6e6');\n  cat(300, 500, 1, 'sit', 'grey', 'wide', '#50c878');\n  wear('bow', '#f5f5f5');\n  hold('heart', '#f5f5f5');\n  item('flower', 330, 480, 0.3, '#ffe6e6');\n  weather('hearts', '#ffe6e6');\n}","rating":"love"},{"img":"img/59f65a5342b8.jpg","full":"img/59f65a5342b8-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#e4ecdf');\n  cat(290, 500, 1.05, 'sit', 'grey', 'wide', '#6ba3d6');\n  item('heart', 452, 455, 0.8);\n}","rating":"love"},{"img":"img/93e69914d39a.jpg","full":"img/93e69914d39a-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#e5ecdf');\n  cat(297, 500, 1.03, 'sit', 'grey', 'wide');\n  item('heart', 443, 450, 0.6);\n}","rating":"love"}]},{"subject":"a kitten in a flower pot","cells":[{"img":"img/2b8c1657c9a1.jpg","full":"img/2b8c1657c9a1-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 190);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // kitten body\n  blob(300, 390, 120, 120, '#ed99a3', 230);\n  // paws\n  blob(222, 500, 45, 19, '#ed99a3', 230);\n  blob(378, 500, 45, 19, '#ed99a3', 230);\n  // head\n  blob(300, 250, 95, 95, '#ed99a3', 230);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#ed99a3');\n  tri(375, 215, 360, 130, 315, 180, '#ed99a3');\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  brush.arc(300, 282, 14, 20, 160);\n  // flower pot\n  brush.noStroke();\n  brush.fill('#8d8a6b', 230);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  brush.vertex(180, 490);\n  brush.vertex(130, 420);\n  brush.vertex(180, 350);\n  brush.vertex(230, 420);\n  brush.endShape(CLOSE);\n  brush.noStroke();\n  brush.fill('#4a4b4f', 230);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.circle(205, 468, 12);\n  // flowers\n  blob(180, 410, 18, 12, '#e57336', 230);\n  blob(225, 410, 18, 12, '#e57336', 230);\n  blob(235, 425, 10, 7, '#f9a825', 230);\n  blob(200, 441, 8, 6, '#7cb342', 230);\n  blob(255, 441, 8, 6, '#7cb342', 230);\n}","rating":"okay"},null,{"img":"img/9d1ad027ad26.jpg","full":"img/9d1ad027ad26-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#dbe9f5');\n  catIn('pot', 300, 470, 1.02, 'tabby', 'wide', '#b9a3e3');\n  item('flower', 430, 190, 0.7);\n}","rating":"love"},{"img":"img/649e96c61d70.jpg","full":"img/649e96c61d70-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  ground();\n  catIn('pot', 300, 470, 1.01, 'siamese', 'wide', '#e2b9c8');\n}","rating":"okay"}]},{"subject":"a cat looking at falling snow","cells":[{"img":"img/a16848221920.jpg","full":"img/a16848221920-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 220);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // cat body\n  blob(300, 390, 120, 120, '#f2b880', 150);\n  // paws\n  blob(225, 490, 40, 20, '#f2b880', 150);\n  blob(375, 490, 40, 20, '#f2b880', 150);\n  // head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  blob(268, 245, 9, 9, '#3b2f2f', 220);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  blob(332, 245, 9, 9, '#3b2f2f', 220);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  blob(300, 272, 6, 6, '#e8879a', 200);\n  // whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  // head hair\n  ink('#f9a048', 1);\n  brush.line(300, 250, 250, 220);\n  brush.line(300, 250, 350, 220);\n  ink('#f9a048', 1);\n  brush.line(280, 243, 280, 276);\n  brush.line(320, 243, 320, 276);\n  // snow\n  for (let a = 0; a < 400; a += 65) {\n    ink('#a2d2ff', 1);\n    brush.arc(300, 580, 2 + random(2), a, a + 35);\n  }\n}","rating":"no"},{"img":"img/efcb6741e1f8.jpg","full":"img/efcb6741e1f8-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper('#fff6ea');\n  backdrop('hill', '#f8f2f0');\n  ground('#f0e8e0');\n  cat(300, 500, 0.8, 'sit', 'ginger', 'wide', '#ffa58b');\n  wear('scarf', '#ffcccb');\n  hold('fishbowl', '#f8f8ff');\n  weather('snow', '#f5f5f5');\n}","rating":"love"},{"img":"img/cfe6a35b85ee.jpg","full":"img/cfe6a35b85ee-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  weather('snow');\n  cat(319, 500, 1.01, 'sit', 'grey', 'wide');\n}","rating":"love"},{"img":"img/0f36d4c61ab2.jpg","full":"img/0f36d4c61ab2-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#f8dde2');\n  weather('snow');\n  cat(310, 460, 1, 'sit', 'grey', 'open');\n}","rating":"love"}]},{"subject":"a sleepy cat on a crescent moon","cells":[{"img":"img/79303a4c9edb.jpg","full":"img/79303a4c9edb-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 220);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // Cat body\n  blob(300, 390, 120, 112, '#f2b880', 150);\n  // Head\n  blob(300, 250, 95, 95, '#f2b880', 150);\n  // Ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // Face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // Whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  // Crescent moon\n  blob(530, 160, 37, 12, '#a9a9b3', 210);\n  brush.noFill();\n  brush.set('marker', '#ffffff', 3);\n  brush.arc(567, 155, 12, 20, 160);\n}","rating":"love"},{"img":"img/075d596b342d.jpg","full":"img/075d596b342d-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper('#fff6ea');\n  backdrop('night', '#000022');\n  ground('#e0d7d3');\n  cat(300, 500, 0.8, 'sleep', 'cream', 'sleepy', '#9e8c8c');\n  wear('bow', '#ffcc99');\n  hold('moon', '#c8c8c8');\n  item('cloud', 250, 450, 0.4, '#e0d6d4');\n  weather('stars', '#ffffff');\n}","rating":"love"},{"img":"img/cd065c3e6b46.jpg","full":"img/cd065c3e6b46-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#5ba3dc');\n  item('moon', 400, 400, 1.05);\n  cat(245, 460, 0.87, 'sleep', 'tuxedo', 'sleepy');\n}","rating":"love"},{"img":"img/13c335aa1b11.jpg","full":"img/13c335aa1b11-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#5ba3dc');\n  item('moon', 300, 170, 1.05, '#f7dc8c');\n  cat(300, 470, 0.95, 'sleep', 'ginger', 'sleepy');\n}","rating":"love"}]},{"subject":"a mother cat with her kitten","cells":[{"img":"img/127f5ee871b0.jpg","full":"img/127f5ee871b0-full.jpg","code":"function setup() {\n  createCanvas(600, 600, WEBGL);\n  angleMode(DEGREES);\n  brush.scaleBrushes(3);\n  noLoop();\n}\nfunction blob(x, y, rx, ry, col, alpha) {\n  brush.noStroke();\n  brush.fill(col, alpha);\n  brush.fillBleed(0.15);\n  brush.fillTexture(0.2, 0.3);\n  brush.beginShape();\n  for (let a = 0; a < 360; a += 24) {\n    brush.vertex(x + cos(a) * rx, y + sin(a) * ry);\n  }\n  brush.endShape(CLOSE);\n}\nfunction tri(x1, y1, x2, y2, x3, y3, col) {\n  brush.noStroke();\n  brush.fill(col, 200);\n  brush.beginShape();\n  brush.vertex(x1, y1);\n  brush.vertex(x2, y2);\n  brush.vertex(x3, y3);\n  brush.endShape(CLOSE);\n}\nfunction ink(col, w) {\n  brush.noFill();\n  brush.set('HB', col, w);\n}\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  background('#fff4df');\n  // main body\n  blob(300, 390, 120, 117, '#f2b880', 150);\n  // head\n  blob(300, 250, 95, 94, '#f2b880', 150);\n  // ears\n  tri(225, 215, 240, 130, 285, 180, '#f2b880');\n  tri(375, 215, 360, 130, 315, 180, '#f2b880');\n  // paws\n  blob(222, 468, 40, 26, '#f2b880', 150);\n  blob(378, 468, 40, 26, '#f2b880', 150);\n  // paws ink\n  ink('#5a4636', 2);\n  brush.line(223, 465, 223, 499);\n  brush.line(377, 465, 377, 499);\n  // face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(268, 245, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(332, 245, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(300, 272, 6);\n  // whiskers\n  ink('#5a4636', 1);\n  brush.line(250, 280, 195, 270);\n  brush.line(250, 288, 195, 295);\n  brush.line(350, 280, 405, 270);\n  brush.line(350, 288, 405, 295);\n  // catmom head\n  blob(533, 390, 117, 115, '#f2b880', 150);\n  // catmom ears\n  tri(458, 374, 474, 289, 509, 345, '#f2b880');\n  tri(608, 374, 592, 289, 557, 345, '#f2b880');\n  // catmom face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(497, 364, 9);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(576, 364, 9);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(537, 388, 6);\n  // catmom whiskers\n  ink('#5a4636', 1);\n  brush.line(521, 381, 468, 372);\n  brush.line(521, 390, 468, 395);\n  brush.line(609, 381, 663, 372);\n  brush.line(609, 390, 663, 395);\n  // kitten body\n  blob(444, 521, 85, 78, '#f9a69a', 150);\n  // kitten head\n  blob(444, 436, 61, 60, '#f9a69a', 150);\n  // kitten ears\n  tri(379, 419, 394, 335, 429, 391, '#f9a69a');\n  tri(509, 419, 494, 335, 459, 391, '#f9a69a');\n  // kitten face\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(407, 410, 8);\n  brush.noStroke();\n  brush.fill('#3b2f2f', 220);\n  brush.fillBleed(0.05);\n  brush.circle(482, 410, 8);\n  brush.noStroke();\n  brush.fill('#e8879a', 200);\n  brush.fillBleed(0.05);\n  brush.circle(445, 433, 6);\n  // kitten paws\n  blob(379, 528, 40, 26, '#f9a69a', 150);\n  blob(508, 528, 40, 26, '#f9a69a', 150);\n  // kitten whiskers\n  ink('#5a4636', 1);\n  brush.line(423, 445, 369, 436);\n  brush.line(423, 454, 369, 459);\n  brush.line(508, 445, 562, 436);\n  brush.line(508, 454, 562, 459);\n}","rating":"no"},null,{"img":"img/8fe25b376887.jpg","full":"img/8fe25b376887-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#efe3f4');\n  cat(232, 500, 0.91, 'sit', 'orange', 'open');\n  cat(368, 450, 0.76, 'kitten', 'black', 'wide');\n}","rating":"love"},{"img":"img/723f8204fc35.jpg","full":"img/723f8204fc35-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#dbe9f5');\n  cat(297, 500, 0.91, 'sit', 'orange', 'open');\n  cat(297, 450, 0.63, 'kitten', 'ginger', 'wide');\n}","rating":"love"}]}]},"kit":[{"img":"img/645798a5a298.jpg","full":"img/645798a5a298-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#e2ecf4');\n  cat(300, 500, 1, 'kitten', 'grey', 'wide');\n  hold('book', '#e48f8f');\n  weather('sparkles');\n}","rating":"love","subject":"a cat reading a tiny book"},{"img":"img/7466a555bcb6.jpg","full":"img/7466a555bcb6-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  catIn('knithat', 300, 470, 1, 'cream', 'wide', '#e98f7a');\n}","rating":"love","subject":"a kitten inside a knitted hat"},{"img":"img/c9d19d75dabe.jpg","full":"img/c9d19d75dabe-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  ground('#e5edd6');\n  cat(250, 500, 1, 'wave', 'tabby', 'wide');\n  item('butterfly', 450, 190, 1.4, '#b9a3e3');\n}","rating":"love","subject":"a cat chasing a butterfly"},{"img":"img/1779a296fe0c.jpg","full":"img/1779a296fe0c-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  ground('#e5edd6');\n  cat(260, 480, 0.9, 'stretch', 'orange', 'up');\n  item('butterfly', 420, 200, 1.3, '#f6a5c0');\n  item('flower', 500, 380, 0.8);\n}","rating":"love","subject":"a cat chasing a butterfly"},{"img":"img/851affa40b3e.jpg","full":"img/851affa40b3e-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#fbe3c6');\n  cat(300, 500, 1, 'sit', 'ginger', 'wide');\n  wear('partyhat', '#f6a5c0');\n  hold('cupcake');\n}","rating":"love","subject":"a cat with a party hat and a cupcake"},{"img":"img/0475b50f35fd.jpg","full":"img/0475b50f35fd-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#f8dde2');\n  cat(300, 500, 1, 'sit', 'grey', 'wide', '#8fcf6a');\n  hold('heart', '#f08aa0');\n}","rating":"love","subject":"a grey cat with green eyes and a heart"},{"img":"img/cc3296350b26.jpg","full":"img/cc3296350b26-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  weather('hearts');\n  cat(300, 500, 1, 'kitten', 'grey', 'open', '#8fcf6a');\n}","rating":"love","subject":"a grey cat with green eyes and a heart"},{"img":"img/31c506495c3b.jpg","full":"img/31c506495c3b-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  weather('snow');\n  cat(300, 500, 1, 'sit', 'tabby', 'up');\n  wear('scarf', '#d95f6a');\n}","rating":"love","subject":"a cat looking at falling snow"},{"img":"img/0475f8c795b0.jpg","full":"img/0475f8c795b0-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('window', '#9cb6d8');\n  weather('snow');\n  cat(300, 470, 0.8, 'sit', 'white', 'up');\n}","rating":"love","subject":"a cat looking at falling snow"},{"img":"img/320eadea09da.jpg","full":"img/320eadea09da-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('night', '#3d4a7a');\n  weather('stars');\n  item('moon', 330, 330, 1.3, '#f7dc8c');\n  cat(270, 380, 0.55, 'sleep', 'grey', 'sleepy');\n}","rating":"love","subject":"a sleepy cat on a crescent moon"},{"img":"img/7441cbab8c74.jpg","full":"img/7441cbab8c74-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#e4dcf2');\n  item('moon', 320, 320, 1.25, '#f7dc8c');\n  cat(260, 400, 0.55, 'sleep', 'orange', 'sleepy');\n  weather('stars');\n}","rating":"love","subject":"a sleepy cat on a crescent moon"},{"img":"img/036a1b5259cc.jpg","full":"img/036a1b5259cc-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  ground();\n  cat(230, 500, 1, 'sit', 'orange', 'happy');\n  cat(420, 500, 0.6, 'kitten', 'orange', 'up');\n}","rating":"love","subject":"a mother cat with her kitten"},{"img":"img/bfda401a0576.jpg","full":"img/bfda401a0576-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#dfe7f4');\n  cat(300, 500, 1, 'kitten', 'grey', 'up');\n  weather('sparkles', '#f2c85b');\n}","rating":"love","subject":"a grey kitten sitting and looking up"},{"img":"img/a7e3369550ca.jpg","full":"img/a7e3369550ca-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('arch', '#e8def2');\n  cat(300, 500, 1, 'sit', 'black', 'wide');\n}","rating":"love","subject":"a black cat with big round yellow eyes"},{"img":"img/d460b0967873.jpg","full":"img/d460b0967873-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  backdrop('circle', '#f9e3c9');\n  cat(330, 470, 1, 'loaf', 'orange', 'open');\n}","rating":"love","subject":"a chubby cat loaf seen from the front"},{"img":"img/8a9d06329350.jpg","full":"img/8a9d06329350-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  ground();\n  cat(250, 500, 1, 'kitten', 'grey', 'wide');\n  item('yarn', 430, 450, 1.1, '#e05a62');\n}","rating":"love","subject":"a kitten playing with a ball of red yarn"},{"img":"img/a39844d9807b.jpg","full":"img/a39844d9807b-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  catIn('box', 300, 470, 1, 'orange', 'open');\n}","rating":"love","subject":"a cat peeking out of a cardboard box"},{"img":"img/05ef0cacf6e9.jpg","full":"img/05ef0cacf6e9-full.jpg","code":"function setup() { createCanvas(600, 600, WEBGL); angleMode(DEGREES); brush.scaleBrushes(3); noLoop(); }\nfunction draw() {\n  translate(-width / 2, -height / 2);\n  paper();\n  catIn('teacup', 300, 460, 1, 'white', 'sleepy', '#f4b8c8');\n  item('heart', 470, 170, 0.8);\n}","rating":"love","subject":"a sleepy cat inside a teacup"}]}}