# [sketch-a-day](https://abav.lugaralgum.com/sketch-a-day) #### one visual idea a day --- [2026](README.md) \| [2025](2025.md) \| [2024](2024.md) \| [2023](2023.md) \| [2022](2022.md) \| [2021](2021.md) \| [2020](2020.md) \| [2019](2019.md) \| 2018 --- ### s367  367: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s367) [Py.Processing] --- ### s366  366: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s366) [Py.Processing] --- ### s365  365: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s365) [Py.Processing] --- ### s364  364: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s364) [Py.Processing] --- ### s363  363: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s363) [Py.Processing] --- ### s362  362: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s362) [Py.Processing] --- ### s361  361: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s361) [Py.Processing] --- ### s360  360: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s360) [Py.Processing] --- ### s359  359: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s359) [Py.Processing] --- ### s358  358: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s358) [Py.Processing] ... in preparation for something... --- ### s357  357: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s357) [Py.Processing] Back to ideas from 322... --- ### s356  356: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s356) [Py.Processing] --- ### s355  355: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s35) [Py.Processing] --- ### s354  354: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s354) [Py.Processing] --- ### s353  353: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s353) [Py.Processing] --- ### s352  352: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s352) [Py.Processing] --- ### s351  351: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s351) [Py.Processing] --- ### s350  350: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s350) [Py.Processing] --- ### s349  349: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s349) [Py.Processing] --- ### s348  348: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s348) [Py.Processing] --- ### s347  347: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s348) [Py.Processing] --- ### s346  346: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s344) [Py.Processing] --- ### s345  345: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s345) [Py.Processing] --- ### s344  344: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s344) [Py.Processing] --- ### s343  343: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s343) [Py.Processing] --- ### s342  342: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s342) [Py.Processing] --- ### s341  341: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s341) [Py.Processing] --- ### s340  340: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s340) [Py.Processing] --- ### s339  339: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s339) [Py.Processing] --- ### s338  338: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s338) [Py.Processing] --- ### s337  337: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s337) [Py.Processing] --- ### s336  336: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s336) [Py.Processing] --- ### s335  335: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s335) [Py.Processing] --- ### s334  334: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s334) [Py.Processing] --- ### s333  333: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s333) [Py.Processing] --- ### s332  332: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s332) [Py.Processing] --- ### s331  331: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s331) [Py.Processing] --- ### s330  330: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s330) [Py.Processing] --- ### s329  329: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s329) [Py.Processing] --- ### s328  328: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s328) [Py.Processing] --- ### s327  327: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s327) [Py.Processing] --- ### s326  326: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s326) [Py.Processing] --- ### s325  325: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s325) [Py.Processing] --- ### s324  324: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s324) [Py.Processing] --- ### s323  323: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s323) [Py.Processing] --- ### s322  322: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s322) [Py.Processing] --- ### s321  321: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s321) [Py.Processing] --- ### s320  320: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s320) [Py.Processing] --- ### s319  319: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s319) [Py.Processing] --- ### s318  318: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s318) [Py.Processing] --- ### s317  317: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s317) [Py.Processing] --- ### s316  316: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s316) [Py.Processing] A 3D take on 314 --- ### s315  315: [GIF](2018/s315/s315.gif) [code](https://github.com/villares/sketch-a-day/tree/master/2018/s315) [Py.Processing] Horizontaly connected 314 --- ### s314  314: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s314) [Py.Processing] Isolating elements from 313 --- ### s313  313: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s313) [Py.Processing] --- ### s312  312: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s312) [Py.Processing] --- ### s311  311: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s311) [Py.Processing] --- ### s310  310: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s310) [Py.Processing] --- ### s309  309: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s309) [Py.Processing] --- ### s308  308: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s308) [Py.Processing] --- ### s307  307: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s307) [Py.Processing] --- ### s306  306: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s306) [Py.Processing] --- ### s305  305: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s305) [Py.Processing] --- ### s304  304: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s304) [Py.Processing] --- ### s303  303: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s303) [Py.Processing] --- ### s302  302: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s302) [Py.Processing] Hatches parallel to opposed sides. --- ### s301  301: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s301) [Py.Processing] Tried to supress some vertices from the hatch grid. --- ### s300  300: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s300) [Py.Processing] Cross hatch and, a simplified "cell" polygon drawing and selective non-random verticies (if pos % 3 == 0) --- ### s299  299: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s299) [Py.Processing] Inclined hatches --- ### s298  298: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s298) [Py.Processing] First hatch attempt on a random "cell" grid. Each cell has 4 "node" vertices --- ### s297  297: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s297) [Py.Processing] Changed my internal point grid to "pixels" --- ### s296  296: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s296) [Py.Processing] Demo of how the "inside poly" test works from from my lines intersecting poly function. --- ### s295  295: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s295) [Py.Processing] Testing if a point is inside a poly to make a grid/retucule. Advancing from my lines intersecting poly function. --- ### s294  294: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s294) [Py.Processing] Playing with my code for lines intersecting polygons. --- ### s293  293: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s293) [Py.Processing] The polygons now are non-self-intersecting, and the hatches are kept inside :) White lines in the background are from discarded random polys that self-intersected. --- ### s292  292: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s292) [Py.Processing] --- ### s291  291: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s291) [Py.Processing] --- ### s290  290: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s290) [Py.Processing] --- ### s289  289: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s289) [Py.Processing] True arcs and lines --- ### s288  288: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s288) [Py.Processing] Ellipse arcs --- ### s287  287: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s287) [Py.Processing] --- ### s286  286: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s286) [Py.Processing] --- ### s285  285: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s285) [Py.Processing] --- ### s284  284: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s284) [Py.Processing] --- ### s283  283: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s283) [Py.Processing] --- ### s282  282: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s282) [Py.Processing] First attempt at joining rectangular cells into bigger polygonal faces. --- ### s281  281: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s281) [Py.Processing] --- ### s280  280: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s280) [Py.Processing] --- ### s279  279: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s279) [Py.Processing] --- ### s278  278: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s278) [Py.Processing] --- ### s277  277: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s277) [Py.Processing] --- ### s276  276: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s276) [Py.Processing] --- ### s275  275: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s275) [Py.Processing] --- ### s274  274: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s274) [Py.Processing] --- ### s273  273: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s273) [Py.Processing] This sorts a gliph sequence from lighter to darker --- ### s272  272: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s272) [Py.Processing] --- ### s271  271: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s271) [Py.Processing] --- ### s270  270: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s270) [Py.Processing] --- ### s269  269: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s269) [Py.Processing] --- ### s268  268: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s268)[Py.Processing] & [code](https://github.com/villares/sketch-a-day/blob/master/2018/s268_pygame/s268_pygame.py)[[Pygame](https://wwwpygame.org)] --- ### s267  267: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s267) [Py.Processing] --- ### s266  266: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s266) [Py.Processing] --- ### s265  265: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s265) [Py.Processing] --- ### s264  264: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s264) [Py.Processing] --- ### s263  263: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s263) [Py.Processing] --- ### s262  262: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s262) [Py.Processing] --- ### s261  261: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s261) [Py.Processing] --- ### s260  260: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s260) [Py.Processing] --- ### s259  259: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s259) [Py.Processing] --- ### s258  258: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s258) [Py.Processing] --- ### s257  257: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s257) [Py.Processing] --- ### s256  256: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s256) [Py.Processing] --- ### s254  254: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s254) [Py.Processing] --- ### s253  253: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s253) [Py.Processing] --- ### s252  252: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s252) [Py.Processing] --- ### s251  251: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s251) [Py.Processing] --- ### s250  250: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s250) [Py.Processing] This was kind of a dead end. It's easy to rotate stuff with pushMatrix(), transtlate() and rotate(), but it doesn't work inside beginShape() as I found out the next day. --- ### s249  249: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s249) [Py.Processing] --- ### s248  248: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s248) [Py.Processing] Animation --- ### s247  247: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s247) [Py.Processing] --- ### s246  246: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s246) [Py.Processing] --- ### s245  245: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s245) [Py.Processing] --- ### s244  244: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s244) [Py.Processing] --- ### s243  243: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s243) [Py.Processing] --- ### s242  242: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s242) [Py.Processing] --- ### s241  241: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s241) [Py.Processing] --- ### s240  240: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s240) [Py.Processing] --- ### s239  239: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s239) [Py.Processing] --- ### s238  238: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s238) [Py.Processing] --- ### s237  237: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s237) [Py.Processing] --- ### s236  236: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s236) [Py.Processing] --- ### s235  235: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s235) [Py.Processing] --- ### s234  234: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s234) [Py.Processing] --- ### s233  233: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s232) [Py.Processing] --- ### s232  232: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s232) [Py.Processing] --- ### s231  231: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s231) [Py.Processing] --- ### s230  230: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s230) [Py.Processing] --- ### s229  229: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s229) [Py.Processing] --- ### s228  228: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s228) [Py.Processing] --- ### s227  227: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s227) [Py.Processing] --- ### s226  226: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s226) [Py.Processing] --- ### s225  225: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s225) [Py.Processing] Now (hollow) boxes, and a cutting-plane controlled by the keyboard. --- ### s224  224: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s225) [Py.Processing] Tubes! Solid boxes hollowed in one of three directions. --- ### s223  223: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s223) [Py.Processing] --- ### s222  222: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s222) [Py.Processing] --- ### s221  221: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s221) [Py.Processing] --- ### s220  220: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s220) [Py.Processing] --- ### s219  219: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s219) [Py.Processing] --- ### s218  218: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s218) [Py.Processing] --- ### s217  217: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s217) [Py.Processing] --- ### s216  216: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s216) [Py.Processing] --- ### s215  215: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s215) [Py.Processing] --- ### s214  214: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s214) [Py.Processing] --- ### s213  213: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s213) [Py.Processing] --- ### s212  212: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s211) [Py.Processing] --- ### s211  211: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s211) [Py.Processing] --- ### s210  210: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s210) [Py.Processing] --- ### s209  209: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s209) [Py.Processing] --- ### s208  208: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s208) [Py.Processing] --- ### s207  207: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s207) [Py.Processing] --- ### s206  206: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s206) [Py.Processing] --- ### s204  205b: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s205b) [Py.Processing] Two layer version. Added `rotateX(rot)`. --- ### s204  205: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s205) [Py.Processing] One layer version, I'll use it to test some ideas another day. --- ### s204  204: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s204) [Py.Processing] At each cycle, it starts on the next node. --- ### s203  203: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s203) [Py.Processing] A big one, animated the maze generation process. --- ### s202  202: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s202) [Py.Processing] A bigger one --- ### s201  201: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s201) [Py.Processing] --- ### s200  200: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s200) [Py.Processing] --- ### s199  199: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s199) [Py.Processing] --- ### s198  198: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s198) [Py.Processing] --- ### s197  197: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s197) [Py.Processing] --- ### s196  196: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s196) [Py.Processing] --- ### s195  195: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s195) [Py.Processing] --- ### s194  194: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s194) [Py.Processing] --- ### s193  193: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s193) [Py.Processing] --- ### s192  192: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s192) [Py.Processing] --- ### s191  191: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s191) [Py.Processing] --- ### s190  190: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s190) [Py.Processing] --- ### s189  189: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s189) [Py.Processing] --- ### s188  188: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s188) [Py.Processing] --- ### s187  187: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s187) [Py.Processing] --- ### s186gif  ### s186  186: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s186) [Py.Processing] --- ### s185  185: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s185) [[Processing Java](https://www.processing.org)] --- ### s184  184: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s184) [[Processing Java](https://www.processing.org)] --- ### s183  183: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s183) [[Processing Java](https://www.processing.org)] --- ### s182  182: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s182) [[Processing Java](https://www.processing.org)] --- ### s181  181: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s181) [[Processing Java](https://www.processing.org)] --- ### s180  ``` def set_nbs(self): self.nbs, self.unvisited_nbs = [], [] for node in Node.nodes: if node != self and dist(node.x, node.y, node.z, self.x, self.y, self.z) <= Node.spacing * 1.1: self.nbs.append(node) self.unvisited_nbs.append(node) ``` ### s180b  ``` if node != self and dist(node.x, node.y, node.z, self.x, self.y, self.z) <= Node.spacing * 1.5: ``` 180: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s180) [Py.Processing] --- ### s179COLOR  ### s179PB  179: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s179) [Py.Processing] --- ### s178  178: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s178) [Py.Processing] --- ### s177  177: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s177) [Py.Processing] --- ### s176  176: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s176) [Py.Processing] --- ### s175  175: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s175) [Py.Processing] --- ### s174  174: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s174) [Py.Processing] --- ### s173  173: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s173) [Py.Processing] --- ### s172  172: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s172) [Py.Processing] --- ### s171  171:[Java code](https://github.com/villares/sketch-a-day/tree/master/2018/s171)[[Processing Java](https://processing.org)] & [Python code](https://github.com/villares/sketch-a-day/tree/master/2018/s171_py) [Py.Processing] --- ### s170  170:[code](https://github.com/villares/sketch-a-day/tree/master/2018/s170) [Py.Processing] --- ### s169  169:[code](https://github.com/villares/sketch-a-day/tree/master/2018/s169) [Py.Processing] Now same Z lines can form floors. --- ### s168  168:[code](https://github.com/villares/sketch-a-day/tree/master/2018/s168) [Py.Processing] No random movement in Z so no line connections between different (Z) levels. Comparing lines with different Zs to create translucent 'walls'. --- ### s167  167: [Java code](https://github.com/villares/sketch-a-day/tree/master/2018/s167) [[Processing Java](https://processing.org)] & [Python code](https://github.com/villares/sketch-a-day/tree/master/2018/s167_py) [Py.Processing] --- ### s166  166: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s166) [Py.Processing] --- ### s165  165: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s165) [Py.Processing] --- ### s164  164: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s164) [Py.Processing] --- ### s163  163: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s163) [Py.Processing] (#152 revisited in 3D :) --- ### s162  162: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s161) [[Processing Java](https://www.processing.org)] Perlin Noise "walker" + ? --- ### s161  161: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s161) [[Processing Java](https://www.processing.org)] Perlin Noise "walker" + eye --- ### s160  160: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s160) [[Processing Java](https://www.processing.org)] Interactive genetic algorithm --- ### s159  159: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s158) [[Processing Java](https://www.processing.org)] --- ### s158  158: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s158) [Py.Processing] --- ### s157  157: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s156) [Py.Processing] --- ### s156  156: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s156) [Py.Processing] --- ### s155  155: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s155) [Py.Processing] --- ### s154  154: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s154) [Py.Processing] --- ### s153  153: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s153) [Py.Processing] --- ### s152  152: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s152) [Py.Processing] --- ### s151  151: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s151) [Py.Processing] --- ### s150  150: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s150) [Py.Processing] --- ### s149b  149b: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s149b) [Py.Processing] --- ### s149  149: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s149) [Py.Processing] --- ### s148  148: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s148) [Py.Processing] --- ### s147  147: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s147) [Py.Processing] --- ### s146  146: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s146) [Py.Processing] --- ### s145  145: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s145) [Py.Processing] --- ### s144  144: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s144) [Py.Processing] --- ### s143  143: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s143) [Py.Processing] --- ### s140 + s141 + s142  140 + 141 + 142 [code](https://github.com/villares/sketch-a-day/tree/master/2018/s140_s141_s142) [Py.Processing] --- ### s142  142: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s142) [Py.Processing] --- ### s141  141: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s141) [Py.Processing] --- ### s140  s140: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s140) [Py.Processing] --- ### s139  s139: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s139) [Py.Processing] --- ### s138  138: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s138) [Py.Processing] Revisiting ideas of recursion from s071 Heavy animated GIF: [s138.gif](2018/s138/s138.gif) --- ### s137  s137: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s137) [Py.Processing] PDF: [diagram.pdf](https://github.com/villares/sketch-a-day/blob/main/2018/s137/diagram.pdf) --- ### s136  136: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s136) [Py.Processing] --- ### s135  135: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s135) [Py.Processing] --- ### s134  134: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s134) [Py.Processing] --- ### s133  133: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s133) [Py.Processing] --- ### s132  132: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s132) [Py.Processing] --- ### s131  131: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s131) [Py.Processing] --- ### s130  130: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s130) [Py.Processing] --- ### s129  129: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s129) [Py.Processing] Maybe I fixed it, I guess, not sure… --- ### s128  128: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s128) [Py.Processing] BROKEN! --- ### s127  127: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s127) [Py.Processing] --- ### s126  126: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s126) [Py.Processing] --- ### s125  125: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s125) [Py.Processing] --- ### s124  124: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s124) [Py.Processing] --- ### s123  123: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s123) [Py.Processing] --- ### s122  122: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s122) [Py.Processing] --- ### s121  121: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s121) [Py.Processing] --- ### s120  120: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s120) [Py.Processing] To be brutally honest, I had no idea that reversing the second random grid would bring me this result! --- ### s119  119: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s119) [Py.Processing] --- ### s118  118: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s118) [Py.Processing] --- ### s117  117: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s117) [Py.Processing] --- ### s116  116: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s116) [Py.Processing] --- ### s115  115: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s115) [Py.Processing] --- ### s114  114: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s114) [Py.Processing] --- ### s113  113: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s113) [Py.Processing] --- ### s112  112: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s112) [Py.Processing] Hexagons! ```python def hexagon(x, y, r): with pushMatrix(): translate(x, y) beginShape() for i in range(6): vx = cos(i * TWO_PI /6) * r vy = sin(i * TWO_PI /6) * r vertex(vx, vy) endShape(CLOSE) ``` --- ### s111  111: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s111) [Py.Processing] Now I 'fixed' the rotation with propper pushMatrix() and translate() ```python with pushMatrix(): translate(x0,y0) rotate(fs0) stroke(st0) equilateral(0, 0, fs0) with pushMatrix(): translate(x1,y1) rotate(fs1) stroke(st1) equilateral(0, 0, fs1) with pushMatrix(): translate(x2,y2) rotate(fs2) stroke(st2) equilateral(0, 0, fs2) ``` --- ### s110  110: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s110) [Py.Processing] Just added some rotations to mess things up. It's "wrong", but I like it! ```python rotate(fs0) stroke(st0) equilateral(x0, y0, fs0) stroke(st1) rotate(fs1) equilateral(x1, y1, fs1) stroke(st2) rotate(fs2) equilateral(x2, y2, fs2) ``` --- ### s109  109: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s109) [Py.Processing] ```python colorMode(HSB) ... C = color(map(final_size,-63 , 63, 0, 255), 255, 255) ``` --- ### s108  108: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s108) [Py.Processing] ```python colorMode(HSB) ... C = color(map(abs(final_size), 0, 63, 0, 255), 255, 255) ``` --- ### s107  107: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s107) [Py.Processing] Inverting odd rows ```python v = spac_size * 1.5 h = spac_size * sqrt(3) for ix in range(-1, grid_elem + 1): for iy in range(-1, grid_elem + 1): if iy % 2: x = ix * h + h / 4 es = elem_size else: x = ix * h - h / 4 es = -elem_size y = iy * v for i in range(3): final_size = es * (i + 0.5) C = map(final_size, 0, 63, 0, 255) oX = rand_posi * random(-1, 1) oY = rand_posi * random(-1, 1) ELEMENTS.append((C, x + oX, y + oY, final_size)) ``` --- ### s106  106: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s106) [Py.Processing] Lazy triangles ```python def equilateral(x, y, r): with pushMatrix(): translate(x, y) triangle(-0.866 * r, -0.5 * r, 0.866 * r, -0.5 * r, 0.000 * r, 1.0 * r) # I know... 0 * r and 1 * r... ``` --- ### s105  105: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s105) [Py.Processing] Layers now have different "base" sizes (0.5, 1.5 and 2.5 times base size). Removed lines for now. --- ### s104  104: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s104) [Py.Processing] Back to stroke variation --- ### s103  103: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s103) [Py.Processing] Layers but only black strokes ```python spac_size = width / (grid_elem + 1) v = spac_size * 1.5 h = spac_size * sqrt(3) for ix in range(-1, grid_elem + 1): for iy in range(-1, grid_elem + 1): if iy % 2: x = ix * h + h / 4 else: x = ix * h - h / 4 y = iy * v for i in range(3): final_size = elem_size + rand_size * random(-1, 1) ELEMENTS.append((x, y, final_size)) # three layers of elements for i in range(3): offsetX = rand_posi * random(-1, 1) offsetY = rand_posi * random(-1, 1) for elem in ELEMENTS[i::3]: x, y, es = elem ellipse(x + offsetX, y + offsetY, es, es) for _ in range(grid_elem): x1, y1, es1 = rnd_choice(ELEMENTS) x2, y2, es2 = rnd_choice(ELEMENTS) line(x1, y1, x2, y2) ``` --- ### s102  102: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s102) [Py.Processing] ```python spac_size = width / (grid_elem + 1) v = spac_size * 1.5 h = spac_size * sqrt(3) for ix in range(-1, grid_elem + 1): for iy in range(-1, grid_elem + 1): if iy % 2: x = ix * h + h / 4 else: x = ix * h - h / 4 y = iy * v final_size = elem_size + rand_size * random(-1, 1) offsetX = rand_posi * random(-1, 1) offsetY = rand_posi * random(-1, 1) C = map(final_size, 0, 63, 0, 255) ELEMENTS.append((C, x + offsetX, y + offsetY, final_size )) for elem in ELEMENTS: stroke1, x1, y1, es1 = elem ellipse(x1, y1, es1, es1) for _ in range(grid_elem): stroke1, x1, y1, es1 = rnd_choice(ELEMENTS) stroke2, x2, y2, es2 = rnd_choice(ELEMENTS) stroke(stroke2) line(x1, y1, x2, y2) ``` --- ### s101  101: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s101) [Py.Processing] ```python for _ in range(grid_elem * 2): stroke1, x1, y1, es1 = rnd_choice(ELEMENTS) stroke(stroke1) ellipse(x1, y1, es1, es1) stroke2, x2, y2, es2 = rnd_choice(ELEMENTS) stroke(stroke2) # line ellipse(x2, y2, es2, es2) line(x1, y1, x2, y2) ``` --- ### s100  100: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s100) [Py.Processing] ```python spac_size = int(width / (grid_elem + 1)) for _ in range(2): for x in range(spac_size / 2, width, spac_size): for y in range(spac_size / 2, width, spac_size): final_size = elem_size + rand_size * random(-1, 1) offsetX = rand_posi * random(-1, 1) offsetY = rand_posi * random(-1, 1) C = map(final_size, 0, 63, 0, 255) ELEMENTS.append((C, x + offsetX, y + offsetY, final_size )) for stroke_c, x, y, el_size in ELEMENTS: stroke(stroke_c) ellipse(x, y, el_size, el_size) for _ in range(grid_elem): stroke_c, x1, y1, _ = rnd_choice(ELEMENTS) ________, x2, y2, _ = rnd_choice(ELEMENTS) stroke(stroke_c) line(x1, y1, x2, y2) ``` --- ### s099  099: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s099) [Py.Processing] ```python spac_size = int(width / (grid_elem + 1)) for x in range(spac_size / 2, width, spac_size): for y in range(spac_size / 2, width, spac_size): final_size = elem_size + rand_size * random(-1, 1) offsetX = rand_posi * random(-1, 1) offsetY = rand_posi * random(-1, 1) GREY = map(final_size, 0, 63, 0, 255) stroke(GREY) ellipse(x + offsetX, # desenha um círculo y + offsetY, final_size, final_size) ``` --- ### s098  098: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s098) [Py.Processing] ```python spac_size = int(width / (grid_elem + 1)) for x in range(spac_size / 2, width, spac_size): for y in range(spac_size / 2, width, spac_size): square_size = elem_size + rand_size * random(-1, 1) offsetX = rand_posi * random(-1, 1) offsetY = rand_posi * random(-1, 1) HUE = map(offsetX + offsetY, -128, 127, 0, 255) SAT = map(square_size, 0, 63, 0, 255) fill(HUE, SAT, 255, 200) rect(x + offsetX, # desenha um quadrado y + offsetY, square_size, square_size) ``` --- ### s097  097: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s097) [Py.Processing] ```python spac_size = int(width / (grid_elem + 1)) for x in range(spac_size / 2, width, spac_size): for y in range(spac_size / 2, width, spac_size): # sorteia um tamanho (se o rand_size > 0) square_size = elem_size + rand_size * random(-1, 1) rect(x + rand_posi * random(-1, 1), # desenha um quadrado y + rand_posi * random(-1, 1), square_size, square_size) ``` --- ### s096  096: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s096) [Py.Processing] More 'Inputs' helper changes (WASD & arrows for sliders). New GIF export helper actually works now! More lone nodes and edge creation changes... --- ### s095  095: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s095) [Py.Processing] Complete rewrite of the 'Inputs' helper ``` # Ask user for Arduino port, uses slider if none is selected, use on `setup()` global input input = Input(Arduino) # on `draw()`read analog pins 1, 2, 3, 4 or sliders pot1 = input.analog(1) pot2 = input.analog(2) pot3 = input.analog(3) pot4 = input.analog(4) tilt = input.digital(13) # also triggered by [space bar] # When on sliders, this draws them and checks mouse dragging / keystrokes input.update() ``` --- ### s094  094: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s094) [Py.Processing] Connection 'rate' can be less than 1, prevents less than 2 nodes --- ### s093  093: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s093) [Py.Processing] Nodes without connection are now removed ``` COM_ARESTAS = set() # para guardar pontos com aresta for aresta in Aresta.ARESTAS: if (aresta.p1 not in Ponto.SET) or (aresta.p2 not in Ponto.SET)\ or (aresta.p1 is aresta.p2): # arestas degeneradas Aresta.ARESTAS.remove(aresta) # remove a aresta else: # senão, tudo OK! aresta.desenha() # desenha a linha aresta.puxa_empurra(TAM_ARESTA) # altera a velocidade dos pontos # Adiciona ao conjunto de pontos com aresta COM_ARESTAS.update([aresta.p1, aresta.p2]) Ponto.SET = COM_ARESTAS # isto remove pontos sem nenhuma aresta ``` --- ### s092  092: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s092) [Py.Processing] Dynamic change of connection rate ``` if NUM_PONTOS * NUM_CONNECT > len(Aresta.ARESTAS): rnd_choice(list(Ponto.SET)).cria_arestas() elif NUM_PONTOS * NUM_CONNECT < len(Aresta.ARESTAS): Aresta.ARESTAS.remove(rnd_choice(Aresta.ARESTAS)) ``` --- ### s091  091: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s091) [Py.Processing] Major rethink of my Arduino/Firmata code. I can now choose on start between sliders and potentiometers. --- ### s090  090: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s090) [Py.Processing] Opaque strokes, no fill, randomized colours by column. --- ### s089  089: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s089) [Py.Processing] X stroke now is translucent and grid elements have random colour inside grids. --- ### s088  088: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s088) [Py.Processing] Filled rects, ellipses and losangles (without sktroke) and Xs --- ### s087  087: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s087) [Py.Processing] No fill again, less colours. Variable/random number of elements per grid. --- ### s086  086: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s086) [Py.Processing] Translucent fill & some stroke weight --- ### s085  085: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s085) [Py.Processing] Some colour, and some crazy meddling with the Slider class... --- ### s084  084: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s084) [Py.Processing] Make the grid's position/origin align based on the spacing size (super- grid) --- ### s083  083: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s083) [Py.Processing] Xs and rotated rectangles --- ### s082  082: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s082) [Py.Processing] Squares and ellipses --- ### s081  081: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s081) [Py.Processing] Let's try some grids --- ### s080  080: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s080) [Py.Processing] More arrows (black and white alternate by generation) --- ### s079  079: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s079) [Py.Processing] Arrows (right black, left white) --- ### s078  078: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s078) [Py.Processing] Color --- ### s077  077: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s077) [Py.Processing] Random branch reduction is now less simmetric, and random seed changes on depth change. --- ### s076  076: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s076) [Py.Processing] Stroke weight and some transparency --- ### s075  075: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s075) [Py.Processing] ... and slightly different parameters and recursion level control instead of lenght --- ### s074  074: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s074) [Py.Processing] Adaptomg Shiffmans recusive Tree, with sliders or Pots... --- ### s073  073: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s073) [Py.Processing] The code remains ugly :( --- ### s072  072: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s072) [Py.Processing] Let's mix some arrows? --- ### s071  071: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s071) [Py.Processing] Thicker and with a saturation slider (no more scale offset) --- ### s070  070: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s070) [Py.Processing] Thicker and with a saturation slider (no more scale offset) --- ### s069  069: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s069) [Py.Processing] Added rotation. --- ### s068  068: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s068) [Py.Processing] ... and with sliders (by [Peter Farell](https://github.com/hackingmath/python-sliders)) --- ### s067  067: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s067) [Py.Processing] Something else. --- ### s066  066: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s066) [Py.Processing] Arrow grid networks can be sized and placed... --- ### s065  065: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s065) [Py.Processing] Arrow grid networks are now objects... --- ### s064  064: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s064) [Py.Processing] Revisiting yet an older graph, adding arrows... --- ### s063  063: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s063) [Py.Processing] Revisiting an older graph adding arrows... --- ### s062  062: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s062) [Py.Processing] `+` and `-` keys control the distange/range of targes in 0.5 * SPACING increments --- ### s061  061: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s061) [Py.Processing] Sometimes we have multiple arrows now out of each node...But I reduced the range (distance) they can point to. --- ### s060  060: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s060) [Py.Processing] Complete Object Oriented refactor... --- ### s059  059: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s059) [Py.Processing] Back to a list of points, now every point of the grid has a node. Limited points_to random each. --- ### s058  058: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s058) [Py.Processing] Now with some deepcopy of changeable imutable namedtuples (containing mutable lists), and some lerp() --- ### s057  057: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s057) [Py.Processing] Revisited 54 and now I'm re-selecting random points_to nodes... --- ### s056  056: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s056) [Py.Processing] Arrow grid moving in HSB colour space --- ### s055  055: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s055) [Py.Processing] Grid revisited --- ### s054  054: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s054) [Py.Processing] New arrows! With a "Tail" parameter... --- ### s053  053: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s053) [Py.Processing] Big invisible refactor (no more point-grid to select from, now a list of possible X and Y positons to choose). On the visible side, fewer elements, and non-pointing elements redrawn in red on top. --- ### s052  052: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s052) [Py.Processing] White lines first, black arrows on top. --- ### s051  051: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s051) [Py.Processing] Points now on a grid. --- ### s050  050: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s050) [Py.Processing] Arrows now... --- ### s049  049: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s049) [Py.Processing] Yet more graphs --- ### s048  048: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s048) [Py.Processing] Yet more graphs --- ### s047  047: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s047) [Py.Processing] Yet more graphs --- ### s046  046: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s046) [Py.Processing] Yet more graphs --- ### s045  045: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s045) [Py.Processing] Yet more graphs --- ### s044  044: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s044) [Py.Processing] More graphs --- ### s043  043: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s043) [Py.Processing] More graphs --- ### s042  042: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s042) [Py.Processing] Yet another interactive recursive thingy, the image on the right is shown with a key pressed --- ### s041  041: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s041) [Py.Processing] Yet another interactive recursive thingy, the image on the right is shown with a key pressed --- ### sketch_180209a   040: [sketch_180209a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180209a) [Py.Processing] More recursion --- ### sketch_180208  039: [sketch_180208e](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180208e) [Py.Processing] Manoloide inspired recursion --- ### 038sketch_180208d  038: [sketch_180208d](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180208d) [Py.Processing] Saskia Freeke inspired grid --- ### sketch_180206a  037: [sketch_180206b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180206a) [Py.Processing] "Carnahacking is near!" --- ### sketch_180205b  036: [sketch_180205b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180205b) [Py.Processing] Added some mouse disturbance --- ### sketch_180204b  035: [sketch_180204b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180204b) [Py.Processing] Preparing for "Carnahacking" --- ### sketch_180203c  034: [sketch_180203c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180203c) [Py.Processing] Like 33 but again with "w squared" circles --- ### sketch_180202c  033: [sketch_180202c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180202c) [Py.Processing] Like 32 but again with lines --- ### sketch_180201c  032: [sketch_180201c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180201c) [Py.Processing] Like 29 but with moving points after the gesture is done --- ### sketch_180131c  031: [sketch_180130c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180131c) [Py.Processing] Like 29 but with moving points after the gesture is done --- ### sketch_180130c  030: [sketch_180130c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180130c) [Py.Processing] Like 29 but with 3D and PeasyCam orbit... --- ### sketch_180129c  029: [sketch_180129c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180129c) [Py.Processing] Like 27 but with circles --- ### sketch_180128c  028: [sketch_180128c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180128c) [Py.Processing] Like 27 but on grayscale --- ### sketch_180127c  027: [sketch_180127c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180127c) [Py.Processing][YouTube](https://www.youtube.com/watch?v=A-rqkru79Dw) Saving a list of points to animate colour... Mouse speed changes recorded colour & strokeWeight() --- ### sketch_180126c  026: [sketch_180126c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180126c) [Py.Processing] Mouse speed changing colour & strokeWeight() --- ### sketch_180125c  025c: [sketch_180125b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180125c) [Py.Processing] Mouse speed changing strokeWeight() --- ### sketch_180124b  024b: [sketch_180124b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180124b) [Py.Processing] Maybe tomorrow I'll try adding some sliders & movement to this graph ? [nah...] --- ### sketch_180123b  023b: [sketch_180123b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180123b) [Py.Processing] Farrel's Sliders adding random displacement --- ### sketch_180122 022: missed :( --- ### sketch_180121b  021b: [sketch_180121b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180121b) [Py.Processing] Playing with Peter "[Hacking Math Class](http://twitter.com/hackingmath)" Farrel's Sliders! --- ### sketch_180120  020b: [sketch_180120b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180120b) [Py.Processing] I was stuck on my DBN conversion sketch 20a, so this HSB shape play is 20b...  020a: [sketch_180120a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180120a) [Py.Processing] Refactored the code generation, removed most of the repeated vertices... C D E G O R not nice yet… --- ### sketch_180119a  019: [sketch_180119a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180119a) [Py.Processing] DBN Letters: Now working on a new approach, generating vertex/Shape code, not there yet... --- ### sketch_180118a  018: [sketch_180118a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180118a) [Py.Processing] DBN Color font? Nah… --- ### sketch_180117a  017: [sketch_180117a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180117a) [Py.Processing] John Maeda's `dbnletters.dbn` code from Design by Numbers on Processing Python Mode --- ### sketch_180116a  016: [16a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180116a) [Py.Processing] Converting some Typography code from Design by Numbers, almost there! --- ### sketch_180115a  015: [sketch_180115a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180115a) [Py.Processing] Converting some Typography code from Design by Numbers, first trials --- ### sketch_180114a  014: [sketch_180114a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180114a) [Py.Processing] Another 3D Graph --- ### s180113a  013: [s180113](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180113a) [Py.Processing] 3D Graph --- ### s180112  012: [s180112](https://github.com/villares/sketch-a-day/tree/master/2018/s180112) [Py.Processing] Another Graph Take --- ### s180111  011: [s180111](https://github.com/villares/sketch-a-day/tree/master/2018/s180111) [Py.Processing] A Graph Take --- ### s180110  010: [s180110](https://github.com/villares/sketch-a-day/tree/master/2018/s180110) [Py.Processing] More Manoloide inspired balls [PNG](2018/s180110/s180110.png) (derived from a [sketch](https://gist.github.com/manoloide/16ea9e1d68c6ba1700fcb008fd38aab0) by [Manuel Gamboa Naon](http://manoloide.com)) --- ### s180109  009: [s180109](https://github.com/villares/sketch-a-day/tree/master/2018/s180109) [Py.Processing] Balls for Manoloide [GIF](2018/s180109/s180109.gif) (derived from a [sketch](https://gist.github.com/manoloide/16ea9e1d68c6ba1700fcb008fd38aab0) by [Manuel Gamboa Naon](http://manoloide.com)) --- ### s180108  008: [s180108](https://github.com/villares/sketch-a-day/tree/master/2018/s180108) [Py.Processing] Grid of Platonic Solids in Python Mode [GIF](2018/s180108/s180108.gif) --- ### s180107  007: [s180107](https://github.com/villares/sketch-a-day/tree/master/2018/s180107) [[Processing Java](https://www.processing.org)] Another grid of Platonic Solids in Java Mode [GIF](2018/s180107/s180107.gif) --- ### s180106  006: [s180106](https://github.com/villares/sketch-a-day/tree/master/2018/s180106) [[Processing Java](https://www.processing.org)] Grid of Platonic Solids in Java Mode [GIF](2018/s180106/s180106.gif) --- ### s180105  005: [s180105](https://github.com/villares/sketch-a-day/tree/master/2018/s180105) [[p5js](https://www.p5js.org)] Line Tetrahedrons in p5*js - [interactive](https://abav.lugaralgum.com/sketch-a-day/2018/s180105/) --- ### s180104  004: [s180104](https://github.com/villares/sketch-a-day/tree/master/2018/s180104) [[Processing Java](https://www.processing.org)] Tetrahedrons in Java Mode- [GIF](https://github.com/villares/sketch-a-day/tree/master/2018/s180104/s180104.gif) --- ### s180103  003: [s180103](https://github.com/villares/sketch-a-day/tree/main/2018/s180103) [Py.Processing] Tetrahedrons Python Mode- [GIF](https://github.com/villares/sketch-a-day/tree/master/2018/s180103/s180103.gif) --- ### s180102  002: [s180102](https://github.com/villares/sketch-a-day/tree/main/2018/s180102) [Py.Processing] Many Stars 3D - [YouTube](https://www.youtube.com/watch?v=QmsthW60iBY) --- ### s180101  001: [s180101](https://github.com/villares/sketch-a-day/tree/main/2018/s180101)[Py.Processing] Many Stars - [YouTube](https://www.youtube.com/watch?v=gKWBfghDV_w) (inspired by my own [p5js Xmas & New Year card code](https://github.com/villares/p5js-play/tree/master/newYearStars)) --- [2026](README.md) \| [2025](2025.md) \| [2024](2024.md) \| [2023](2023.md) \| [2022](2022.md) \| [2021](2021.md) \| [2020](2020.md) \| [2019](2019.md) \| 2018 ---
The sketch-a-day project, images and code repository, by Alexandre B A Villares are licensed under Attribution-NonCommercial-NoDerivatives 4.0 International , except if marked/attributed otherwise in a file or code section. Please contact for licensing questions.