{"id":6868,"date":"2017-09-29T10:49:31","date_gmt":"2017-09-29T08:49:31","guid":{"rendered":"http:\/\/www.randform.org\/blog\/?p=6868"},"modified":"2017-09-29T18:25:45","modified_gmt":"2017-09-29T16:25:45","slug":"shuttersploshscatterplots","status":"publish","type":"post","link":"https:\/\/www.randform.org\/blog\/?p=6868","title":{"rendered":"ShutterSploshScatterPlots"},"content":{"rendered":"<p><a href=\"http:\/\/www.randform.org\/blog\/wp-content\/2017\/09\/ShutterSploshScatterPlots-450.jpg\"><img src=\"http:\/\/www.randform.org\/blog\/wp-content\/2017\/09\/ShutterSploshScatterPlots-450.jpg\" alt=\"\" title=\"ShutterSploshScatterPlots-450\" width=\"450\" height=\"343\" class=\"aligncenter size-full wp-image-6870\" srcset=\"https:\/\/www.randform.org\/blog\/wp-content\/2017\/09\/ShutterSploshScatterPlots-450.jpg 450w, https:\/\/www.randform.org\/blog\/wp-content\/2017\/09\/ShutterSploshScatterPlots-450-300x228.jpg 300w\" sizes=\"(max-width: 450px) 100vw, 450px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/bl.ocks.org\/mohdali\">Mohammad Ali (mohdali)<\/a> had made a nice illustration of the socalled <a href=\"https:\/\/en.wikipedia.org\/wiki\/Rolling_shutter\">rolling shutter effect<\/a>. He wrote a programm in javascript which uses the library d3 called <a href=\"https:\/\/bl.ocks.org\/mohdali\/36f427bc905f11f0271977c53eb8bbf6\">Rolling shutter.<\/a><\/p>\n<p>This program was used by artist <em>Scriptique<\/em> to program a kind of &#8220;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Paint_by_number\">paint-by-number<\/a> recreational occupation for your browser&#8221; (as the artist called it). It should display something like &#8220;a paint drop dropping&#8221;.<\/p>\n<p>The program has a <a href=\"https:\/\/opensource.org\/licenses\/MIT\">MIT licence<\/a> and you can see how well your browser paints by numbers by pasting the program into a file and then opening the file in your browser (tested with firefox).<\/p>\n<p><!--more--><\/p>\n<blockquote>\n<pre>\r\n<span>&lt;!DOCTYPE html&gt;<\/span>\r\n<span>&lt;html&gt;<\/span>\r\n\r\n<span>&lt;head&gt;<\/span>\r\n<span> <\/span><span>&lt;meta charset=\"utf-8\"&gt;<\/span>\r\n<span> <\/span><span>&lt;title&gt;ShutterSploshScatterPlots&lt;\/title&gt;<\/span>\r\n<span>&lt;\/head&gt;<\/span>\r\n<span>&lt;style&gt;<\/span>\r\n<span> <\/span><span>canvas {<\/span>\r\n<span> <\/span><span> <\/span><span>background-color:rgba(50,140,150,0.8)<\/span>\r\n<span> <\/span><span>}<\/span>\r\n<span>&lt;\/style&gt;<\/span>\r\n\r\n<span>&lt;body&gt;<\/span>\r\n<span> <\/span><span>&lt;script src=\"<\/span><a href=\"https:\/\/d3js.org\/d3.v4.min.js\">https:\/\/d3js.org\/d3.v4.min.js<\/a><span>\" type=\"text\/javascript\"&gt;&lt;\/script&gt;<\/span>\r\n<span> <\/span><span>&lt;script type=\"text\/javascript\"&gt;<\/span>\r\n<span> <\/span><span> <\/span><span>var width = 1000,<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>height = 500;<\/span>\r\n<span>var offset =300;<\/span>\r\n<span>of=400;<\/span>\r\n\r\n<span> <\/span><span> <\/span><span>var canvas = d3.select(\"body\").append(\"canvas\")<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.attr(\"width\", width-60)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.attr(\"height\", height+offset)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.node().getContext(\"2d\");<\/span>\r\n\r\n<span> <\/span><span> <\/span><span>var shutter = 0;<\/span>\r\n\r\n<span> <\/span><span> <\/span><span>var circle = d3.symbol()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.type(d3.symbolCircle)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.size(1000)<\/span>\r\n<span> .context(canvas);<\/span>\r\n\r\n<span> <\/span><span> <\/span><span> <\/span>\r\n<span> <\/span><span> <\/span><span>\/*<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>Fan Shape definition.<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>Modify the parameters to change the shape.<\/span>\r\n<span> <\/span><span> <\/span><span>*\/<\/span>\r\n<span> <\/span><span> <\/span><span>var numOfPoints = 100;<\/span>\r\n<span> <\/span><span> <\/span><span>var numOfBlades = 5;<\/span>\r\n<span> <\/span><span> <\/span><span>var rotationSpeed = 2; \/\/ relative to shutter speed<\/span>\r\n<span> <\/span><span> <\/span><span>var angleDeg = 0;<\/span>\r\n<span> <\/span><span> <\/span><span>var theta = angleDeg \/ 180 * Math.PI;<\/span>\r\n<span>var bulge = 20;<\/span>\r\n<span>var sc=0.7;<\/span>\r\n\r\n<span> <\/span><span> <\/span><span>var points = d3.range(numOfPoints);<\/span>\r\n<span> <\/span><span> <\/span><span>var scale = d3.scaleLinear()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.domain(d3.extent(points))<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.range([0, 2 * Math.PI]);<\/span>\r\n\r\n<span> <\/span><span> <\/span><span>var shape = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n\r\n<span>var shape2 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+2\/3*Math.PI; })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span>\r\n<span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n\r\n<span>var shape3 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+4\/3*Math.PI; })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span>\r\n<span>var shape4 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+2\/3*Math.PI })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n\r\n<span>var shape5 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+3.3\/3*Math.PI })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n\r\n<span>var shape6 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+0*Math.PI })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n\r\n<span>var shape7 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+0*Math.PI })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n\r\n<span>var shape8 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+Math.PI })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n\r\n<span>var shape9 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+Math.PI })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n\r\n<span>var shape10 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+Math.PI })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n\r\n<span>var shape11 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return sc*Math.sin(scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+0*Math.PI })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n\r\n<span>var shape12 = d3.lineRadial()<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.radius(function (d) { return 0.5*sc*Math.sin(Math.PI\/2+scale(d))*(200+bulge*Math.sin(25*scale(d))); })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.angle(function (d) { return scale(d)+0*Math.PI })<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.curve(d3.curveCardinalClosed)<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>.context(canvas);<\/span>\r\n<span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n\r\n<span> <\/span><span> <\/span><span>setInterval(function () {<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.beginPath();<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.setTransform(1, 0, 0, 1, 0, 0);<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.clearRect(0, shutter, width, height+offset - shutter);<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.rect(0, shutter, width, height+offset - shutter);<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.clip();<\/span>\r\n\r\n<span>canvas.beginPath();<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.moveTo(0, shutter);<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.lineTo(width, shutter);<\/span>\r\n<span>canvas.strokeStyle = \"rgba(87,207,255,0.8)\";<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.stroke();<\/span>\r\n\r\n<span>canvas.beginPath();<\/span>\r\n<span>canvas.setTransform(1,0,0,1,width\/2+200,height\/2+of);<\/span>\r\n<span>canvas.rotate(rotationSpeed*shutter \/ 180 *Math.PI);<\/span>\r\n\r\n<span>shape11(points);<\/span>\r\n\r\n<span>canvas.fillStyle = \"rgba(159, 170, 200, 0.6)\";\/**\/<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span>canvas.beginPath();<\/span>\r\n<span>canvas.setTransform(1,0,0,1,width\/2-200,height\/2+of);<\/span>\r\n<span>canvas.rotate(-rotationSpeed*shutter \/ 180 *Math.PI);<\/span>\r\n\r\n<span>shape10(points);<\/span>\r\n\r\n<span>canvas.fillStyle = \"rgba(50, 100, 255, 0.6)\";\/**\/<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span>canvas.beginPath();<\/span>\r\n<span>canvas.setTransform(1,0,0,1,width\/2+200,height\/2+of+30);<\/span>\r\n<span>canvas.rotate(rotationSpeed*shutter \/ 180 * Math.PI);<\/span>\r\n\r\n<span>shape9(points);<\/span>\r\n\r\n<span>canvas.fillStyle = \"rgba(200, 200, 200, 0.6)\";\/**\/<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span>canvas.beginPath();<\/span>\r\n<span>canvas.setTransform(1,0,0,1,width\/2+100,height\/2+of);<\/span>\r\n<span>canvas.rotate(rotationSpeed*shutter \/ 180 * Math.PI);<\/span>\r\n\r\n<span>shape8(points);<\/span>\r\n\r\n<span>canvas.fillStyle = \"rgba(0, 10, 130, 0.8)\";\/**\/<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span>canvas.beginPath();<\/span>\r\n<span>canvas.setTransform(1,0,0,1,width\/2-250,height\/2+of);<\/span>\r\n<span>canvas.rotate(-rotationSpeed*shutter \/ 180 *Math.PI);<\/span>\r\n<span>shape6(points);<\/span>\r\n\r\n<span>canvas.fillStyle = \"rgba(03, 150, 200, 0.6)\";\/**\/<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span>canvas.beginPath();<\/span>\r\n<span>canvas.setTransform(1,0,0,1,width\/2+150,height\/2+of-30);<\/span>\r\n<span>canvas.rotate(rotationSpeed*shutter \/ 180 * Math.PI);<\/span>\r\n\r\n<span>shape7(points);<\/span>\r\n\r\n<span>canvas.fillStyle = \"rgba(03, 10, 199, 0.8)\";\/**\/<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span> <\/span><span> <\/span><span>canvas.beginPath();<\/span>\r\n<span>canvas.setTransform(1,0,0,1,width\/2-100,height\/2+of);<\/span>\r\n<span>canvas.rotate(-rotationSpeed*shutter \/ 180 * Math.PI);<\/span>\r\n<span>shape4(points);<\/span>\r\n<span>canvas.fillStyle = \"#53f6e1\";<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span> <\/span><span>canvas.beginPath();<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.setTransform(Math.cos(theta), Math.sin(theta), 0, 1, width \/ 2, height \/ 2+of);<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.rotate(rotationSpeed*shutter \/ 180 *Math.PI);<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span>\r\n<span>shape2(points);<\/span>\r\n<span>canvas.fillStyle = \"rgba(05, 50, 80, 0.6)\";<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span>canvas.beginPath(); \/*red ball*\/<\/span>\r\n<span>var heigh=120+shutter-0.16*shutter<\/span>\r\n<span>if(heigh&lt;height+offset-140){<\/span>\r\n<span>canvas.setTransform(1,0,0,1,width\/2-50,heigh);}<\/span>\r\n<span>\/*canvas.rotate(rotationSpeed*shutter \/ 180 *Math.PI);*\/<\/span>\r\n\r\n<span>shape12(points);<\/span>\r\n\r\n<span>canvas.fillStyle = \"rgba(159, 0, 0, 1)\";\/**\/<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span> <\/span><span>canvas.beginPath();<\/span>\r\n<span>canvas.setTransform(1,0,0,1,width\/2-100,height\/2+of);<\/span>\r\n<span>canvas.rotate(-rotationSpeed*shutter \/ 180 * Math.PI);<\/span>\r\n<span>shape5(points);<\/span>\r\n<span>canvas.fillStyle = \"rgba(209,237,239,0.6)\";<\/span>\r\n<span>\/*\"#FFF8DC\";*\/<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span> <\/span><span> <\/span><span>canvas.beginPath();<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.setTransform(Math.cos(theta), Math.sin(theta), 0, 1, width \/ 2, height \/ 2+of);<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.rotate(rotationSpeed*shutter \/ 180 *Math.PI);<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>shape(points);<\/span>\r\n\r\n<span>canvas.fillStyle=\"#42edf7\"; \/*blue*\/<\/span>\r\n<span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span>canvas.beginPath();<\/span>\r\n<span>canvas.setTransform(1,0,0,1,width\/2+100,height\/2+of);<\/span>\r\n<span>canvas.rotate(rotationSpeed*shutter \/ 180 * Math.PI);<\/span>\r\n\r\n<span>shape3(points);<\/span>\r\n\r\n<span>canvas.fillStyle = \"rgba(55, 220, 199, 0.8)\";\/*ehemals rot*\/<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>canvas.fill();<\/span>\r\n\r\n<span> <\/span><span> <\/span><span>\/*<\/span><span> <\/span><span>canvas.beginPath();<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>circle();<\/span>\r\n<span>canvas.fillStyle=\"blue\";<\/span>\r\n<span>canvas.fill();*\/<\/span>\r\n\r\n<span> <\/span><span> <\/span><span> <\/span><span>shutter = (shutter + 1) % (height+offset);<\/span>\r\n\r\n<span> <\/span><span> <\/span><span> <\/span><span>if (shutter == 0) {<\/span>\r\n<span>setInterval(function(){<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span> <\/span><span>canvas.restore();<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span> <\/span><span>canvas.save();<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span> <\/span><span> }, 5000);<\/span>\r\n<span>\/*rotationSpeed=d3.randomUniform(0.1, 5)();*\/<\/span>\r\n<span> <\/span><span> <\/span><span> <\/span><span>}<\/span>\r\n<span> <\/span><span> <\/span><span>}, 1);<\/span>\r\n<span> <\/span><span>&lt;\/script&gt;<\/span>\r\n<span>&lt;\/body&gt;<\/span>\r\n<span>&lt;\/html&gt;<\/span>\r\n<\/pre>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Mohammad Ali (mohdali) had made a nice illustration of the socalled rolling shutter effect. He wrote a programm in javascript which uses the library d3 called Rolling shutter. This program was used by artist Scriptique to program a kind of &#8220;paint-by-number recreational occupation for your browser&#8221; (as the artist called it). It should display something [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5,4,8,31,6,1,14],"tags":[],"_links":{"self":[{"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/6868"}],"collection":[{"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6868"}],"version-history":[{"count":28,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/6868\/revisions"}],"predecessor-version":[{"id":6898,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/6868\/revisions\/6898"}],"wp:attachment":[{"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.randform.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}