{"id":15815,"date":"2019-11-25T17:58:47","date_gmt":"2019-11-25T22:58:47","guid":{"rendered":"http:\/\/scruss.com\/blog\/?p=15815"},"modified":"2024-06-23T16:07:04","modified_gmt":"2024-06-23T20:07:04","slug":"schotter-on-a-tek-4010","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2019\/11\/25\/schotter-on-a-tek-4010\/","title":{"rendered":"Schotter on a Tek 4010"},"content":{"rendered":"\n<figure class=\"wp-block-video\"><video height=\"480\" style=\"aspect-ratio: 854 \/ 480;\" width=\"854\" controls src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2019\/11\/schotter_tek4010.webm\"><\/video><figcaption class=\"wp-element-caption\">Georg Nees&#8217; <strong>Schotter<\/strong>, reproduced on a simulated Tek4010 display<\/figcaption><\/figure>\n\n\n\n<p><strong>Georg Nees<\/strong> (1926\u20132016) was a pioneer of generative art. His piece \u201c<strong>Schotter<\/strong>\u201d\u009d (<em>gravel<\/em>) from 1968 displayed a rectangular array of squares with the position of each square becoming more random as the piece progressed.<\/p>\n\n\n\n<p>The BASIC code for this video is based on Processing code by <em>Jim Plaxco<\/em>, <a href=\"http:\/\/www.artsnova.com\/\">http:\/\/www.artsnova.com\/<\/a><\/p>\n\n\n\n<p>The Tektronix 4010 display simulator is by <em>Rene Richarz<\/em>, <a href=\"https:\/\/github.com\/rricharz\/Tek4010\">https:\/\/github.com\/rricharz\/Tek4010<\/a><\/p>\n\n\n\n<p>The BASIC interpreter with Tektronix graphics support is <strong>Matrix Brandy BASIC<\/strong> maintained by <em>Michael McConnell<\/em>, <a href=\"https:\/\/github.com\/stardot\/MatrixBrandy\">https:\/\/github.com\/stardot\/MatrixBrandy<\/a><\/p>\n\n\n\n<p>(Higher-quality video at <a href=\"https:\/\/www.youtube.com\/watch?v=4xRRFz8uKsg\">Georg Nees&#8217; \u201cSchotter\u201d, reproduced on a simulated Tek4010 display<\/a> at YouTube.)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"780\" src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2019\/11\/Screenshot-from-2019-11-25-17-09-04-1024x780.png\" alt=\"\" class=\"wp-image-15817\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2019\/11\/Screenshot-from-2019-11-25-17-09-04-1024x780.png 1024w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2019\/11\/Screenshot-from-2019-11-25-17-09-04-320x244.png 320w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2019\/11\/Screenshot-from-2019-11-25-17-09-04-160x122.png 160w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2019\/11\/Screenshot-from-2019-11-25-17-09-04-768x585.png 768w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2019\/11\/Screenshot-from-2019-11-25-17-09-04-1200x914.png 1200w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2019\/11\/Screenshot-from-2019-11-25-17-09-04.png 1418w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: vb; title: ; notranslate\" title=\"\">\n  100 REM Georg Nees &quot;Schotter&quot; reproduction - scruss, 2019-11\n  110 REM based on Processing 3 code by Jim Plaxco, www.artsnova.com\n  120 :\n  130 scrn_wd% = 2048: REM fixed screen size, unlike Processing\n  140 scrn_ht% = 1560\n  150 columns% = 12\n  160 rows% = 22\n  170 sqsize% = FN_min(scrn_wd% \/ (columns% + 4), scrn_ht% \/ (rows% + 4))\n  180 padding% = 2 * sqsize%\n  190 randstep = 0.22\n  200 randsum = 0.0\n  210 randval = 0.0\n  220 dampen = 0.45\n  230 :\n  240 SYS &quot;Brandy_TekEnabled&quot;, 1\n  250 A$=GET$: REM PLOT 4, 0, 0: PLOT 5, 0, 0\n  260 FOR y% = 1 TO rows%\n  270   randsum = randsum + (y% * randstep)\n  280   FOR x% = 1 TO columns%\n  290     randval = RND(1) * (2 * randsum) - randsum\n  300     PROC_square((scrn_wd% \/ 2) - (sqsize% * columns% \/ 2) + (x% * sqsize%) - (sqsize% \/ 2) + INT(randval * dampen), scrn_ht% - (padding% + (y% * sqsize%) - (sqsize% \/ 2) + INT(randval * dampen)), sqsize%, randval)\n  310   NEXT x%\n  320 NEXT y%\n  330 PLOT 4, 0, 0: PLOT 5, 0, 0\n  340 END\n  350 :\n  360 DEF PROC_square(cx%, cy%, side, angle)\n  370 LOCAL r, i%, pm%\n  380 pm% = 4: REM plot mode - move = 4, draw = 5\n  390 r = (side \/ 2) \/ (SQR(2) \/ 2)\n  400 FOR i% = 0 TO 4\n  410   PLOT pm%, cx% + r * COS(RAD(angle + i% * 90 + 45)), cy% + r * SIN(RAD(angle + i% * 90 + 45))\n  420   pm% = 5\n  430 NEXT i%\n  440 ENDPROC\n  450 :\n  460 DEF FN_min(a%, b%) IF a% &lt; b% THEN =a% ELSE =b%\n<\/pre><\/div>\n\n\n<p><strong>Update<\/strong>: I get a mention here: <a href=\"https:\/\/zellyn.com\/2024\/06\/schotter-2\/\">Schotter &#8211; Georg Nees &#8211; Part 2<\/a>!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Georg Nees (1926\u20132016) was a pioneer of generative art. His piece \u201cSchotter\u201d\u009d (gravel) from 1968 displayed a rectangular array of squares with the position of each square becoming more random as the piece progressed. The BASIC code for this video is based on Processing code by Jim Plaxco, http:\/\/www.artsnova.com\/ The Tektronix 4010 display simulator is [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Schotter on a Tek 4010 #plottertwitter","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[2],"tags":[],"class_list":["post-15815","post","type-post","status-publish","format-standard","hentry","category-goatee-stroking-musing-or-something"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-475","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/15815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/comments?post=15815"}],"version-history":[{"count":4,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/15815\/revisions"}],"predecessor-version":[{"id":17586,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/15815\/revisions\/17586"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=15815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=15815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=15815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}