<br />
<b>Warning</b>:  Declaration of Jetpack_IXR_Client::query() should be compatible with IXR_Client::query(...$args) in <b>/home/clients/7267bc096562fcdb78c0ab60d3ac51fb/web/blog/wp-content/plugins/jetpack/class.jetpack-ixr-client.php</b> on line <b>91</b><br />
{"id":787,"date":"2016-02-16T15:05:43","date_gmt":"2016-02-16T15:05:43","guid":{"rendered":"http:\/\/barradeau.com\/blog\/?p=787"},"modified":"2016-02-17T13:01:59","modified_gmt":"2016-02-17T13:01:59","slug":"%d8%b2%d9%84%d9%8a%d8%ac","status":"publish","type":"post","link":"http:\/\/barradeau.com\/blog\/?p=787","title":{"rendered":"Azulejos"},"content":{"rendered":"<p>I just came back from Lisbon, each and every friend of mine told me\u00a0about a\u00a0very enjoyable\u00a0place with lovely people, none of them &#8211; fools ! &#8211; told me about\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Azulejo\">Azulejos<\/a>.<\/p>\n<p>when I unknowingly found the first wall covered\u00a0with them, I thought it was some fancy pants landlord\u00a0trying to show off, but after\u00a0passing in front of dozens of them, covering houses that didn&#8217;t seem especially wealthy, I started realizing that it was a widespread and much alive form of art.\u00a0Azulejos admittedly\u00a0reached their\u00a0finest expression in Portugal,\u00a0Lisbon therefore became a\u00a0playground\u00a0and I started hunting them in the city.<\/p>\n<p>I\u00a0am\u00a0fascinated by islamic patterns, a couple of years ago I tried to understand the <a href=\"http:\/\/barradeau.com\/hidiho\/index2648.html?p=1646\">regular patterns<\/a>, which\u00a0describe the\u00a0sets of operations\u00a0used to cover planar\u00a0surfaces\u00a0with repetitive sets of items.<\/p>\n<blockquote><p>there are 3 groups of regular patterns. they are called after the number and the type of operations that are performed on the <strong>fundamental region<\/strong>:<br \/>\nthe <strong>1,2,3,4,6<\/strong> is the number of operations and very often, the number of rotations, <strong>t<\/strong> stands for Translation, <strong>m<\/strong> for Mirror or Reflection, <strong>g<\/strong> for Glide, <strong>p<\/strong> would be the prefix for the Plane group, and sometimes you get a <strong>c ;\u00a0<\/strong>it\u2019s a staggered version of <strong>m<\/strong>, used only in the plane group.<\/p><\/blockquote>\n<p>so we can use this set of operations to\u00a0create patterns and friezes:\u00a0<strong>1, m, 2, 2mm, 3, 3m, 4, 4mm, 6, 6mm<\/strong><strong>\u00a0t, tg, tm, mt, t2, t2mg,\u00a0t2mm <\/strong>and this set to tile the\u00a0plane:<strong> p1, p2, pm, pg, cm, p2mm, p2mg, p2gg, c2mm, p3, p3m1, p31m, p4, p4mm, p4gm, p6, p6mm<\/strong><\/p>\n<p>azulejos use very simple transformations, mostly rotations around a lattice and translations along with friezes (the lines group).\u00a0that&#8217;s the first picture I\u00a0took<\/p>\n<p><img data-attachment-id=\"789\" data-permalink=\"http:\/\/barradeau.com\/blog\/?attachment_id=789\" data-orig-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/first.jpg\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;1.9&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;SM-G920F&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1454844486&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.3&quot;,&quot;iso&quot;:&quot;40&quot;,&quot;shutter_speed&quot;:&quot;0.0020325203252033&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"first\" data-image-description=\"\" data-medium-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/first-300x300.jpg\" data-large-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/first.jpg\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-789\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/first.jpg\" alt=\"first\" width=\"800\" height=\"800\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/first.jpg 800w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/first-150x150.jpg 150w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/first-300x300.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/first-768x768.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>you can clearly see that the central tile is\u00a0the only thing we need to create the whole pattern.<a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/azulejos.png\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img data-attachment-id=\"790\" data-permalink=\"http:\/\/barradeau.com\/blog\/?attachment_id=790\" data-orig-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/azulejos.png\" data-orig-size=\"1064,709\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"azulejos\" data-image-description=\"\" data-medium-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/azulejos-300x200.png\" data-large-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/azulejos-1024x682.png\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-790 size-full\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/azulejos.png\" alt=\"azulejos\" width=\"1064\" height=\"709\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/azulejos.png 1064w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/azulejos-300x200.png 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/azulejos-768x512.png 768w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/azulejos-1024x682.png 1024w\" sizes=\"(max-width: 1064px) 100vw, 1064px\" \/><\/a><\/p>\n<p>with a fundamental region (A) the first operation is a 4 point rotation around one of the lattices (B), this builds\u00a0a unit cell that is then used with a P1\u00a0transform (C) to cover a\u00a0plane. note that if the feature region is the unit cell, this is the\u00a0P4 plane tiling.<\/p>\n<p>the reason why transformations are rather\u00a0simple\u00a0is probably that\u00a0producing actual tiles is more costly\u00a0than drawing patterns on paper or with a computer. a <em>reflection <\/em>for instance means that you&#8217;ll end up with 2 sets of <em>different <\/em>tiles, some of which may\u00a0not be used as much as the other, or the workers would mistake the patterns as it&#8217;s really hard to tell some patterns apart when they&#8217;re just reflected.<\/p>\n<p>if we\u00a0don&#8217;t use reflection, all the tiles will work interchangeably as only <em>one type of tile<\/em> is required. with a single tileset, the designs can&#8217;t use\u00a0the following transformations:\u00a0<strong>m, 2mm, 3m, 4mm, 6mm,\u00a0<\/strong><strong>tg, tm, mt, t2mg,\u00a0t2mm,\u00a0<\/strong><strong>pm, pg, cm, p2mm, p2mg, p2gg, c2mm, p3m1, p31m, p4mm, p4gm, p6mm\u00a0<\/strong>which &#8211; theoretically &#8211; leaves us\u00a0with:\u00a0<strong>1, 2, 3, 4, 6,\u00a0<\/strong><strong>t, t2, <\/strong><strong>p1, p2,\u00a0p3, p4, p6\u00a0<\/strong>but as the tiles are square (or rectangles for the friezes), we can only use rotations of 90\u00b0 or\u00a0180\u00b0 for the friezes. the same goes for planar tilings ; <strong>P2<\/strong> for instance uses a triangular unit cell\u00a0which is\u00a0not compatible with square tiles.\u00a0removing the impossible settings boils the list down to these 7\u00a0settings: <strong>1,<\/strong>\u00a0<strong>2, 4, <\/strong><strong>t, t2, p1,\u00a0<\/strong><strong>p4<\/strong>.<\/p>\n<p>it might seem few but while\u00a0the tiles&#8217; distribution\u00a0must obey some strict and limited rules, the tiles themselves can\u00a0exhibit the most intricate patterns\u00a0and\u00a0complex symmetries.<\/p>\n<p>and of course there are exceptions!\u00a0this one for instance<\/p>\n<p><img data-attachment-id=\"793\" data-permalink=\"http:\/\/barradeau.com\/blog\/?attachment_id=793\" data-orig-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/P2MM.jpg\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;1.9&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;SM-G920F&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1454930264&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.3&quot;,&quot;iso&quot;:&quot;40&quot;,&quot;shutter_speed&quot;:&quot;0.0059880239520958&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"P2MM\" data-image-description=\"\" data-medium-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/P2MM-300x300.jpg\" data-large-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/P2MM.jpg\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-793\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/P2MM.jpg\" alt=\"P2MM\" width=\"800\" height=\"800\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/P2MM.jpg 800w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/P2MM-150x150.jpg 150w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/P2MM-300x300.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/P2MM-768x768.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>it belongs to the <strong>CM\u00a0<\/strong>plane group, there is no way to obtain this pattern if you don&#8217;t produce\u00a0a <em>mirrored<\/em> set of the original tile.<\/p>\n<p><img data-attachment-id=\"794\" data-permalink=\"http:\/\/barradeau.com\/blog\/?attachment_id=794\" data-orig-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/mirror.jpg\" data-orig-size=\"781,395\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"mirror\" data-image-description=\"\" data-medium-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/mirror-300x152.jpg\" data-large-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/mirror.jpg\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-794\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/mirror.jpg\" alt=\"mirror\" width=\"781\" height=\"395\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/mirror.jpg 781w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/mirror-300x152.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/mirror-768x388.jpg 768w\" sizes=\"(max-width: 781px) 100vw, 781px\" \/><\/p>\n<p>on a side note: this specific tileset\u00a0&#8211;\u00a0like many others in the Alfama\u00a0&#8211;\u00a0was hand-painted, you can see the brush stroke, the variation in the pigment distribution,\u00a0the\u00a0little mistakes done when copying the original pattern\u00a0like\u00a0stroke-width variation, clumsy, unfinished strokes, etc.\u00a0my love I love is an illustrator, and\u00a0I think we &#8211;\u00a0she drew a whole set of those\u00a0&#8211;\u00a0spent a good 30 minutes staring at this wall\u00a0and\u00a0locals must have (rightfully) thought we were crazy.<\/p>\n<p>this specimen is mind boggling and it&#8217;s (by far) the more complex I found, this is the lower right part of it.<\/p>\n<p><img data-attachment-id=\"795\" data-permalink=\"http:\/\/barradeau.com\/blog\/?attachment_id=795\" data-orig-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/complex.jpg\" data-orig-size=\"800,817\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;1.9&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;SM-G920F&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1455453036&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.3&quot;,&quot;iso&quot;:&quot;40&quot;,&quot;shutter_speed&quot;:&quot;0.005&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"complex\" data-image-description=\"\" data-medium-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/complex-294x300.jpg\" data-large-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/complex.jpg\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-795\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/complex.jpg\" alt=\"complex\" width=\"800\" height=\"817\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/complex.jpg 800w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/complex-294x300.jpg 294w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/complex-768x784.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\u00a0it&#8217;s made of 43\u00a0unique tiles:<\/p>\n<ul>\n<li>the center tile (top left) is horizontally and vertically symmetric<\/li>\n<li>2*3 tiles\u00a0are axially symmetric (top row, horizontally &amp; left column, vertically) so they can be reused twice<\/li>\n<li>4*9\u00a0tiles\u00a0(the 9 of\u00a0the bottom right corner)\u00a0have to be mirrored 4 times, once for each\u00a0quadrant<\/li>\n<\/ul>\n<p>each tile is\u00a0hand-painted, this is almost a mural (there are many sophisticated murals made of tiles\u00a0in Lisbon).\u00a0more recent azulejos\u00a0seem to be silk-screen printed,they are more complex, more regular but also less moving in a way.<\/p>\n<p>just before I left, I received a new mobile phone, a samsung S6, and it felt like entering the future ; not only could I take pictures and videos with decent resolutions but I could finally use GPS tags. I thought it would be interesting to map the various areas where I\u00a0took pictures, just to see if a pattern or some kind of spatial relation would emerge.<\/p>\n<p>So I extracted the GPS coordinates of my pictures using this <a href=\"https:\/\/github.com\/exif-js\/exif-js\">handy JS lib Exif.js<\/a>\u00a0which provides the data as Degrees Minutes Seconds like so<\/p>\n<pre class=\"lang:js decode:true \">var img = new Image();\r\nimg.onload = function(e){\r\n\r\n    EXIF.getData( img, function() {\r\n\r\n        var tags = EXIF.getAllTags( img );\r\n        if( tags.GPSLatitude != null &amp;&amp; tags.GPSLongitude != null ){\r\n\r\n            var latsign = 1;\r\n            if( tags.GPSLatitudeRef.charCodeAt(0) == \"S\".charCodeAt(0) ) latsign = -1;\r\n\r\n            var lngsign = 1;\r\n            if( tags.GPSLongitudeRef.charCodeAt(0) == \"W\".charCodeAt(0) ) lngsign = -1;\r\n\r\n            var dtd = degreesToDecimal(     parseFloat( tags.GPSLatitude[0] ) * latsign,\r\n                                            parseFloat( tags.GPSLatitude[1] ),\r\n                                            parseFloat( tags.GPSLatitude[2] ),\r\n                        \r\n                                            parseFloat( tags.GPSLongitude[0] ) * lngsign,\r\n                                            parseFloat( tags.GPSLongitude[1] ),\r\n                                            parseFloat( tags.GPSLongitude[2] ) );\r\n            lat = dtd[0];\r\n            lng = dtd[1];\r\n            coords.push( [img.src, lat, lng] );\r\n        }\r\n    });\r\n};\r\nimg.src = \"yourpic.jpg\";<\/pre>\n<p>the DMS\u00a0to decimal values is done\u00a0<a href=\"https:\/\/www.fcc.gov\/media\/radio\/dms-decimal\">using this handy script<\/a>. from which I got\u00a0this method<\/p>\n<pre class=\"lang:js decode:true\">function degreesToDecimal( dlat, mlat, slat, dlon, mlon, slon ){\r\n\r\n    var latsign = dlat &lt; 0 ? - 1 : 1;\r\n    var lonsign = dlon &lt; 0 ? - 1 : 1;\r\n    \r\n    absdlat = Math.abs( Math.round(dlat * 1000000.));\r\n    mlat = Math.abs(Math.round(mlat * 1000000.)\/1000000);\r\n    absmlat = Math.abs(Math.round(mlat * 1000000.)); \r\n\r\n    slat = Math.abs(Math.round(slat * 1000000.)\/1000000);\r\n    absslat = Math.abs(Math.round(slat * 1000000.)); \r\n\r\n    absdlon = Math.abs( Math.round(dlon * 1000000.));\r\n    mlon = Math.abs(Math.round(mlon * 1000000.)\/1000000);\r\n    absmlon = Math.abs(Math.round(mlon * 1000000));\r\n\r\n    slon = Math.abs(Math.round( slon * 1000000.)\/1000000);\r\n    absslon = Math.abs(Math.round( slon * 1000000.));\r\n    \r\n    alat = Math.round(absdlat + (absmlat\/60.) + (absslat\/3600.) ) * latsign\/1000000;\r\n    alon = Math.round(absdlon + (absmlon\/60) + (absslon\/3600) ) * lonsign\/1000000;\r\n    return [ alat,alon ];\r\n}<\/pre>\n<p>I fed this to\u00a0<a href=\"https:\/\/github.com\/nicoptere\/light-map\">my map API<\/a> using\u00a0the <a href=\"http:\/\/maps.stamen.com\/#toner\/12\/37.7706\/-122.3782\">Stamen Toner<\/a> tileset which\u00a0gave me a first idea<a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/map_4colors.png\" rel=\"attachment wp-att-801\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img data-attachment-id=\"801\" data-permalink=\"http:\/\/barradeau.com\/blog\/?attachment_id=801\" data-orig-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/map_4colors.png\" data-orig-size=\"1024,1024\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"map_4colors\" data-image-description=\"\" data-medium-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/map_4colors-300x300.png\" data-large-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/map_4colors.png\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-801\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/map_4colors.png\" alt=\"map_4colors\" width=\"1024\" height=\"1024\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/map_4colors.png 1024w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/map_4colors-150x150.png 150w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/map_4colors-300x300.png 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/map_4colors-768x768.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a>if you&#8217;ve ever been to Lisbon, the distribution won&#8217;t be much of a surprise ; that&#8217;s the tourist area :)<\/p>\n<p>then I wondered what\u00a0the &#8220;influence zone&#8221; of each azulejo would look like. I first computed the\u00a0Voronoi diagram of the point set <a href=\"http:\/\/www.raymondhill.net\/voronoi\/rhill-voronoi.html\">using this lib<\/a> which gave this map\u00a0(interactive)<\/p>\n<p><iframe loading=\"lazy\" width=\"100%\" height=\"600\" src=\"http:\/\/www.barradeau.com\/projects\/azulejos\/map.html\"><\/iframe><\/p>\n<p>finally I wanted a kind of <em>mosaic of\u00a0patterns<\/em>\u00a0so\u00a0I\u00a0created a texture of all the pictures I\u00a0had<\/p>\n<p><a href=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/texture_9_9.jpg\" rel=\"attachment wp-att-808\" data-rel=\"lightbox-image-2\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img data-attachment-id=\"808\" data-permalink=\"http:\/\/barradeau.com\/blog\/?attachment_id=808\" data-orig-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/texture_9_9.jpg\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"texture_9_9\" data-image-description=\"\" data-medium-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/texture_9_9-300x300.jpg\" data-large-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/texture_9_9.jpg\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-808\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/texture_9_9.jpg\" alt=\"texture_9_9\" width=\"800\" height=\"800\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/texture_9_9.jpg 800w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/texture_9_9-150x150.jpg 150w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/texture_9_9-300x300.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/texture_9_9-768x768.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>and used it to paint\u00a0the voronoi cells with their own texture to obtain this interactive mosaic<br \/>\n<iframe loading=\"lazy\" width=\"100%\" height=\"600\" src=\"http:\/\/www.barradeau.com\/projects\/azulejos\/azulejos.html\"><\/iframe><\/p>\n<p>here are some screenshots in case the demo\u00a0is broken<\/p>\n<p><img data-attachment-id=\"810\" data-permalink=\"http:\/\/barradeau.com\/blog\/?attachment_id=810\" data-orig-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot8.jpg\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"screenshot8\" data-image-description=\"\" data-medium-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot8-300x300.jpg\" data-large-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot8.jpg\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-810 size-full\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot8.jpg\" alt=\"screenshot8\" width=\"800\" height=\"800\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot8.jpg 800w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot8-150x150.jpg 150w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot8-300x300.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot8-768x768.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p><img data-attachment-id=\"812\" data-permalink=\"http:\/\/barradeau.com\/blog\/?attachment_id=812\" data-orig-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot10.jpg\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"screenshot10\" data-image-description=\"\" data-medium-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot10-300x300.jpg\" data-large-file=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot10.jpg\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-812 size-full\" src=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot10.jpg\" alt=\"screenshot10\" width=\"800\" height=\"800\" srcset=\"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot10.jpg 800w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot10-150x150.jpg 150w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot10-300x300.jpg 300w, http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot10-768x768.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>lovely ain&#8217;t it? actually I thought an overall pattern would emerge but no luck, or maybe there is\u00a0something obvious\u00a0and I don&#8217;t know enough of Lisbon&#8217;s history\/culture to read it. anyway this helped me understand that 74 pictures is way\u00a0too\u00a0few to meaningfully represent anything of a city,\u00a0at least it was a fun little exercise :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I just came back from Lisbon, each and every friend of mine told me\u00a0about a\u00a0very enjoyable\u00a0place with lovely people, none of them &#8211; fools ! &#8211; told me about\u00a0Azulejos. when I unknowingly found the first wall covered\u00a0with them, I thought it was some fancy pants landlord\u00a0trying to show off, but after\u00a0passing in front of dozens &#8230; <span class=\"more\"><a class=\"more-link\" href=\"http:\/\/barradeau.com\/blog\/?p=787\">[Read more&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":812,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"sharing_disabled":false,"spay_email":"","jetpack_publicize_message":""},"categories":[3],"tags":[],"jetpack_featured_media_url":"http:\/\/barradeau.com\/blog\/wp-content\/uploads\/2016\/02\/screenshot10.jpg","jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/p4oXhx-cH","_links":{"self":[{"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/787"}],"collection":[{"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=787"}],"version-history":[{"count":18,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/787\/revisions"}],"predecessor-version":[{"id":792,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/787\/revisions\/792"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=\/wp\/v2\/media\/812"}],"wp:attachment":[{"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=787"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/barradeau.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}