# [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 ![s367](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s367/s367.gif) 367: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s367) [Py.Processing] --- ### s366 ![s366](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s366/s366.gif) 366: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s366) [Py.Processing] --- ### s365 ![s365](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s365/s365.gif) 365: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s365) [Py.Processing] --- ### s364 ![s364](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s364/s364.gif) 364: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s364) [Py.Processing] --- ### s363 ![s363](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s363/s363.gif) 363: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s363) [Py.Processing] --- ### s362 ![s362](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s362/s362.gif) 362: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s362) [Py.Processing] --- ### s361 ![s361](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s361/s361.png) 361: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s361) [Py.Processing] --- ### s360 ![s360](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s360/s360.gif) 360: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s360) [Py.Processing] --- ### s359 ![s359](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s359/s359.png) 359: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s359) [Py.Processing] --- ### s358 ![s358](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s358/s358.png) 358: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s358) [Py.Processing] ... in preparation for something... --- ### s357 ![s357](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s357/s357.png) 357: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s357) [Py.Processing] Back to ideas from 322... --- ### s356 ![s356](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s356/s356.png) 356: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s356) [Py.Processing] --- ### s355 ![s355](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s355/s355.gif) 355: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s35) [Py.Processing] --- ### s354 ![s354](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s354/s354.png) 354: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s354) [Py.Processing] --- ### s353 ![s353](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s353/s353.png) 353: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s353) [Py.Processing] --- ### s352 ![s352](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s352/s352.png) 352: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s352) [Py.Processing] --- ### s351 ![s351](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s351/s351.png) 351: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s351) [Py.Processing] --- ### s350 ![s350](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s350/s350.png) 350: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s350) [Py.Processing] --- ### s349 ![s349](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s349/s349.png) 349: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s349) [Py.Processing] --- ### s348 ![s348](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s348/s348.png) 348: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s348) [Py.Processing] --- ### s347 ![s347](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s347/s347.png) 347: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s348) [Py.Processing] --- ### s346 ![s346](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s346/s346.png) 346: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s344) [Py.Processing] --- ### s345 ![s345](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s345/s345_15510.png) 345: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s345) [Py.Processing] --- ### s344 ![s344](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s344/s344.gif) 344: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s344) [Py.Processing] --- ### s343 ![s343](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s343/s343.gif) 343: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s343) [Py.Processing] --- ### s342 ![s342](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s342/s342.gif) 342: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s342) [Py.Processing] --- ### s341 ![s341](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s341/s341.gif) 341: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s341) [Py.Processing] --- ### s340 ![s340](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s340/s340.gif) 340: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s340) [Py.Processing] --- ### s339 ![s339](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s339/s339.gif) 339: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s339) [Py.Processing] --- ### s338 ![s338](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s338/11993.png) 338: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s338) [Py.Processing] --- ### s337 ![s337](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s337/337b.png) 337: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s337) [Py.Processing] --- ### s336 ![s336](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s336/s336.png) 336: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s336) [Py.Processing] --- ### s335 ![s335](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s335/s335.png) 335: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s335) [Py.Processing] --- ### s334 ![s334](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s334/s334.png) 334: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s334) [Py.Processing] --- ### s333 ![s333](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s333/s333.png) 333: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s333) [Py.Processing] --- ### s332 ![s332](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s332/s332.png) 332: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s332) [Py.Processing] --- ### s331 ![s331](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s331/s331.png) 331: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s331) [Py.Processing] --- ### s330 ![s330](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s330/s330.png) 330: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s330) [Py.Processing] --- ### s329 ![s329](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s329/s329.gif) 329: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s329) [Py.Processing] --- ### s328 ![s328](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s328/s328.png) 328: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s328) [Py.Processing] --- ### s327 ![s327](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s327/s327.png) 327: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s327) [Py.Processing] --- ### s326 ![s326](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s326/s326.png) 326: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s326) [Py.Processing] --- ### s325 ![s325](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s325/s325.png) 325: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s325) [Py.Processing] --- ### s324 ![s324](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s324/s324.png) 324: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s324) [Py.Processing] --- ### s323 ![s323](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s323/s323.gif) 323: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s323) [Py.Processing] --- ### s322 ![s322](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s322/s322.png) 322: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s322) [Py.Processing] --- ### s321 ![s321](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s321/s321.png) 321: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s321) [Py.Processing] --- ### s320 ![s320](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s320/s320.png) 320: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s320) [Py.Processing] --- ### s319 ![s319](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s319/s219.jpg) 319: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s319) [Py.Processing] --- ### s318 ![s318](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s318/s318.gif) 318: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s318) [Py.Processing] --- ### s317 ![s317](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s317/s317.gif) 317: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s317) [Py.Processing] --- ### s316 ![s316](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s316/s316.gif) 316: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s316) [Py.Processing] A 3D take on 314 --- ### s315 ![s315](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s315/s315.png) 315: [GIF](2018/s315/s315.gif) [code](https://github.com/villares/sketch-a-day/tree/master/2018/s315) [Py.Processing] Horizontaly connected 314 --- ### s314 ![s314](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s314/s314.png) 314: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s314) [Py.Processing] Isolating elements from 313 --- ### s313 ![s313](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s313/s313.png) 313: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s313) [Py.Processing] --- ### s312 ![s312](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s312/s312s.gif) 312: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s312) [Py.Processing] --- ### s311 ![s311](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s311/s311.gif) 311: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s311) [Py.Processing] --- ### s310 ![s310](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s310/s310.gif) 310: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s310) [Py.Processing] --- ### s309 ![s309](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s309/s309.png) 309: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s309) [Py.Processing] --- ### s308 ![s308](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s308/s308.gif) 308: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s308) [Py.Processing] --- ### s307 ![s307](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s307/s307.png) 307: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s307) [Py.Processing] --- ### s306 ![s306](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s306/s306.png) 306: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s306) [Py.Processing] --- ### s305 ![s305](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s305/s305.png) 305: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s305) [Py.Processing] --- ### s304 ![s304](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s304/s304.gif) 304: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s304) [Py.Processing] --- ### s303 ![s303](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s303/s303.png) 303: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s303) [Py.Processing] --- ### s302 ![s302](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s302/s302.png) 302: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s302) [Py.Processing] Hatches parallel to opposed sides. --- ### s301 ![s301](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s301/s301.png) 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 ![s300](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s300/s300.png) 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 ![s299](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s299/s299.png) 299: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s299) [Py.Processing] Inclined hatches --- ### s298 ![s298](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s298/s298.png) 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 ![s297](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s297/s297.gif) 297: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s297) [Py.Processing] Changed my internal point grid to "pixels" --- ### s296 ![s296](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s296/s296.gif) 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 ![s295](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s295/s295.gif) 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 ![s294](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s294/294.gif) 294: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s294) [Py.Processing] Playing with my code for lines intersecting polygons. --- ### s293 ![s293](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s293/s293.gif) 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 ![s292](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s292/s292.gif) 292: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s292) [Py.Processing] --- ### s291 ![s291](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s291/s291.gif) 291: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s291) [Py.Processing] --- ### s290 ![s290](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s290/s290.gif) 290: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s290) [Py.Processing] --- ### s289 ![s289](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s289/s289.gif) 289: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s289) [Py.Processing] True arcs and lines --- ### s288 ![s288](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s288/s288.gif) 288: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s288) [Py.Processing] Ellipse arcs --- ### s287 ![s287](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s287/s287.gif) 287: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s287) [Py.Processing] --- ### s286 ![s286](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s286/s286.gif) 286: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s286) [Py.Processing] --- ### s285 ![s285](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s285/s285.gif) 285: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s285) [Py.Processing] --- ### s284 ![s284](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s284/s284.png) 284: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s284) [Py.Processing] --- ### s283 ![s283](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s283/s283.gif) 283: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s283) [Py.Processing] --- ### s282 ![s282](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s282/s282.gif) 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 ![s281](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s281/s281.gif) 281: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s281) [Py.Processing] --- ### s280 ![s280](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s280/s280.png) 280: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s280) [Py.Processing] --- ### s279 ![s279](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s279/s279.gif) 279: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s279) [Py.Processing] --- ### s278 ![s278](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s278/s278.png) 278: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s278) [Py.Processing] --- ### s277 ![s277](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s277/s277.png) 277: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s277) [Py.Processing] --- ### s276 ![s276](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s276/s276.png) 276: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s276) [Py.Processing] --- ### s275 ![s275](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s275/s275.png) 275: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s275) [Py.Processing] --- ### s274 ![s274](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s274/s274.png) 274: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s274) [Py.Processing] --- ### s273 ![s273](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s273/s273.png) 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 ![s272](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s272/s272.png) 272: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s272) [Py.Processing] --- ### s271 ![s271](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s271/s271.png) 271: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s271) [Py.Processing] --- ### s270 ![s270](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s270/s270.png) 270: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s270) [Py.Processing] --- ### s269 ![s269](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s269/s269.png) 269: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s269) [Py.Processing] --- ### s268 ![s268](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s268/s268.png) 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 ![s267](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s267/s267.png) 267: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s267) [Py.Processing] --- ### s266 ![s266](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s266/s266.png) 266: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s266) [Py.Processing] --- ### s265 ![s265](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s265/s265.png) 265: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s265) [Py.Processing] --- ### s264 ![s264](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s264/s264.png) 264: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s264) [Py.Processing] --- ### s263 ![s263](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s263/s263.png) 263: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s263) [Py.Processing] --- ### s262 ![s262](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s262/s262.png) 262: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s262) [Py.Processing] --- ### s261 ![s261](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s261/s261.png) 261: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s261) [Py.Processing] --- ### s260 ![s260](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s260/s260.png) 260: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s260) [Py.Processing] --- ### s259 ![s259](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s259/s259.png) 259: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s259) [Py.Processing] --- ### s258 ![s258](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s258/s258.png) 258: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s258) [Py.Processing] --- ### s257 ![s257](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s257/s257.png) 257: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s257) [Py.Processing] --- ### s256 ![s256](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s256/s256.png) 256: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s256) [Py.Processing] --- ### s254 ![s254](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s254/s254.png) 254: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s254) [Py.Processing] --- ### s253 ![s253](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s253/s253.png) 253: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s253) [Py.Processing] --- ### s252 ![s252](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s252/s252.png) 252: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s252) [Py.Processing] --- ### s251 ![s251](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s251/s251.png) 251: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s251) [Py.Processing] --- ### s250 ![s250](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s250/s250.png) 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 ![s249](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s249/s249.png) 249: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s249) [Py.Processing] --- ### s248 ![s248](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s248/s248.png) 248: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s248) [Py.Processing] Animation --- ### s247 ![s247](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s247/s247.png) 247: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s247) [Py.Processing] --- ### s246 ![s246](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s246/s246.png) 246: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s246) [Py.Processing] --- ### s245 ![s245](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s245/s245.png) 245: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s245) [Py.Processing] --- ### s244 ![s244](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s244/s244.png) 244: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s244) [Py.Processing] --- ### s243 ![s243](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s243/s243.png) 243: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s243) [Py.Processing] --- ### s242 ![s242](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s242/s242.png) 242: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s242) [Py.Processing] --- ### s241 ![s241](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s241/s241.gif) 241: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s241) [Py.Processing] --- ### s240 ![s240](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s240/s240.gif) 240: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s240) [Py.Processing] --- ### s239 ![s239](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s239/s239.gif) 239: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s239) [Py.Processing] --- ### s238 ![s238](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s238/s238.gif) 238: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s238) [Py.Processing] --- ### s237 ![s237](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s237/s237.gif) 237: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s237) [Py.Processing] --- ### s236 ![s236](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s236/s236.gif) 236: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s236) [Py.Processing] --- ### s235 ![s235](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s235/s235.gif) 235: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s235) [Py.Processing] --- ### s234 ![s234](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s234/s234.gif) 234: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s234) [Py.Processing] --- ### s233 ![s233](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s233/s233.gif) 233: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s232) [Py.Processing] --- ### s232 ![s232](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s232/s232.png) 232: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s232) [Py.Processing] --- ### s231 ![s231](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s231/s231.gif) 231: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s231) [Py.Processing] --- ### s230 ![s230](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s230/s230.png) 230: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s230) [Py.Processing] --- ### s229 ![s229](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s229/s229.png) 229: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s229) [Py.Processing] --- ### s228 ![s228](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s228/s228.png) 228: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s228) [Py.Processing] --- ### s227 ![s227](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s227/s227.gif) 227: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s227) [Py.Processing] --- ### s226 ![s226](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s226/s226.gif) 226: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s226) [Py.Processing] --- ### s225 ![s225](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s225/s225.gif) 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 ![s224](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s224/s224.gif) 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 ![s223](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s223/s223.gif) 223: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s223) [Py.Processing] --- ### s222 ![s222](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s222/s222.gif) 222: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s222) [Py.Processing] --- ### s221 ![s221](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s221/s221.gif) 221: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s221) [Py.Processing] --- ### s220 ![s220](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s220/s220.gif) 220: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s220) [Py.Processing] --- ### s219 ![s219](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s219/s219_.gif) 219: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s219) [Py.Processing] --- ### s218 ![s218](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s218/s218.gif) 218: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s218) [Py.Processing] --- ### s217 ![s217](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s217/s217.gif) 217: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s217) [Py.Processing] --- ### s216 ![s216](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s216/s216.gif) 216: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s216) [Py.Processing] --- ### s215 ![s215](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s215/s215.gif) 215: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s215) [Py.Processing] --- ### s214 ![s214](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s214/s214.gif) 214: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s214) [Py.Processing] --- ### s213 ![s213](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s213/s213.gif) 213: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s213) [Py.Processing] --- ### s212 ![s212](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s212/s212.gif) 212: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s211) [Py.Processing] --- ### s211 ![s211](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s211/s211.gif) 211: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s211) [Py.Processing] --- ### s210 ![s210](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s210/s210.gif) 210: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s210) [Py.Processing] --- ### s209 ![s209](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s209/s209.gif) 209: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s209) [Py.Processing] --- ### s208 ![s208](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s208/s208.png) 208: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s208) [Py.Processing] --- ### s207 ![s207](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s207/s207.png) 207: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s207) [Py.Processing] --- ### s206 ![s206](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s206/s206.png) 206: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s206) [Py.Processing] --- ### s204 ![s204](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s205b/s205b.gif) 205b: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s205b) [Py.Processing] Two layer version. Added `rotateX(rot)`. --- ### s204 ![s204](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s205/s205.gif) 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 ![s204](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s204/s204.gif) 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 ![s203](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s203/s203.gif) 203: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s203) [Py.Processing] A big one, animated the maze generation process. --- ### s202 ![s202](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s202/s202.png) 202: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s202) [Py.Processing] A bigger one --- ### s201 ![s201](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s201/s201.gif) 201: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s201) [Py.Processing] --- ### s200 ![s200](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s200/s200.gif) 200: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s200) [Py.Processing] --- ### s199 ![s199](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s199/s199.gif) 199: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s199) [Py.Processing] --- ### s198 ![s198](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s198/s198.gif) 198: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s198) [Py.Processing] --- ### s197 ![s197](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s197/s197.gif) 197: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s197) [Py.Processing] --- ### s196 ![s196](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s196/s196.gif) 196: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s196) [Py.Processing] --- ### s195 ![s195](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s195/s195.gif) 195: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s195) [Py.Processing] --- ### s194 ![s194](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s194/s194.gif) 194: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s194) [Py.Processing] --- ### s193 ![s193](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s193/s193.gif) 193: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s193) [Py.Processing] --- ### s192 ![s192](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s192/s192_73.gif) 192: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s192) [Py.Processing] --- ### s191 ![s191](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s191/s191b.gif) 191: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s191) [Py.Processing] --- ### s190 ![s190](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s190/s190b.gif) 190: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s190) [Py.Processing] --- ### s189 ![s189](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s189/s189.gif) 189: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s189) [Py.Processing] --- ### s188 ![s188](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s188/s188.gif) 188: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s188) [Py.Processing] --- ### s187 ![s187](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s187/s187.gif) 187: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s187) [Py.Processing] --- ### s186gif ![s186gif](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s186gif/s186.gif) ### s186 ![s186](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s186/s186.png) 186: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s186) [Py.Processing] --- ### s185 ![s185](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s185/s185.png) 185: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s185) [[Processing Java](https://www.processing.org)] --- ### s184 ![s184](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s184/s184.png) 184: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s184) [[Processing Java](https://www.processing.org)] --- ### s183 ![s183](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s183/s183.png) 183: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s183) [[Processing Java](https://www.processing.org)] --- ### s182 ![s182](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s182/s182.png) 182: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s182) [[Processing Java](https://www.processing.org)] --- ### s181 ![s181](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s181/s181.png) 181: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s181) [[Processing Java](https://www.processing.org)] --- ### s180 ![s180](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180/s180.gif) ``` 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 ![s180b](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180/s180b.gif) ``` 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 ![s179COLOR](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s179/COR_s179.png) ### s179PB ![s179PB](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s179/PB_s179.png) 179: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s179) [Py.Processing] --- ### s178 ![s178](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s178/s178.jpg) 178: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s178) [Py.Processing] --- ### s177 ![s177](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s177/s177.png) 177: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s177) [Py.Processing] --- ### s176 ![s176](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s176/s176.png) 176: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s176) [Py.Processing] --- ### s175 ![s175](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s175/s175.gif) 175: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s175) [Py.Processing] --- ### s174 ![s174](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s174/s174.png) 174: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s174) [Py.Processing] --- ### s173 ![s173](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s173/s173.png) 173: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s173) [Py.Processing] --- ### s172 ![s172](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s172/s172.png) 172: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s172) [Py.Processing] --- ### s171 ![s171](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s171/s171.png) 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 ![s170](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s170/s170.png) 170:[code](https://github.com/villares/sketch-a-day/tree/master/2018/s170) [Py.Processing] --- ### s169 ![s169](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s169/s169.png) 169:[code](https://github.com/villares/sketch-a-day/tree/master/2018/s169) [Py.Processing] Now same Z lines can form floors. --- ### s168 ![s168](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s168/s168.png) 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 ![s167](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s167/s167.gif) 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 ![s166](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s166/s166.png) 166: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s166) [Py.Processing] --- ### s165 ![s165](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s165/s165.png) 165: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s165) [Py.Processing] --- ### s164 ![s164](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s164/s164.png) 164: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s164) [Py.Processing] --- ### s163 ![s163](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s163/s163.gif) 163: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s163) [Py.Processing] (#152 revisited in 3D :) --- ### s162 ![s162](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s162/s162.png) 162: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s161) [[Processing Java](https://www.processing.org)] Perlin Noise "walker" + ? --- ### s161 ![s161](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s161/s161.png) 161: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s161) [[Processing Java](https://www.processing.org)] Perlin Noise "walker" + eye --- ### s160 ![s160](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s160/s160.gif) 160: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s160) [[Processing Java](https://www.processing.org)] Interactive genetic algorithm --- ### s159 ![s159](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s159/s159.gif) 159: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s158) [[Processing Java](https://www.processing.org)] --- ### s158 ![s158](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s158/s158b.gif) 158: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s158) [Py.Processing] --- ### s157 ![s157](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s157/s157.gif) 157: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s156) [Py.Processing] --- ### s156 ![s156](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s156/s156.gif) 156: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s156) [Py.Processing] --- ### s155 ![s155](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s155/s155.gif) 155: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s155) [Py.Processing] --- ### s154 ![s154](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s154/s154.gif) 154: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s154) [Py.Processing] --- ### s153 ![s153](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s153/s153.gif) 153: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s153) [Py.Processing] --- ### s152 ![s152](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s152/s152.gif) 152: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s152) [Py.Processing] --- ### s151 ![s151](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s151/s151.gif) 151: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s151) [Py.Processing] --- ### s150 ![s150](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s150/s150.png) 150: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s150) [Py.Processing] --- ### s149b ![s149b](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s149b/s149b.gif) 149b: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s149b) [Py.Processing] --- ### s149 ![s149](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s149/s149.gif) 149: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s149) [Py.Processing] --- ### s148 ![s148](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s148/s148.gif) 148: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s148) [Py.Processing] --- ### s147 ![s147](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s147/s147.gif) 147: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s147) [Py.Processing] --- ### s146 ![s146](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s146/s146.gif) 146: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s146) [Py.Processing] --- ### s145 ![s145](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s145/s145.png) 145: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s145) [Py.Processing] --- ### s144 ![s144](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s144/s144.gif) 144: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s144) [Py.Processing] --- ### s143 ![s143](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s143/s143.png) 143: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s143) [Py.Processing] --- ### s140 + s141 + s142 ![s140 + s141 + s142](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s140_s141_s142/s140_s141_s142.png) 140 + 141 + 142 [code](https://github.com/villares/sketch-a-day/tree/master/2018/s140_s141_s142) [Py.Processing] --- ### s142 ![s142](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s142/s142.png) 142: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s142) [Py.Processing] --- ### s141 ![s141](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s141/s141.png) 141: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s141) [Py.Processing] --- ### s140 ![s140](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s140/s140.gif) s140: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s140) [Py.Processing] --- ### s139 ![s139](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s139/s139.gif) s139: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s139) [Py.Processing] --- ### s138 ![s138](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s138/s138.png) 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](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s137/s137.png) 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 ![s136](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s136/s136.png) 136: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s136) [Py.Processing] --- ### s135 ![s135](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s135/s135.png) 135: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s135) [Py.Processing] --- ### s134 ![s134](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s134/s134.png) 134: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s134) [Py.Processing] --- ### s133 ![s133](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s133/s133.png) 133: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s133) [Py.Processing] --- ### s132 ![s132](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s132/s132.png) 132: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s132) [Py.Processing] --- ### s131 ![s131](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s131/s131.gif) 131: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s131) [Py.Processing] --- ### s130 ![s130](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s130/s130.gif) 130: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s130) [Py.Processing] --- ### s129 ![s129](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s129/s129.gif) 129: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s129) [Py.Processing] Maybe I fixed it, I guess, not sure… --- ### s128 ![s128](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s128/s128.gif) 128: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s128) [Py.Processing] BROKEN! --- ### s127 ![s127](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s127/s127.gif) 127: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s127) [Py.Processing] --- ### s126 ![s126](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s126/s126.gif) 126: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s126) [Py.Processing] --- ### s125 ![s125](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s125/s125b.gif) 125: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s125) [Py.Processing] --- ### s124 ![s124](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s124/s124.gif) 124: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s124) [Py.Processing] --- ### s123 ![s123](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s123/s123.gif) 123: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s123) [Py.Processing] --- ### s122 ![s122](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s122/s122.gif) 122: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s122) [Py.Processing] --- ### s121 ![s121](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s121/s121.gif) 121: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s121) [Py.Processing] --- ### s120 ![s120](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s120/s120.gif) 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 ![s119](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s119/s119.gif) 119: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s119) [Py.Processing] --- ### s118 ![s118](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s118/s118.gif) 118: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s118) [Py.Processing] --- ### s117 ![s117](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s117/s117.gif) 117: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s117) [Py.Processing] --- ### s116 ![s116](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s116/s116.gif) 116: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s116) [Py.Processing] --- ### s115 ![s115](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s115/s115.gif) 115: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s115) [Py.Processing] --- ### s114 ![s114](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s114/s114.gif) 114: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s114) [Py.Processing] --- ### s113 ![s113](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s113/s113.gif) 113: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s113) [Py.Processing] --- ### s112 ![s112](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s112/s112.gif) 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 ![s111](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s111/s111.gif) 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 ![s110](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s110/s110.gif) 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 ![s109](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s109/s109.gif) 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 ![s108](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s108/s108.gif) 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 ![s107](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s107/s107.gif) 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 ![s106](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s106/s106.gif) 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 ![s105](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s105/s105.gif) 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 ![s104](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s104/s104.gif) 104: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s104) [Py.Processing] Back to stroke variation --- ### s103 ![s103](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s103/s103.gif) 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 ![s102](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s102/s102.gif) 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 ![s101](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s101/s101.gif) 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 ![s100](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s100/s100.gif) 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 ![s099](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s099/s099.gif) 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 ![s098](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s098/s098.gif) 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 ![s097](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s097/s097.gif) 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 ![s096](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s096/s096.gif) 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 ![s095](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s095/s095.gif) 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 ![s094](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s094/s094.gif) 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 ![s093](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s093/s093.gif) 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 ![s092](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s092/s092.gif) 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 ![s091](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s091/s091.gif) 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 ![s090](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s090/s090.gif) 090: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s090) [Py.Processing] Opaque strokes, no fill, randomized colours by column. --- ### s089 ![s089](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s089/s089.gif) 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 ![s088](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s088/s088.gif) 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 ![s087](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s087/s087.gif) 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 ![s086](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s086/s086.gif) 086: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s086) [Py.Processing] Translucent fill & some stroke weight --- ### s085 ![s085](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s085/s085.gif) 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 ![s084](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s084/s084.gif) 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 ![s083](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s083/s083.gif) 083: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s083) [Py.Processing] Xs and rotated rectangles --- ### s082 ![s082](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s082/s082.gif) 082: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s082) [Py.Processing] Squares and ellipses --- ### s081 ![s081](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s081/s081.gif) 081: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s081) [Py.Processing] Let's try some grids --- ### s080 ![s080](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s080/s080.gif) 080: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s080) [Py.Processing] More arrows (black and white alternate by generation) --- ### s079 ![s079](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s079/s079.gif) 079: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s079) [Py.Processing] Arrows (right black, left white) --- ### s078 ![s078](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s078/s078.gif) 078: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s078) [Py.Processing] Color --- ### s077 ![s077](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s077/s077.gif) 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 ![s076](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s076/s076.gif) 076: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s076) [Py.Processing] Stroke weight and some transparency --- ### s075 ![s075](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s075/s075.gif) 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 ![s074](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s074/s074.gif) 074: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s074) [Py.Processing] Adaptomg Shiffmans recusive Tree, with sliders or Pots... --- ### s073 ![s073](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s073/s073.gif) 073: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s073) [Py.Processing] The code remains ugly :( --- ### s072 ![s072](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s072/s072.gif) 072: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s072) [Py.Processing] Let's mix some arrows? --- ### s071 ![s071](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s071/s071.gif) 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 ![s070](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s070/s070.gif) 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 ![s069](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s069/s069.gif) 069: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s069) [Py.Processing] Added rotation. --- ### s068 ![s068](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s068/s068.gif) 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 ![s067](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s067/s067.gif) 067: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s067) [Py.Processing] Something else. --- ### s066 ![s066](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s066/s066.gif) 066: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s066) [Py.Processing] Arrow grid networks can be sized and placed... --- ### s065 ![s065](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s065/s065.gif) 065: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s065) [Py.Processing] Arrow grid networks are now objects... --- ### s064 ![s064](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s064/s064.gif) 064: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s064) [Py.Processing] Revisiting yet an older graph, adding arrows... --- ### s063 ![s063](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s063/s063.gif) 063: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s063) [Py.Processing] Revisiting an older graph adding arrows... --- ### s062 ![s062](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s062/s062.gif) 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 ![s061](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s061/s061.gif) 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 ![s060](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s060/s060.gif) 060: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s060) [Py.Processing] Complete Object Oriented refactor... --- ### s059 ![s059](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s059/s059.gif) 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 ![s058](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s058/s058.gif) 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 ![s057](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s057/s057.gif) 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 ![s056](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s056/s056.gif) 056: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s056) [Py.Processing] Arrow grid moving in HSB colour space --- ### s055 ![s055](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s055/s055.png) 055: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s055) [Py.Processing] Grid revisited --- ### s054 ![s054](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s054/s054.gif) 054: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s054) [Py.Processing] New arrows! With a "Tail" parameter... --- ### s053 ![s053](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s053/s053.png) 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 ![s052](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s052/s052.png) 052: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s052) [Py.Processing] White lines first, black arrows on top. --- ### s051 ![s051](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s051/s051.gif) 051: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s051) [Py.Processing] Points now on a grid. --- ### s050 ![s050](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s050/s050.gif) 050: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s050) [Py.Processing] Arrows now... --- ### s049 ![s049](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s049/s049.gif) 049: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s049) [Py.Processing] Yet more graphs --- ### s048 ![s048](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s048/s048.gif) 048: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s048) [Py.Processing] Yet more graphs --- ### s047 ![s047](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s047/s047.gif) 047: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s047) [Py.Processing] Yet more graphs --- ### s046 ![s046](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s046/s046.png) 046: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s046) [Py.Processing] Yet more graphs --- ### s045 ![s045](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s045/s045.gif) 045: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s045) [Py.Processing] Yet more graphs --- ### s044 ![s044](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s044/s044.gif) 044: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s044) [Py.Processing] More graphs --- ### s043 ![s043](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s043/s043.png) 043: [code](https://github.com/villares/sketch-a-day/tree/master/2018/s043) [Py.Processing] More graphs --- ### s042 ![s042](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s042/s042.gif) 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 ![s041](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s041/s041.png) 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](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180209a/sketch_180209a.png) ![040](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180209a/sketch_180209a_2.png) 040: [sketch_180209a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180209a) [Py.Processing] More recursion --- ### sketch_180208 ![039](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180208e/sketch_180208e.png) 039: [sketch_180208e](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180208e) [Py.Processing] Manoloide inspired recursion --- ### 038sketch_180208d ![038](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180208d/sketch_180208d.png) 038: [sketch_180208d](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180208d) [Py.Processing] Saskia Freeke inspired grid --- ### sketch_180206a ![037](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180206a/sketch_180206a.gif) 037: [sketch_180206b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180206a) [Py.Processing] "Carnahacking is near!" --- ### sketch_180205b ![036](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180205b/sketch_180205b.png) 036: [sketch_180205b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180205b) [Py.Processing] Added some mouse disturbance --- ### sketch_180204b ![035](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180204b/sketch_180204b.gif) 035: [sketch_180204b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180204b) [Py.Processing] Preparing for "Carnahacking" --- ### sketch_180203c ![034](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180203c/sketch_180203c.gif) 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](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180202c/sketch_180202c.png) 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](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180201c/sketch_180201c.gif) 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](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180131c/sketch_180131c.gif) 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](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180130c/sketch_180130c.png) 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 ![29c](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180129c/sketch_180129c.gif) 029: [sketch_180129c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180129c) [Py.Processing] Like 27 but with circles --- ### sketch_180128c ![28c](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180128c/sketch_180128c.png) 028: [sketch_180128c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180128c) [Py.Processing] Like 27 but on grayscale --- ### sketch_180127c ![27c](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180127c/sketch_180127c.png) 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 ![26](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180126c/sketch_180126c.png) 026: [sketch_180126c](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180126c) [Py.Processing] Mouse speed changing colour & strokeWeight() --- ### sketch_180125c ![25](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180125c/sketch_180125c.png) 025c: [sketch_180125b](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180125c) [Py.Processing] Mouse speed changing strokeWeight() --- ### sketch_180124b ![24](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180124b/sketch_180124b.png) 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 ![23](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180123b/sketch_180123b.gif) 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 ![21b](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180121b/sketch_180121b.gif) 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 ![20b](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180120b/sketch_180120b.gif) 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... ![20a](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180120a/sketch_180120a.png) 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 ![19a](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180119a/sketch_180119a.png) 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 ![18a](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180118a/sketch_180118a.png) 018: [sketch_180118a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180118a) [Py.Processing] DBN Color font? Nah… --- ### sketch_180117a ![17a](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180117a/sketch_180117a.png) 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 ![16a](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180116a/sketch_180116a.png) 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 ![15a](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180115a/sketch_180115a.png) 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 ![14a](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180114a/sketch_180114a.png) 014: [sketch_180114a](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180114a) [Py.Processing] Another 3D Graph --- ### s180113a ![13a](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/sketch_180113a/sketch_180113a.png) 013: [s180113](https://github.com/villares/sketch-a-day/tree/master/2018/sketch_180113a) [Py.Processing] 3D Graph --- ### s180112 ![s180112](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180112/s180112.png) 012: [s180112](https://github.com/villares/sketch-a-day/tree/master/2018/s180112) [Py.Processing] Another Graph Take --- ### s180111 ![s180111](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180111/s180111.png) 011: [s180111](https://github.com/villares/sketch-a-day/tree/master/2018/s180111) [Py.Processing] A Graph Take --- ### s180110 ![s180110](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180110/s180110.png) 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 ![GIF](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180109/s180109.gif) 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 ![GIF](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180108/s180108.gif) 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 ![GIF](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180107/s180107.gif) 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 ![GIF](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180106/s180106.gif) 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 ![](https://github.com/villares/sketch-a-day/blob/main/2018/s180105/s180105.png) 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 ![GIF](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180104/s180104.gif) 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 ![GIF](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180103/s180103.gif) 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 ![](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180102/s180102.png) 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 ![](https://raw.githubusercontent.com/villares/sketch-a-day/main/2018/s180101/s180101.png) 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.