{"id":823,"date":"2021-09-15T11:06:03","date_gmt":"2021-09-15T15:06:03","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/?page_id=823"},"modified":"2021-09-20T15:50:25","modified_gmt":"2021-09-20T19:50:25","slug":"4-hatching","status":"publish","type":"page","link":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/offerings\/4-hatching\/","title":{"rendered":"#4: Hatching"},"content":{"rendered":"<p>This set of prompts has two parts, due by the beginning of class on Wednesday, 9\/22:<\/p>\n<ul>\n<li><strong>Looking Outwards:<\/strong> Review plotting resources on Drawingbots.net and the Drawingbots Discord<\/li>\n<li><strong>Hatching Studies:<\/strong> Develop four different methods of hatching, and plot them on paper.<\/li>\n<\/ul>\n<hr \/>\n<h3>1. Looking Outwards<\/h3>\n<p><em>The purpose of this prompt is for you to observe some of the kinds of expertise and energy that are developing around the topic of drawing with machines.<\/em><\/p>\n<p>Spend 10-15 minutes <strong>browsing<\/strong> the resources at <a href=\"https:\/\/drawingbots.net\/\">Drawingbots.net<\/a> and the <a href=\"https:\/\/discordapp.com\/invite\/XHP3dBg\">Drawingbots Discord<\/a>, both maintained by Maks Surguy. A good place to get started is this astonishing <a href=\"https:\/\/drawingbots.net\/resources#5\">list of software tools<\/a>, but you might also appreciate this list of <a href=\"https:\/\/drawingbots.net\/knowledge\/supplies\">recommended supplies<\/a>. <em>Now<\/em>:<\/p>\n<p><strong>Identify<\/strong> something you found interesting, and, in a blog post, briefly <strong>describe<\/strong> it (including an image, if appropriate). <strong>Title<\/strong> your blog post <em>Nickname-Drawingbots<\/em> and <strong>Categorize<\/strong> it <em>04-Drawingbots<\/em>.<\/p>\n<hr \/>\n<h3>2. Hatching Studies<\/h3>\n<p>Please <strong>read<\/strong> this prompt all the way to the end, before you start any drawing or coding.<em> The purpose of this prompt is for you to develop foundational skills in controlling value and tone.<\/em><\/p>\n<p><em>First: do some sketching.<\/em> With a pen and paper, <strong>do some hatching studies<\/strong> by hand. Try to generate 9 different hatching concepts or styles (say, in a 3&#215;3 grid)\u2014starting with the most obvious and butt-simple hatching methods, and aiming for some more exotic hatching methods that you would have no idea how to implement in code.<\/p>\n<p><em>Now:<\/em> <strong>Write code<\/strong> to implement four different methods of hatching (<em>in other words: approximating gray tones using assemblies of lines, in order to fill areas of paper<\/em>).<\/p>\n<ul>\n<li>For each method, <strong>program<\/strong> a &#8220;gradient sequence&#8221; of five adjacent one-inch squares, with evenly-spaced gray values of 10%, 30%, 50%, 70%, 90%. Some inspirations can be seen below.<\/li>\n<li><strong>Export<\/strong> a single SVG with all four hatching sequences, and <strong>execute<\/strong> this on an AxiDraw plotter using a thin black pen on a sheet of heavy white paper.<\/li>\n<li><strong>Create<\/strong> a blog post, <strong>Titled<\/strong> <em>Nickname-Hatching<\/em> and <strong>Categorized<\/strong> <em>04-Hatching<\/em>.<\/li>\n<li>In your blog post: <strong>embed<\/strong> a photo of your handmade sketches; <strong>embed<\/strong> your SVG; and <strong>embed<\/strong> a screenshot of your project.<\/li>\n<li>In your blog post, please <strong>write<\/strong> approximately 100-150 words (a paragraph or so) about your hatching methods, and what you learned making them. Did you have any surprises? Remember to give credit to any external code sources you may have used.<\/li>\n<li>You&#8217;re not required to embed your code, but feel free to do so (in part or in whole) if you wish.<\/li>\n<\/ul>\n<p><strong>In your designs,\u00a0<\/strong><\/p>\n<ul>\n<li><strong>Consider<\/strong> methods like: hatching, cross-hatching, scribbling, scumbling, stippling, fill patterns, or other creative methods of your own design.<\/li>\n<li><strong>Consider<\/strong> how you can productively control and contrast properties like: line direction, line density, line length, line curvature to produce different hatches with different characters. Consider how you can control the <em>variation<\/em> (e.g. randomness, or standard deviations) of these properties.<\/li>\n<li><strong>Easement 1:<\/strong> For <em>one<\/em> of your hatching methods, you are permitted to use a &#8220;readymade&#8221; hatching method (i.e., made by someone else \u2014 such as you might find in a high-level library like <a href=\"https:\/\/github.com\/CreativeInquiry\/PEmbroider\">PEmbroider<\/a>, <a href=\"https:\/\/github.com\/markroland\/axidraw-sketchpad\">Axidraw Sketchpad<\/a>, etc.). You may use such a library for <span style=\"text-decoration: underline;\"><em>no more than one<\/em><\/span> of your four hatch methods. An example project using PEmbroider is given at the bottom of this page.<\/li>\n<li><strong>Easement 2:<\/strong> For <em>one<\/em> of your hatching methods, feel free to implement one of the following very simple methods shown immediately below, using parallel lines. (These only differ in the orientation of the lines.) I have posted the code for these <a href=\"https:\/\/editor.p5js.org\/golan\/sketches\/4KhqqgP7l\">here<\/a> in case you feel like it would help to peek at an example solution.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/hatch_sequence_H.svg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1006\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/hatch_sequence_H.svg\" alt=\"\" width=\"840\" height=\"840\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/\/2021\/09\/hatch_sequence_H.svg 150w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/\/2021\/09\/hatch_sequence_H.svg 1024w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/hatch_sequence.svg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1007\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/hatch_sequence.svg\" alt=\"\" width=\"840\" height=\"840\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/\/2021\/09\/hatch_sequence.svg 150w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/\/2021\/09\/hatch_sequence.svg 1024w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/p>\n<p><em>Below are some <em>loose inspirations. There are more inspirations in the <a href=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/daily-notes\/09-15-hatch\/\">class notes from last session<\/a>.<\/em><\/em><\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/f599a42f4d0cd48dc20a3f6b2ff5727e.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-831\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/f599a42f4d0cd48dc20a3f6b2ff5727e-1024x780.jpg\" alt=\"\" width=\"840\" height=\"640\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/f599a42f4d0cd48dc20a3f6b2ff5727e-1024x780.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/f599a42f4d0cd48dc20a3f6b2ff5727e-630x480.jpg 630w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/f599a42f4d0cd48dc20a3f6b2ff5727e-768x585.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/f599a42f4d0cd48dc20a3f6b2ff5727e.jpg 1050w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/DAmA2kRSK8S7ia25LPwfSk-480-80.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-832\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/DAmA2kRSK8S7ia25LPwfSk-480-80.jpg\" alt=\"\" width=\"960\" height=\"512\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/Ex5LlJyWQAY3yYk.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-829\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/Ex5LlJyWQAY3yYk-1024x1024.jpg\" alt=\"\" width=\"840\" height=\"840\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/Ex5LlJyWQAY3yYk-1024x1024.jpg 1024w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/Ex5LlJyWQAY3yYk-480x480.jpg 480w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/Ex5LlJyWQAY3yYk-150x150.jpg 150w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/Ex5LlJyWQAY3yYk-768x768.jpg 768w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/Ex5LlJyWQAY3yYk-1536x1536.jpg 1536w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/Ex5LlJyWQAY3yYk-2048x2048.jpg 2048w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/Ex5LlJyWQAY3yYk-1200x1200.jpg 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/a><\/p>\n<p><em>(Above: AxiDraw dithering experiments by Lars Wander.)<\/em><\/p>\n<hr \/>\n<h3>PEmbroider Example<\/h3>\n<p>&nbsp;<\/p>\n<p>Processing + PEmbroider code:<\/p>\n<pre>\/\/ Hatch some shapes and export an SVG\r\nimport processing.embroider.*;\r\nPEmbroiderGraphics E;\r\n\r\n\r\nvoid setup() {\r\n  noLoop(); \r\n  size (475, 700);\r\n  E = new PEmbroiderGraphics(this, width, height);\r\n\r\n  String outputFilePath = sketchPath(\"PEmbroider_hatching.svg\");\r\n  E.setPath(outputFilePath); \r\n  E.beginDraw(); \r\n  E.clear();\r\n  E.strokeWeight(1); \r\n  E.fill(0, 0, 0); \r\n  E.noStroke(); \r\n  \r\n  \/\/ VERY important for SVG\r\n  E.toggleConnectingLines(false); \/\/ for SVG!\r\n  E.toggleResample(false); \/\/ for SVG!\r\n\r\n\r\n  \/\/-----------------------\r\n  \/\/ Perlin noise field fill. \r\n  E.HATCH_MODE = PEmbroiderGraphics.PERLIN;\r\n  E.HATCH_SPACING = 4;\r\n  E.HATCH_SCALE = 1.0;\r\n  E.rect( 25, 25, 200, 200);\r\n\r\n  E.HATCH_MODE = PEmbroiderGraphics.PERLIN;\r\n  E.HATCH_SPACING = 8;\r\n  E.HATCH_SCALE = 1.0;\r\n  E.circle(350, 125, 200);\r\n\r\n  \r\n  \/\/-----------------------\r\n  \/\/ Shapes filled with PARALLEL hatch mode.\r\n  \/\/ I've changed up the way I'm setting the parameters.\r\n  E.hatchMode(E.PARALLEL);\r\n  E.hatchAngleDeg(45); \/\/ Degrees!\r\n  E.hatchSpacing(4);\r\n  E.circle(125, 350, 200);\r\n\r\n  E.hatchMode(E.PARALLEL);\r\n  E.hatchAngle(radians(90)); \/\/ Radians!\r\n  E.hatchSpacing(4);\r\n  E.circle(350, 350, 200);\r\n\r\n\r\n  \/\/-----------------------\r\n  \/\/ The \"cross\" hatch mode is a convenience mode, \r\n  \/\/ placing parallel lines of stitching at two orientations\r\n  \/\/ specified by HATCH_ANGLE and HATCH_ANGLE2:\r\n  E.HATCH_MODE = PEmbroiderGraphics.CROSS;\r\n  E.HATCH_ANGLE = radians(90);\r\n  E.HATCH_ANGLE2 = radians(0); \r\n  E.HATCH_SPACING = 4;\r\n  E.circle(125, 575, 200);\r\n\r\n  E.HATCH_MODE = PEmbroiderGraphics.CROSS;\r\n  E.HATCH_ANGLE = radians(90); \r\n  E.HATCH_ANGLE2 = radians(75); \r\n  E.HATCH_SPACING = 8;\r\n  E.circle(350, 575, 200);\r\n  \r\n\r\n  \/\/-----------------------\r\n  E.optimize(); \/\/ slow, but good and important\r\n  E.visualize(); \r\n  E.endDraw(); \/\/ write out the file\r\n  save(\"screenshot.png\"); \r\n}\r\n\r\n\/\/--------------------------------------------\r\nvoid draw() {;}\r\n<\/pre>\n<p>Screenshot:<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/screenshot.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1028\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/screenshot.png\" alt=\"\" width=\"475\" height=\"700\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/screenshot.png 475w, https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/screenshot-326x480.png 326w\" sizes=\"(max-width: 475px) 85vw, 475px\" \/><\/a><\/p>\n<p>SVG:<\/p>\n<p><a href=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/PEmbroider_hatching.svg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1029\" src=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-content\/uploads\/2021\/09\/PEmbroider_hatching.svg\" alt=\"\" width=\"475\" height=\"700\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This set of prompts has two parts, due by the beginning of class on Wednesday, 9\/22: Looking Outwards: Review plotting resources on Drawingbots.net and the Drawingbots Discord Hatching Studies: Develop four different methods of hatching, and plot them on paper. 1. Looking Outwards The purpose of this prompt is for you to observe some of &hellip; <a href=\"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/offerings\/4-hatching\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;#4: Hatching&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":19,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/pages\/823"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/comments?post=823"}],"version-history":[{"count":20,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/pages\/823\/revisions"}],"predecessor-version":[{"id":1030,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/pages\/823\/revisions\/1030"}],"up":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/pages\/19"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-428\/f2021\/wp-json\/wp\/v2\/media?parent=823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}