{"id":2462,"date":"2021-12-08T11:35:51","date_gmt":"2021-12-08T16:35:51","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/?p=2462"},"modified":"2021-12-08T11:35:51","modified_gmt":"2021-12-08T16:35:51","slug":"dinkolas-finaldocumentation","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/dinkolas\/12\/08\/dinkolas-finaldocumentation\/","title":{"rendered":"dinkolas &#8211; FinalDocumentation"},"content":{"rendered":"<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-2463 size-full\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/IMG-0431-scaled.jpg\" alt=\"\" width=\"2560\" height=\"1920\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/IMG-0431-scaled.jpg 2560w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/IMG-0431-640x480.jpg 640w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/IMG-0431-1024x768.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/IMG-0431-768x576.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/IMG-0431-1536x1152.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/IMG-0431-2048x1536.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/IMG-0431-1200x900.jpg 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/p>\n<p>&#8220;Bug Noodles&#8221; consists of overlapping noodle tubes. The code generated a grid of noodles, and for each tube that threw an error, the error text and stack trace was drawn instead of the noodle. Some of the debug information was drawn too: the graphs that were computed to calculate the intersections\/unions\/differences of the noodles have vertices\/edges\/faces, which were drawn with pencil\/charcoal\/pen.<\/p>\n<p>For this project, I initially wanted to use something like this as inspiration:<\/p>\n<p><img decoding=\"async\" class=\"n3VNCb\" src=\"https:\/\/nouvelleartsite.files.wordpress.com\/2016\/09\/at-the-mountains-of-madness-web.jpg\" alt=\"An Exhibition of Art by Ian Miller \u2013 Nouvelle Art\" data-noaft=\"1\" \/><\/p>\n<p>One aspect of it I noticed was all the overlapping tubes. So I set out to create a boolean library of my own to create arbitrary mutually and overlapping objects (and self overlapping). Here were some of my progress images and debug views:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-2250 \" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/11\/dinkolasFINALWIP.png\" alt=\"\" width=\"242\" height=\"245\" \/><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-2464\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/overlaps-569x480.png\" alt=\"\" width=\"297\" height=\"250\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/overlaps-569x480.png 569w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/overlaps-1024x864.png 1024w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/overlaps-768x648.png 768w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/overlaps.png 1164w\" sizes=\"(max-width: 297px) 85vw, 297px\" \/><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-2465\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/textureSubtractTest.gif\" alt=\"\" width=\"259\" height=\"255\" \/><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-2466 \" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/firstNoodles.gif\" alt=\"\" width=\"275\" height=\"271\" \/><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone  wp-image-2467\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/debugNoodl2-640x411.png\" alt=\"\" width=\"545\" height=\"350\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/debugNoodl2-640x411.png 640w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/debugNoodl2-768x493.png 768w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/12\/debugNoodl2.png 1007w\" sizes=\"(max-width: 545px) 85vw, 545px\" \/><\/p>\n<p>I basically ran out of time for my original idea, because the boolean library was still too buggy for the original concept to really be feasible with only a few days remaining. Instead, I embraced the debug views that I had been steeped in for about a week (and had admittedly become fond of), and plotted those.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;Bug Noodles&#8221; consists of overlapping noodle tubes. The code generated a grid of noodles, and for each tube that threw an error, the error text and stack trace was drawn instead of the noodle. Some of the debug information was drawn too: the graphs that were computed to calculate the intersections\/unions\/differences of the noodles have &hellip; <a href=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/dinkolas\/12\/08\/dinkolas-finaldocumentation\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;dinkolas &#8211; FinalDocumentation&#8221;<\/span><\/a><\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[22],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/posts\/2462"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/comments?post=2462"}],"version-history":[{"count":1,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/posts\/2462\/revisions"}],"predecessor-version":[{"id":2468,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/posts\/2462\/revisions\/2468"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/media?parent=2462"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/categories?post=2462"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/tags?post=2462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}