{"name":"Duplex001","description":"// ██████╗ ██╗   ██╗██████╗ ██╗     ███████╗██╗  ██╗\n// ██╔══██╗██║   ██║██╔══██╗██║     ██╔════╝╚██╗██╔╝\n// ██║  ██║██║   ██║██████╔╝██║     █████╗   ╚███╔╝ \n// ██║  ██║██║   ██║██╔═══╝ ██║     ██╔══╝   ██╔██╗ \n// ██████╔╝╚██████╔╝██║     ███████╗███████╗██╔╝ ██╗\n// ╚═════╝  ╚═════╝ ╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝\n//  ______________________________________________________\n// |                                                      |\n// |                                                001   |\n// |______________________________________________________|\n// |                                                      |\n// |  This OBJKT takes its own description metadata and   |\n// |      executes it as code to render its output        |\n// |                                                      |\n// |   It's ALSO able to take instructions from another   |\n// |  OBJKT its connected to, but only if you own it too  |\n// |                                                      |\n// |     Collect both pieces and see the art rendered     |\n// |       together, uniquely based on your wallet!       |\n// |                                                      |\n// |           This is a collaboration between            |\n// |                    Yazid & Eltono                    |\n// |______________________________________________________|\n// |                                                      |\n// |                                        16 Aug 2021   |\n// |______________________________________________________|\n\n      let subCells = random(5,60)\n      let miniHeight = cellHeight/subCells\n      let miniWidth = cellWidth/subCells\n      let density = random(5)\n      \n\n      for(let y1=0;y1<subCells;y1++){\n        for(let x1=0;x1<subCells;x1++){\n          let angle = radians(random(90))\n          rotate(angle)\n\n          if(random(10)>3.5){\n            noStroke()\n            let randColor = color(random(pieceColors))\n            randColor.setAlpha(random(190,245))\n            fill(randColor)\n            ellipse(\n              random(cellWidth*density*x1*0.05),\n              random(cellHeight),\n              width/random(40,100)\n            )\n          } else {\n            noFill()\n            let randColor = color(random(pieceColors))\n            randColor.setAlpha(random(190,245))\n            stroke(randColor)\n            strokeWeight(width/random(80,200))\n            strokeCap(SQUARE)\n            line(\n              (miniWidth*density*0.4*x1)+(x1+0)*miniWidth,\n              (y1+0)*miniHeight,\n              (miniWidth*density*0.4*x1)+(x1+0)*miniWidth,\n              (y1+random(1,5))*miniHeight,\n            )\n          }\n        }\n      }","tags":["experimental","conceptual","p5js","generativeart","abstract","interactive","collaboration","yazid","eltono"],"symbol":"OBJKT","artifactUri":"ipfs://QmXThVKyGV17Qhg9UNyV2udgz9ybPMENeB1foNXeepYBWJ","displayUri":"ipfs://QmdU5gf5CaHyHDLeN31GXXeAniqu5N8p82BhqmvkiZ5SX3","thumbnailUri":"ipfs://QmdT9uqDPcKz4VfCewcVM2qJyECN5rTfXXC5S9kQwRvn7m","creators":["tz1QgjmhrUD3X7kgS9mMHbUz4cS6uDiFGhAU"],"formats":[{"uri":"ipfs://QmXThVKyGV17Qhg9UNyV2udgz9ybPMENeB1foNXeepYBWJ","mimeType":"application/x-directory"}],"decimals":0,"isBooleanAmount":false,"shouldPreferSymbol":false}