tag:blogger.com,1999:blog-84389163088345412942024-03-17T22:33:20.798-07:00Office chair philosophyThis is a set of random ideas that just want to jump out of my head and onto the internet. Who knows whether office chair philosophy is any more credible than arm chair philosophy, but you decide, and let me know.TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.comBlogger86125tag:blogger.com,1999:blog-8438916308834541294.post-28849802752813496442024-03-05T19:54:00.000-08:002024-03-05T22:33:17.628-08:00A tree-solid<p>A tree-solid is a scale-symmetric shape which is a tree (acyclic, no holes) but fills the full area of space.</p><p>It is the set complement of a void-tree which is what we usually call fractal trees. So people usually just make fractal trees like the Vicsek fractal:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMWyGsOJa8btMhnG4B1hz-MeoHYHG-DvEOulmGDyVAcCx5As03Bhs3_EWVJXTR0M7OjnPMU9gQZvWQZr0El4lT4h2Lg5oqr60GQT_JB4XLBqwrDbFasQmKgDA8kA9K2cjWv7EM5jXmw2rVpbETmmWFQH_9i56ABgsRPC2ANIBQgIYBWqHS25maus095yOM/s768/Box_fractal.svg.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="768" data-original-width="768" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMWyGsOJa8btMhnG4B1hz-MeoHYHG-DvEOulmGDyVAcCx5As03Bhs3_EWVJXTR0M7OjnPMU9gQZvWQZr0El4lT4h2Lg5oqr60GQT_JB4XLBqwrDbFasQmKgDA8kA9K2cjWv7EM5jXmw2rVpbETmmWFQH_9i56ABgsRPC2ANIBQgIYBWqHS25maus095yOM/w200-h200/Box_fractal.svg.png" width="200" /></a></div>But making one primarily as a tree-solid makes you consider the shape of the solid regions it is built off. In the case of this post, it is disks.<div><br /></div><div>To make a tree from disks they must overlap, so the shape is an overlapping disk packing, with the overlaps in a tree topology.</div><div><br /></div><div>If is possible to make it with any intersection angle between the disk and its parent, but I used 90 degrees, which is half way between the two extremes:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhduX17NIDvM8UNX1EPlTwGRG_A0kBJO6r7XMSFyBPAr_bOwPMQo2uRUDVtjPf2DSALEiCqY2pKMDHTN8U2-DekcNyRf5Kq9Fedbyw2GO2sJl9nAXuDU7uzTJSBaq1WoppdQ9uMJZz3SepqLcxJRlNJWZKxEdDNVjQ_HY1Qm1XLT3VQhNZSP7isnhiea3j/s2048/circs1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="2048" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhduX17NIDvM8UNX1EPlTwGRG_A0kBJO6r7XMSFyBPAr_bOwPMQo2uRUDVtjPf2DSALEiCqY2pKMDHTN8U2-DekcNyRf5Kq9Fedbyw2GO2sJl9nAXuDU7uzTJSBaq1WoppdQ9uMJZz3SepqLcxJRlNJWZKxEdDNVjQ_HY1Qm1XLT3VQhNZSP7isnhiea3j/s320/circs1.png" width="320" /></a></div>You can probably just make out the disks that it is build from.<div><br /></div><div>Another way to arrange part of this structure looks more like the Vicsek fractal:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEehMF1dTR9SyXQqI4wSWlDmxHSz9jNnZvNKj70JZrEZMmzUGJoVCHdbN1q92Y6-epwAcYPLeCR-vmBnEQhGMsQXHxUWsieoRyzPOF5KrFX_mmeg-cLukUzxwk7hpdX2KKyBUBa6DnqzF08xIZGG85JoVvrD-u0K42CjGFSC86MZ2yb96jEUOSfWWYnQ3r/s2048/circs2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="2048" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEehMF1dTR9SyXQqI4wSWlDmxHSz9jNnZvNKj70JZrEZMmzUGJoVCHdbN1q92Y6-epwAcYPLeCR-vmBnEQhGMsQXHxUWsieoRyzPOF5KrFX_mmeg-cLukUzxwk7hpdX2KKyBUBa6DnqzF08xIZGG85JoVvrD-u0K42CjGFSC86MZ2yb96jEUOSfWWYnQ3r/s320/circs2.png" width="320" /></a></div>To see the circles more easily in the first image we can colour them according to which iteration they were on:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuAxrIpXahIub8XiigN6XFCzVcENVoHVcqObm_6mdFF8r5-qJa7Osmv-85WFJqZwYnKGpS_IEOa1uqlPi_vf09JMw64tbhLZfuJOlzLAPyrzoFHSAzw46VTAjL5mEwL_xqb12GcwYmoRDwIhxA0IEfIyy7thIptSK-Hx0_ghmZDGUh896VqG8zF5NyQCxZ/s2048/circs3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="2048" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuAxrIpXahIub8XiigN6XFCzVcENVoHVcqObm_6mdFF8r5-qJa7Osmv-85WFJqZwYnKGpS_IEOa1uqlPi_vf09JMw64tbhLZfuJOlzLAPyrzoFHSAzw46VTAjL5mEwL_xqb12GcwYmoRDwIhxA0IEfIyy7thIptSK-Hx0_ghmZDGUh896VqG8zF5NyQCxZ/s320/circs3.png" width="320" /></a></div>Same for the second variant:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS4uo7qOPQkEsP2xw8LT3gZsL4197jFft7tHX-nvN_4u8AD0L37TpUrRAJD2QhoWIp3RDdP7Mur5bSGN1RuvYiNFcqEOKUvklxeEFC_20qYngLeNRMGm0sFGk-SgfrIHIhqG8soBVD1CDNW5z8ooovjbzHTwaPNBteRS3_kcFkGne8Fmrjau3Q_oX4dEy6/s2048/circs4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="2048" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS4uo7qOPQkEsP2xw8LT3gZsL4197jFft7tHX-nvN_4u8AD0L37TpUrRAJD2QhoWIp3RDdP7Mur5bSGN1RuvYiNFcqEOKUvklxeEFC_20qYngLeNRMGm0sFGk-SgfrIHIhqG8soBVD1CDNW5z8ooovjbzHTwaPNBteRS3_kcFkGne8Fmrjau3Q_oX4dEy6/s320/circs4.png" width="320" /></a></div>which can be rotated:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2gemL-yD3B3l72IYR7xC56jKIWq1AKLC726zPJNx4RhYRnHlPqt2rY1jOEJWtmhdYxkqzhL21cMTFUh5YgaDsC5CSF6GaumpWB7h52pFmZYKNpIaZ1qKJPaQSNmVa3gmA9dQkLrTnhDq0Wdxsmo3w2v5AbFlfYY4H9vZECHV1x4eeVj7I_H6qthc_qBUW/s1452/circs5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1452" data-original-width="1452" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2gemL-yD3B3l72IYR7xC56jKIWq1AKLC726zPJNx4RhYRnHlPqt2rY1jOEJWtmhdYxkqzhL21cMTFUh5YgaDsC5CSF6GaumpWB7h52pFmZYKNpIaZ1qKJPaQSNmVa3gmA9dQkLrTnhDq0Wdxsmo3w2v5AbFlfYY4H9vZECHV1x4eeVj7I_H6qthc_qBUW/s320/circs5.png" width="320" /></a></div><br /><div>The reason I made this structure is that I'm looking into whether there is a 3D equivalent. This would be a tree-solid, or visualised as its complement: a void-shell. This is a lot harder to make, and may not be possible.</div><div><br /></div><div>FYI, the limit of both of these variants as the intersection angle decreases to zero is the non-overlapping disk packing here:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRRH52kqGeeKaABb32JdptLYlV_eMfv1VCMrwdlHb9-_7r_edgppKKYwLRtRdoeoQ7qiiJ9nMtHghzwSOdGZeU92H6j5bCWMdwC6Vzemi9cD1gX-7hG9UO27-QduPWhUFd5tyK95gVQhAwUODOyrwhsC0H-VtfnvNT9jg74CJ8mmTCheMo8X1Uq-efegtF/s439/packing.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="431" data-original-width="439" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRRH52kqGeeKaABb32JdptLYlV_eMfv1VCMrwdlHb9-_7r_edgppKKYwLRtRdoeoQ7qiiJ9nMtHghzwSOdGZeU92H6j5bCWMdwC6Vzemi9cD1gX-7hG9UO27-QduPWhUFd5tyK95gVQhAwUODOyrwhsC0H-VtfnvNT9jg74CJ8mmTCheMo8X1Uq-efegtF/s320/packing.png" width="320" /></a></div><br /> <br /><div><br /><div><br /><div><br /><div><br /><p><br /></p></div></div></div></div></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-59146539113064286112024-02-29T03:34:00.000-08:002024-02-29T03:34:42.344-08:00A democracy problem<p>This idea follows from my last post about dinosaurs funnily enough. It relates to a common problem in democracies called the <a href="https://en.wikipedia.org/wiki/Tyranny_of_the_majority#:~:text=The%20tyranny%20of%20the%20majority,those%20of%20the%20minority%20factions.">tyranny of the majority</a>. This may sound like a strange term because surely having a government that reflects the majority opinion in a country is a good thing. But in fact it is problematic.</p><p>Let's take an example where 60% of a country is Christian and 40% is Muslim. In one general election we would expect a party with Christian-aligned policies to gain power. This is a reasonable outcome for a single election.</p><p>But over the period of 100 general elections, there is a good chance that all of them will be won by a Christian-aligned party, since 60-40 is a very large majority in politics. This leads to frustration by the minority population, disillusion, and instability.</p><p>The problem hinges on the fact that:</p><p>mean({a,b,c,..}) <span style="background-color: white; color: #202122; font-size: 14px;">≠ </span>{mean(a), mean(b), mean(c), ...}</p><p>Where mean() and a,b,c can refer to many more aspects of democracy. For instance, mean(x) could be </p><p></p><ul style="text-align: left;"><li>the winning party in electorate x. </li><li>the elected party for each election year x.</li><li>majority vote for each bill x.</li></ul><p></p><p>In each case the fallacy is that a set of "mean" opinions is sufficient to be a mean set of opinions. </p><p>But these are not the same thing. A set of mean opinions lacks the diversity that should exist in a mean set of opinions. </p><p>For example, if each consistuency has a range of views on retirement age from 55-75, with the mean at 65, then the MPs representing the mean view of the consituencys will *all* vote for 65 as the retirement age. It will appear as though the country is united. If you are a subculture that occupies 10% of the vote wanting a retirement age of 55, none of the 200 MPs will be representing your view.</p><p>Ideally, a mean set of retirement ages that reflect the constituencies should have a diversity of views from 55-75. And a correct mean set does indeed reflect this diversity. But you cannot calculate it just by taking the set of the individual means.</p><p>It is interesting that this problem has been acknowledged, and some countries, such as New Zealand, use proportional representation to alleviate this problem. In this case 10% of the MPs will reflect the 10% of the population supporting 55 year old retirement. </p><p>When the proportion is the same across districts, this is exactly what the 'mean set' gives (see last post), for distinct classes like parties, where the mean naturally becomes a mode.</p><p>However, when the proportion varies across districts, we get something different to standard proportional representation. </p><div>For example, what if the proportion of a and b are 20% and 80% in France and 60% and 40% in Spain, and your representative set is one from element from France and one from Spain?</div><div><br /></div><div>In this case, if the order is France,Spain then (a,a) has chance 0.12, (a,b) has chance 0.08, (b,a) has chance 0.48 and (b,b) has chance 0.32. Then with order symmetry, the chance of {a,a} is 0.12, {a,b} is 0.56 and {b,b} is 0.32. So {a,b} is the mean set. This is different than if we just added up all the probabilities to give 40% for a and 60% for b, then you would get 0.48 for {a,b}.</div><div><br /></div><div>This is a proportional representation of the views of each of the constituencies, rather than a proportional representation of overall votes. It includes the individual constituency view back into the result. </div><div><br /></div><div>There are a million different PR schemes, so it would be interesting to see if this is one of them, or how it compares.</div><div><br /></div><div>As mentioned in the bullets earlier, it would also make sense to use mean sets over multiple general elections. So if one party always gets 10% of the vote then over 10 elections it will get in once.</div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-64752554009664256282024-02-24T03:31:00.000-08:002024-02-28T19:39:42.455-08:00Mean dinosaurs<p>There is a phenomenon about dinosaurs that seems interesting to explore. If you look at a poster of dinosaurs you'll notice that none of them have wattles, or extreme features like peacocks, or trunks or frill-necks or fleshy crests. In fact none of them are old or have a broken arm, none are overweight or missing a limb etc. This is odd because you would expect to see these characteristics occasionally, but in a collage of 100 dinosaurs you don't see any.</p><p>What's going on is that each dinosaur is individually reconstructed to be the best estimate from the data, moreover, each archetype is chosen to essentially be the average of all individuals of that species. So it has average age, average weight, and from our knowledge of that species it is unlikely to have any of the unusual features, so these are left out. Let's use the word mean(x) to be this best-guess average for that species.</p><p>This is well and good for the individual species, but when we present a set of dinosaurs we can't just use the mean for each species. We unconsciously ignore the fact that: </p><p>mean({T-rex, triceratops, diplodicus, ..}) <span face="sans-serif" style="background-color: white; color: #202122; font-size: 14px;">≠</span>{mean(T-rex), mean(triceratops), mean(diplodicus), ..}</p><p>An average set of dinosaurs is not the same as the set of average dinosaurs. I'll show that this is related to averages over spaces with symmetries, so putting it in the same category as my <a href="https://sites.google.com/site/tomloweprojects/average-things">previous 'mean xxx' posts</a>.</p><h3 style="text-align: left;">Height</h3><p>To explore this, let's start with a simpler case, a single species T-rex and a single characteristic, such as height. If we want to represent a single T-rex then using its mean height is the sensible choice. OK maybe we should use the modal height, or median height, or some other average, but for simplicity let's just use means. The same ideas apply, probably more so, for the other, less linear averages.</p><p>If however we want to show a set of two T-rex's, then both having mean height is not the average height distribution for that set. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCZ7LvCfZalM4cdfpkWYVOwJFDXFkQFOHRCWU2O4dA1r9XkwOE9cAzJNB-C1DooROtrV4fb07CutbFrjAGNTJ2DyHj9WX6dBZ78e9WYncXSdBiG-gzQccPb2PRkncUSussWvk8FwYQKcZYHCkkdqRcbk7y1cGnNAsUdfJ507bMhMgnh2l6RDPC6XPWjGxE/s864/heights.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="576" data-original-width="864" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCZ7LvCfZalM4cdfpkWYVOwJFDXFkQFOHRCWU2O4dA1r9XkwOE9cAzJNB-C1DooROtrV4fb07CutbFrjAGNTJ2DyHj9WX6dBZ78e9WYncXSdBiG-gzQccPb2PRkncUSussWvk8FwYQKcZYHCkkdqRcbk7y1cGnNAsUdfJ507bMhMgnh2l6RDPC6XPWjGxE/s320/heights.png" width="320" /></a></div>Here the mean height is 175cm (not a real T-rex! diagram from google) and the distribution of heights is approximately normal, with one standard deviation being 7 cm. <p></p><p>It might be tempting to think that if you sample two T-rex's from the distribution, they will have on average heights 168 and 182 cm, i.e. plus and minus one standard deviation. This is not right.</p><p>You might also choose the two points shown in dark red, which are the half-way area points for the top and bottom half of the normal distribution. These are roughly 0.7979 standard deviations. This is also not right. </p><p>The way to solve this is to take the 2D distribution of the two T-rex heights, and note that the two T-rex's are interchangeable, so rather than a 2D Euclidean space, it is a topological space with reflection symmetry on the diagonal; it identifies point pairs (x,y)=(y,x). This is a valid space on which to find a mean 2D point:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhre27HpDg_FcfpclBlJkhbrHiKu0zEv86_cRVjo6JxH3f3V0bZhaPAAKHyube6Hpy30vUnSyti3bfScNgiX3vghhi4YaoO9GUF_CTXsUTgESSGpFv1mQS4FF_v1C-zGH6z5tXGghHkRovVCJ-Dp49jSJ287eVtOP9cCJl4PBVPcaWw6t5wxN7E4JZUgDif/s210/popup_1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="207" data-original-width="210" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhre27HpDg_FcfpclBlJkhbrHiKu0zEv86_cRVjo6JxH3f3V0bZhaPAAKHyube6Hpy30vUnSyti3bfScNgiX3vghhi4YaoO9GUF_CTXsUTgESSGpFv1mQS4FF_v1C-zGH6z5tXGghHkRovVCJ-Dp49jSJ287eVtOP9cCJl4PBVPcaWw6t5wxN7E4JZUgDif/s1600/popup_1.png" width="210" /></a></div>Here we see the 2D normal distribution for the two dinosaur heights, and the mirror symmetry down the magenta diagonal. As a consequence of this symmetric space, the mean 2D point is shown in magenta. Its value is sqrt(0.5) of the mid-area value, which is 0.564 standard deviations:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHmeHhpaxzNuAPpBw2cItbctyWrwtvyyNjtwawHLD77oWvOmeEgmRMsWdQ8TRDxM5LzIEgHJ6f_O3bDmH3mVSxYwbceOhYOnrxQpoLPjc5WTRxDrmNUZ1VsQGrnX-jQMkAQv0c8iFQV93TAA_VGdNKP3d74Se8y4rgR19Gl2DMqACp52Xq-lDVPswzQZzR/s864/heights.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="576" data-original-width="864" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHmeHhpaxzNuAPpBw2cItbctyWrwtvyyNjtwawHLD77oWvOmeEgmRMsWdQ8TRDxM5LzIEgHJ6f_O3bDmH3mVSxYwbceOhYOnrxQpoLPjc5WTRxDrmNUZ1VsQGrnX-jQMkAQv0c8iFQV93TAA_VGdNKP3d74Se8y4rgR19Gl2DMqACp52Xq-lDVPswzQZzR/s320/heights.png" width="320" /></a></div>If we had three T-rexs on our poster then the mean set of heights could be found in a similar way by taking Euclidean space R3 but with the order symmetries (x,y,z)=(y,x,z)=(x,z,y)=(y,z,x)=(z,x,y)=(z,y,x).<div>In general can calculate the height for n T-rex's by sampling an n-dimensional normal distribution, sorting the elements in order, then taking the average over all ordered samples. Here are the sets for n = 1 up to 5, in standard deviations:<div>n:</div><div>1 {0}</div><div>2 {-0.564, 0.564}</div><div>3 {-0.84, 0, 0.84}</div><div>4 {-1.03, -0.297, 0.297, 1.03}</div><div>5 {-1.16, -0.495, 0, 0.495, 1.16}</div><div><div>You would of course multiply these by the standard deviation and add the mean, in order to get the correct mean set of T-rex heights.</div><div><br /></div><div>Additionally, this approach is not just for normal distributions, it can apply to any distribution.<br /><div><br /></div><div><h3 style="text-align: left;">Height and width</h3><div>What if we have two characteristics? For a single T-rex we simply use the mean height and mean length identified for that species. For a set of two T-rex's we have a 4D distribution function. The height and width are clearly interdependant characteristics, so is not just the product of the two individual distributions. That is fine. </div><div><br /></div><div>We then introduce the ordering symmetry (x<span style="font-size: x-small;">h</span>,x<span style="font-size: x-small;">w</span>, y<span style="font-size: x-small;">h</span>,y<span style="font-size: x-small;">w</span>) = (y<span style="font-size: x-small;">h</span>,y<span style="font-size: x-small;">w</span>, x<span style="font-size: x-small;">h</span>,x<span style="font-size: x-small;">w</span>), and find the mean 4D point, which is the weighted mean coordinate, weighted by the probability density at each coordinate.</div><div><br /></div><div>At this point things get interesting. A mean on a non-Euclidean space is a different sort of beast. You can find it by randomly sampling the (4D) probability distribution, then choosing the closest ordering to the running average before adding it on. For the 2D case above this tends to a single result (or its reverse ordering), in 4D there is a remaining symmetry, that gets broken by this process. The result is a mean 4D point that changes each time you find the mean value.</div><div><br /></div><div>As a result, your mean value (representing a set of two T-rex height and widths) itself follows a distribution. </div><div><br /></div><div>When the two distributions are uncorrelated and equal, the mean set is a uniform circular distribution around the mean, of radius 0.564, offset 0.564(sin a, cos a) with the other dinosaur in the set having offset 0.564(-sin a, -cos a). With a resulting from spontaneous symmetry breaking to a different angle each time the mean set is calculated.</div><div><br /></div><div>If the two distributions are correlated, then the mean set distribution will be non-circular, and in fact elliptical if the distributions are a simple multivariate Gaussian. For highly correlated characteristics this random angle a will tend to give an offset in the long axis, giving consistent results each time it is calculated, in particular:</div><div><br /></div><div>If height and length are positively correlated (as they usually are) then the distribution of means clusters around a set which is one short,narrow T-rex and one tall,wide T-rex. </div><div><br /></div><div>If height and length are negatively correlated, then the distribution of means clusters around one short, wide T-rex and one tall,narrow T-rex.</div><div><br /></div></div></div><div>If there are three T-rex's in the set then the mean set still is a distribution over the (width,length) direction angles. But unlike the single-characteristic case, the three (width,length) vectors are not in a line. For equal unit sigma Gaussians, a calculated mean set is {(0.33,0.707), (-0.78,-0.06), (0.44,-0.647)}. This distribution of the variation onto the 3 dinosaurs is rotated each time it is calculated, with the sum of the squares of the values always being 1.84. These three points, as you might have guessed, form an equilateral triangle.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSB3GAYrgpIJRotUWNVkObk2KjrHIlBah8GzKv_hudi1Q_W0bV_3J8g0dh-uw6WcQS54ooNvQAX_CgBygcNw0ISGEP7kW0APCBL64uGOI0IHFhSPs9lISQCWfwq3McB46Y6L2NHJ9NKNVHZ_iJ_qVvz0UNhkhPm-w1iMqJ29UNbmhlnvEm70KTsmYBe9WJ/s287/Gaussian.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="287" data-original-width="277" height="287" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSB3GAYrgpIJRotUWNVkObk2KjrHIlBah8GzKv_hudi1Q_W0bV_3J8g0dh-uw6WcQS54ooNvQAX_CgBygcNw0ISGEP7kW0APCBL64uGOI0IHFhSPs9lISQCWfwq3McB46Y6L2NHJ9NKNVHZ_iJ_qVvz0UNhkhPm-w1iMqJ29UNbmhlnvEm70KTsmYBe9WJ/s1600/Gaussian.png" width="277" /></a></div><span style="font-size: x-small;">Above: width,height values for set of 3 T-rex's, with the standard deviation for the covariance in red.</span><br /><div><br /></div><div>In general, the mean set of m characteristics for n T-rex's distributes the n points over the m-dimensional ellipsoid of the distribution (or other shape), up to a rotation in m-dimensional space.</div><h3 style="text-align: left;">Species</h3><div>Instead of characteristics, what if we have a known list of species with probabilities of occuring, and we wish to represent that as well as possible with a set of just two dinosaurs?</div><div><br /></div><div>For independent classes like this, we have to use the mode rather than mean value. This is not just a big change, we already have integer means that round to the nearest integer, and integer weighted means. The mode is just a weighted mean like this, but for the n classes placed at the corners of an n-simplex.</div><div><br /></div><div>Imagine the probability of spotting a T-rex is 50% and a triceratops is 50%, then to find the modal set {a,b} you have four possibilities: {T-rex, T-rex}, {T-rex, Triceratops}, {Triceratops, T-rex} and {Triceratops, Triceratops}, each with 1/4 likelihood.</div><div><br /></div><div>But the middle two are equivalent in a set, so the {T-rex, Triceratops} set has twice the likelihood of the other two. </div><div><br /></div><div>This means that the modal set is {T-rex, Triceratops}. </div><div><br /></div><div>Even if the percentages are 66%, 34%, the modal set still contains one of each. Any fewer Triceratops and the modal set would be just two T-rex's.</div><div><br /></div><div>For sets of three from two dinosaurs you have the options {a,a,a},{a,a,b},{a,b,a},{a,b,b},{b,a,a},{b,a,b},{b,b,a},{b,b,b}. But with the order symmetry there are only: {a,a,a},3{a,a,b},3{a,b,b},{b,b,b} with the relative likelihoods expressed with those coefficients. As a result now even if the Triceratops has probability 25.1%, it will appear in the set of 3 dinosaurs. </div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5mYbxNoOkp_7ixHBcEp-csFqEJcuHgC7EWfKk0ZtUuzoDpdwfQInQOWpT4nRnzvC6FaJPWVVs9UpgNmCPxoNp6OzD5_vuFfy4KPPpAIwpVHeC-8ZJvYfD2F71mfRMrjWTYgjwDh7UDwdfpeTOmB2Kb2z7VIuaI2CkFW1YC11UERZ9rZGaENZR4W-2ZXjl/s246/rect.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="84" data-original-width="246" height="84" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5mYbxNoOkp_7ixHBcEp-csFqEJcuHgC7EWfKk0ZtUuzoDpdwfQInQOWpT4nRnzvC6FaJPWVVs9UpgNmCPxoNp6OzD5_vuFfy4KPPpAIwpVHeC-8ZJvYfD2F71mfRMrjWTYgjwDh7UDwdfpeTOmB2Kb2z7VIuaI2CkFW1YC11UERZ9rZGaENZR4W-2ZXjl/s1600/rect.png" width="246" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;">Above: relative proportion of T-rex (b) with the mean set below it. </span></div><div>This generalises to n set elements using the Pascal's triangle pattern. The result is that the sets distribute evenly over the possible relative proportions of the two dinosaurs. </div><div><br /></div><div>If there is a third dinosaur involved, and the mean set has three elements, then they have the following weightings: 1{a,a,a},3{a,a,b},3{a,b,b},1{b,b,b},3{a,a,c},3{a,a,c},1{c,c,c},3{b,b,c},3{b,c,c},1{c,c,c},6{a,b,c}. The result of this weighting is that the sets distribute evenly over the space of relative proportions of the three dinosaurs, which is a triangular space:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPGQaUDnSAvz_s6KstEQqUNR8cCQkqVauZxY3PSk0KHXkFhuo_4Ht-pV69yK_gDkdYXQ9N64We0P8Tqi7JrcgSy6yTERqR1_x810z49aDivZ7GuPu0F_Z7Ydr4_eM9_CL4Y2UJHJiVriz3-G7MPACYYand7AV6jFKgU0FpBD1e7V1JkzQSSNJ0gCOiKKrj/s251/triangle.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="205" data-original-width="251" height="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPGQaUDnSAvz_s6KstEQqUNR8cCQkqVauZxY3PSk0KHXkFhuo_4Ht-pV69yK_gDkdYXQ9N64We0P8Tqi7JrcgSy6yTERqR1_x810z49aDivZ7GuPu0F_Z7Ydr4_eM9_CL4Y2UJHJiVriz3-G7MPACYYand7AV6jFKgU0FpBD1e7V1JkzQSSNJ0gCOiKKrj/s1600/triangle.png" width="251" /></a></div>The mean set is therefore a <i>proportional representation</i> of the dinosaur weights. I fully expect the generalisation to n dinosaurs and m members of the set, to be a proportional representation.</div><div><br /></div><div><h3 style="text-align: left;">Species with characteristics</h3><div>What if we have a T-rex with a height distribution and a Triceratops with a different height distribution function? This becomes a hybrid of the discrete and continuous methods. </div><div><br /></div><div>First we look at the total probability (the area under the probability density function) for the two dinosaurs. These are our probabilities that will decide whether the mean set will be {a,a}, {a,b} or {b,b}. </div><div><br /></div><div>Then, let's say it is {a,b} and heights x,y, we generate the 2D probability distribution function P(x,y) = Pa(x)Pb(y) + Pb(x)Pa(y) (the sum here due to the {a,b}={b,a} symmetry).</div><div><br /></div><div>The centroid of this combined probability distribution gives you the height of the dinosaur a (x) and dinosaur b (y) to give the mean set {(a,x), (b,y)}. However, this mean set is itself a distribution, with some percentage also being {(b,x),(a,y)} depending on the relative total probabilities in the sum above.</div><div><br /></div><div>If the T-rex is usually tall and the Triceratops usually short, then this will give an essentially singular mean set {(T-rex, tall), (Triceratops, short)} as expected. If they have the same distribution then there are two equally possible mean sets {(T-rex,mean+k),(Triceratops,mean-k)} or {(T-rex,mean-k),(Triceratops,mean+k)}.</div><h3 style="text-align: left;">General characteristics</h3><div>If dinosaurs characteristics are highly correlated to their species, then your representative set mean{a,b,c} really is close to {mean(a), mean(b), mean(c)}. For example, if it was a microraptor, T-rex and brachiosaurus and the characteristics were height and neck length, then the set {mean{microraptor}, mean{T-rex}, mean(brachiosaurus)} is representative.</div><div><br /></div><div>If however the characteristics are more uncorrelated with the species and with each other, then the mean set itself has a distribution of values, and your best strategy is to sample one at random. This is the case for things like 'contains a wattle', 'is overweight', 'is old', 'has a broken arm'. They all could happen to any species, and are uncorrelated with each other. </div><div><br /></div><div>So in this case your pair of dinosaurs should sample at a calculated k (Mahabolonis distance) from the mean, and produce the pair which are the equal and opposite from the mean in this random direction. </div><div><br /></div><div>Generalising to n dinosaurs in the set, the n dinosaurs sample n representative points in terms of sigmas (Mahabolonis space) from the mean, in a random direction.</div><div><br /></div><div>This mean that sets of dinosaurs recover the variety of characteristics that are not evident in the {mean(a), mean(b), mean(c), ...} set.</div><div><br /></div><h3 style="text-align: left;">In Short</h3><div>Anyone who depicts a representative set of dinosaurs by using individual mean dinosaurs, is only correct when their characteristics are strongly correlated to the species and with each other. </div><div><br /></div><div>For more uncorrelated characteristics, larger sets are increasingly poor representations, and lack the diversity that they should show. </div><div><br /></div><div>We often see posters of dinosaurs where they are all the same age, all uninjured, none with unexpected fleshy features, etc etc. This all comes down to missing the key fact that:</div><div><br /></div><div> <b>mean({a,b,c,...}) <span style="background-color: white; color: #202122; font-size: 14px;">≠ </span>{mean(a), mean(b), mean(c), ...}</b></div></div></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-81609743927544933482024-01-21T02:50:00.000-08:002024-03-17T22:32:49.138-07:00Mean Transformations<p><a href="https://tglad.blogspot.com/2020/11/mean-polyhedrons.html">A while back</a> I looked at mean polyhedrons and said that the mean cuboid should have sides of length (2,5,11) or (1,2.5,5.5).</p><p>A different way to estimate a shape's principle dimensions is to represent it by a random transformation of a sphere by a transformation matrix M. The eigenvalues of that transformation then give the principle dimensions of the resulting ellipsoid. This can be done in any number of dimensions and just requires a decision on what a random nxn matrix should look like. </p><p>If seems to me that what I should really do is treat it as a n^2 length vector with equal likelihood of pointing in any direction. This is easily achieved by sampling each vector element from a N(0,1) normal distribution, then normalising the vector.</p><p>I then order the eigenvalues by their absolute value and average them over 300,000 randomly sampled vectors representing the matrix M. The resulting shape dimensions for each number of dimensions is:</p><p>1: 1</p><p>2: 1, 2.34, </p><p>3: 1, 2.70, 4.41 </p><p>4: 1, 2.393, 4.23, 6.04</p><p>5: 1, 2.532, 4.096, 6.130, 8.16</p><p>6: 1, 2.412, 4.06, 5.67, 7.77, 9.90,</p><p>7: 1, 2.486, 4.02, 5.774, 7.475, 9.705, 12.0</p><p>8: 1, 2.417, 4.00, 5.557, 7.35, 9.084, 11.371, 13.731</p><p>9: 1, 2.464, 3.99, 5.65, 7.27, 9.14, 10.95, 13.33, 15.82</p><p>10:1, 2.420, 3.98, 5.524, 7.214, 8.856, 10.756, 12.61, 15.04, 17.61</p><p><br /></p><p>A few interesting things to note:</p><p>1. The pattern is not simple, the second extent for example oscillates, perhaps converging towards 2.44 somewhere.</p><p>2. The third extent however just decreases, converging towards 3.95 perhaps</p><p>3. The fourth extent also oscillates, the fifth decreases and the sixth oscillates... do only the even extents oscillate?</p><p>4. They all seem to converge, suggesting that there is a value for the infinite dimensional shape. </p><p>5. The shape is quite different to the previous mean ellipsoid for the 3D case. That one was more cylindrical, this one is more planar.</p><p>6. For each dimension the sequence grows superlinearly. Is there a pattern?</p><p><br /></p><p>If we look at the difference between consecutive extents in the 10D case:</p><p>1.42096, 1.55935, 1.54375, 1.68965, 1.64261, 1.89974, 1.85389, 2.43466, 2.56585</p><p>You'll notice that this is also not smooth, it oscillates, though this time while growing. The same is true for all cases < 10D too. So none of the extents seem to follow a simple pattern.</p><p>Update: this topic seems to be exactly the subject of <a href="https://math.mit.edu/~edelman/publications/random_matrix_theory_innovative.pdf">Random Matrix Theory</a>, and the above eigenvalues should tend to a semicircle distribution if I'm understanding it right. The oscillations appear in the link for finite values of n (probably causing the oscillation with respect to n too):</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg633Qh9YmftKmvnw4iK_OlvqnkNoLB8JP0TYLriPGNfB6u61lWy25V31kG6_KyxDb1JEDkyhA26aMwEya-4dpkMO8dThqTWr6g-eob7Aa9fwNvGXnFM6_4mp0-AwnhGDJZw_Y0R86ZgriER6pqiPefhTUGXowg06ThgCBzONuTTmad9grJ0xCbrWF6ZFAP/s390/oscillations.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="384" data-original-width="390" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg633Qh9YmftKmvnw4iK_OlvqnkNoLB8JP0TYLriPGNfB6u61lWy25V31kG6_KyxDb1JEDkyhA26aMwEya-4dpkMO8dThqTWr6g-eob7Aa9fwNvGXnFM6_4mp0-AwnhGDJZw_Y0R86ZgriER6pqiPefhTUGXowg06ThgCBzONuTTmad9grJ0xCbrWF6ZFAP/s320/oscillations.png" width="320" /></a></div><br /> The simple takeaway is that as n tends to infinity, the distribution of Eigenvalues will tend to a quarter circle (or a semicircle if we allow negative eigenvalues). This semicircle histogram is because the eigenvalues (in the complex matrix case) tend to a uniform unit disk distribution.<p></p>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-75041887699953736832024-01-09T00:32:00.000-08:002024-01-11T03:07:33.428-08:00Saturated and desaturated 3D shapes<h2 style="text-align: left;">Saturated</h2><p>Here are some more examples of saturated shape (see last post), this time 3D. I've used the <a href="https://www.shadertoy.com/view/cslfWn">inversion sets table</a> as a starting point.</p><p>These saturated surfaces all have fractal dimension 2, so they are 2D surfaces. However their surface areas are infinite. A measurable area needs to be in m^2 log^n m where n is larger for the lumpier shapes:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvFzWbECt5TuQxvX99a6hwMVWzw6gX9redVjPT3xMsOE1DLp90JLXGFiHk1dK_0QSFH-xq-Fv2zXtNmVPTSspE6tL4Z-zp3hjFQC0eIvLfoc1Ry-cisaTrWR52wYzUprGGa7Pkcff_WE95D8uCF99MYFolsWn_sgt_cp3hBbPRTCZ4XHW6omM-qpToZHiR/s376/sat1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="328" data-original-width="376" height="279" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvFzWbECt5TuQxvX99a6hwMVWzw6gX9redVjPT3xMsOE1DLp90JLXGFiHk1dK_0QSFH-xq-Fv2zXtNmVPTSspE6tL4Z-zp3hjFQC0eIvLfoc1Ry-cisaTrWR52wYzUprGGa7Pkcff_WE95D8uCF99MYFolsWn_sgt_cp3hBbPRTCZ4XHW6omM-qpToZHiR/s320/sat1.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYuSbvpDBrVqZYK9l1P25FF46-ceK18GFXYO8tzisAJdjRUtUWgPvr1733UvOZdd3ZftMWllwZKSF5OJoiefA2Xk2rXSXIDFTYXxg6TK3xsSMqOjoriH53-d3A5xAeL9FmcmayIfRTOPmXLPsrMpxmvPzoBJzBBKSDvBomni1DWstnV6_DLEaQrNfq-mOw/s498/sat2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="498" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYuSbvpDBrVqZYK9l1P25FF46-ceK18GFXYO8tzisAJdjRUtUWgPvr1733UvOZdd3ZftMWllwZKSF5OJoiefA2Xk2rXSXIDFTYXxg6TK3xsSMqOjoriH53-d3A5xAeL9FmcmayIfRTOPmXLPsrMpxmvPzoBJzBBKSDvBomni1DWstnV6_DLEaQrNfq-mOw/s320/sat2.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5jyRKNHWhIsBVK_nUXPFwFhTSCy_IT2UoN_VS59CgzFXH0jNyHd5GsoDIxr9Ggq5k9hrmPS_0iIwa7RaVv8j4RZlvqtBHwAXwHuobo_xLqTWttzrBK9Qq3mXaWw-0GbwNc7nSlra3UkLvBFuAO33_8gr-tgaI5D8eTWnb-S2JN9Hilrw-K6l4amavhSsi/s498/sat3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="498" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5jyRKNHWhIsBVK_nUXPFwFhTSCy_IT2UoN_VS59CgzFXH0jNyHd5GsoDIxr9Ggq5k9hrmPS_0iIwa7RaVv8j4RZlvqtBHwAXwHuobo_xLqTWttzrBK9Qq3mXaWw-0GbwNc7nSlra3UkLvBFuAO33_8gr-tgaI5D8eTWnb-S2JN9Hilrw-K6l4amavhSsi/s320/sat3.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXDZiJYfYRQrFX_GO_g4WP8NVQVJwd-T74xyEl0DTPNIbbYXtp3zgz6s6HC3pBzAwoEXRG_xATgouh3ORoPEXEUJg6Ag19543xPmkPg8uf-M9LCxOOdBy-7NiKLN711-LuggTEKvgsWfu8jtCGHvzGNI351aPVn7H8OAqyUHEZUQtph9BnNDyQU4_uTu3M/s498/sat4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="498" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXDZiJYfYRQrFX_GO_g4WP8NVQVJwd-T74xyEl0DTPNIbbYXtp3zgz6s6HC3pBzAwoEXRG_xATgouh3ORoPEXEUJg6Ag19543xPmkPg8uf-M9LCxOOdBy-7NiKLN711-LuggTEKvgsWfu8jtCGHvzGNI351aPVn7H8OAqyUHEZUQtph9BnNDyQU4_uTu3M/s320/sat4.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm3ardo6gEjDve8mA0eKv-z8idMfyeVmfzVDW8kMl5uj4TvF7C7uF3BTbqBzVLB5rK0GMY7RvSlWLm7AVsHMyJKgqoalQ-AtIzHo_nTlI8wlmbJXXdYKRVqBLIpp7DqDuPOCId8ErZTxFNFbKryZQ7YMbnBwnC279u4HiuZIOxDWPCX-mP8hqGcwPRVdRS/s498/sat5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="498" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm3ardo6gEjDve8mA0eKv-z8idMfyeVmfzVDW8kMl5uj4TvF7C7uF3BTbqBzVLB5rK0GMY7RvSlWLm7AVsHMyJKgqoalQ-AtIzHo_nTlI8wlmbJXXdYKRVqBLIpp7DqDuPOCId8ErZTxFNFbKryZQ7YMbnBwnC279u4HiuZIOxDWPCX-mP8hqGcwPRVdRS/s320/sat5.png" width="320" /></a></div><div><br /></div><div>These are also saturated surfaces, but this time saturated with spheres rather than lumps or dents:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT3kp5tsJvcVlAn4Mobjf_8_go_FzHPl-gOzEsvHbvz5ILWe4zx2omjMHvrrxlppWH73BS8NPhsk2Wi24Zlku5M6CUI97za1hGTudyFGNItmbfwW22SEEIAguXqN1PjfA5dPQAUr_x7blvHjwAwdIXK9AsOfLkPy_UcxVKE3ZZeI-25u2dQztj9degPXuV/s498/sat11.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="498" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT3kp5tsJvcVlAn4Mobjf_8_go_FzHPl-gOzEsvHbvz5ILWe4zx2omjMHvrrxlppWH73BS8NPhsk2Wi24Zlku5M6CUI97za1hGTudyFGNItmbfwW22SEEIAguXqN1PjfA5dPQAUr_x7blvHjwAwdIXK9AsOfLkPy_UcxVKE3ZZeI-25u2dQztj9degPXuV/s320/sat11.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3DdsVRD4-YdaRWBKqYN0rrleGehRs0GaM7GvyxMlgXT6i3N1RFwkCV7_iL8r3hyAUFBZFf5WNVA2fnVYJ6dJg01BOQozwDoObvz1UT4eLR05CwTfL894Fbzvz67QZ0xraFu21DSzPPasi11kIqZJNFvgQRcuxl7JSyEHkwZR95jXW8fTnjupp5muedXJz/s498/sat12.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="498" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3DdsVRD4-YdaRWBKqYN0rrleGehRs0GaM7GvyxMlgXT6i3N1RFwkCV7_iL8r3hyAUFBZFf5WNVA2fnVYJ6dJg01BOQozwDoObvz1UT4eLR05CwTfL894Fbzvz67QZ0xraFu21DSzPPasi11kIqZJNFvgQRcuxl7JSyEHkwZR95jXW8fTnjupp5muedXJz/s320/sat12.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;">Neither are fractals and neither have finite surface area. </div><div><br /></div>These curves all have fractal dimension 1, they are non-fractal (branching) curves, however their total length is infinite. You need to measure their size in m log^n m for some n representing how saturated they are:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpsPrlJkVoeOFTyQsYocNQY2xNBt-cXDO2dLid4ck-SfOGSktLz3-njguNODviB9dIwRJ6NqfDdtOLP6JaYDAbUvaHye70saZjz1jROlV4S8Y012zu8Xl53PrxShyMlDmjSUJuqqgAkCxPPMmi_X0TfuFs-EV0Q-Omt2L5EVBRRJRjz2T3buFkg7nQZFr-/s498/sat6.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="498" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpsPrlJkVoeOFTyQsYocNQY2xNBt-cXDO2dLid4ck-SfOGSktLz3-njguNODviB9dIwRJ6NqfDdtOLP6JaYDAbUvaHye70saZjz1jROlV4S8Y012zu8Xl53PrxShyMlDmjSUJuqqgAkCxPPMmi_X0TfuFs-EV0Q-Omt2L5EVBRRJRjz2T3buFkg7nQZFr-/s320/sat6.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkuYOW8OkSWea9N5IzmUGocs6N9fc6DsJvhB5sbQSle4B_9sbDv527VzkGFHghGKKwVpBBG4zk2vqB0rTD59j3PHD2_6MBNj06hEqyO7sY9baaikAsj-J3LcdF2Eo03pfEnHRY3kUYPh1Ux6k9qkmHeywAq8n5tv6_V7ub5D8gbN_qWpzsX0vwTscwJNM6/s498/sat7.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="498" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkuYOW8OkSWea9N5IzmUGocs6N9fc6DsJvhB5sbQSle4B_9sbDv527VzkGFHghGKKwVpBBG4zk2vqB0rTD59j3PHD2_6MBNj06hEqyO7sY9baaikAsj-J3LcdF2Eo03pfEnHRY3kUYPh1Ux6k9qkmHeywAq8n5tv6_V7ub5D8gbN_qWpzsX0vwTscwJNM6/s320/sat7.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFMgah9SWdbpduHaEIN_NYVjLNHurynil2CF-O8GDwcoQKOaMnzw14G7btIeILmGuQioAjd7X821mj2bepbeN-_0HAfJkRDU31jSaLywGrU7X6QElk91XqM6hZ06CTGfB2mvDtSvjlzu9Z-MtlFGeA4-1LQX6895hEEaaFqOtqidHcBjOnysUeB1U2-1pw/s498/sat9.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="498" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFMgah9SWdbpduHaEIN_NYVjLNHurynil2CF-O8GDwcoQKOaMnzw14G7btIeILmGuQioAjd7X821mj2bepbeN-_0HAfJkRDU31jSaLywGrU7X6QElk91XqM6hZ06CTGfB2mvDtSvjlzu9Z-MtlFGeA4-1LQX6895hEEaaFqOtqidHcBjOnysUeB1U2-1pw/s320/sat9.png" width="320" /></a></div><div>(ignore the sphere in the centres of the last one, an artifact of too few iterations)</div><div><br /></div>This set is disparate points, or dust. It's fractal dimension is 0 like its topological dimension, so it is not a fractal. But the number of points is infinite, you need to 'count' the points in log^n m:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqKzufh0SbsKuuLsKE2p4wOw5JQL4b2ZIRefkjxdy4-q-BnJcn2v2-1IOWy2IdAiN87dgax9w_1YVEebBXT4A001VDvHv_WfNXpy9vL3AHYmEt41eGKPxjq4j6m_BR0LLZLYdIit3JneRsVZ33CJemB-tvhgKEcsz_6s4neV3O8SzFZWBM6SB0f2o67Paj/s498/sat10.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="498" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqKzufh0SbsKuuLsKE2p4wOw5JQL4b2ZIRefkjxdy4-q-BnJcn2v2-1IOWy2IdAiN87dgax9w_1YVEebBXT4A001VDvHv_WfNXpy9vL3AHYmEt41eGKPxjq4j6m_BR0LLZLYdIit3JneRsVZ33CJemB-tvhgKEcsz_6s4neV3O8SzFZWBM6SB0f2o67Paj/s320/sat10.png" width="320" /></a></div><div><br /></div>So saturated shapes are relatively easy to create in 3D. <div><br /></div><div>All of these shapes are nowhere differentiable. They are more lumpy than C(1) fractals like the <a href="https://hevea-project.fr/ENIndexHevea.html">Hevea project</a> shapes which are differentiable and also have finite length/area.</div><div><br /></div><h2 style="text-align: left;">Desaturated</h2><div class="separator" style="clear: both; text-align: left;">This is a desaturated tree surface fractal. Its fractal dimension is something like 2.5, but the roughness grows at the finer details, such that its area in m^2.5 is zero. </div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3nfTt-m9q9MPY9EPKFLWO_s5ATPWClUPWXVZa8nbF7on4FPwn0qc8ToybYPM9pSTrp04Ui2dRSpfrkGPQp57HrK9qL4w7_hrHFILvG-hSGn_C46vHFwAbc4GWo19qB1Cke10lyxAxqBL1SogDs8uXNQhS3JQqPxpqKWcVAicImRpL83EnLabfhC4wicSj/s411/desat3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;"><img border="0" data-original-height="355" data-original-width="411" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3nfTt-m9q9MPY9EPKFLWO_s5ATPWClUPWXVZa8nbF7on4FPwn0qc8ToybYPM9pSTrp04Ui2dRSpfrkGPQp57HrK9qL4w7_hrHFILvG-hSGn_C46vHFwAbc4GWo19qB1Cke10lyxAxqBL1SogDs8uXNQhS3JQqPxpqKWcVAicImRpL83EnLabfhC4wicSj/w200-h173/desat3.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVtyD8qIHf2VeqkRpqsHHfuLtShn3QeahHF502AaQAsRGgDq5K2TX-o9ZT2YmyBDbMn0ytbQ9m2LC1o29YoX22865WUy0aw6HcgFzIaJWMvXmdT_NMj3ni7aTbQ_Kcmj8RxxKzxlCnvs1H6VU8lDKsFWb8-6jLmU_9Jj2BAWs74oNhGomFCnittkWnH-Cd/s411/desat4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="355" data-original-width="411" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVtyD8qIHf2VeqkRpqsHHfuLtShn3QeahHF502AaQAsRGgDq5K2TX-o9ZT2YmyBDbMn0ytbQ9m2LC1o29YoX22865WUy0aw6HcgFzIaJWMvXmdT_NMj3ni7aTbQ_Kcmj8RxxKzxlCnvs1H6VU8lDKsFWb8-6jLmU_9Jj2BAWs74oNhGomFCnittkWnH-Cd/s320/desat4.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;">Here is an equivalent with the cluster-tree fractal:</div><div class="separator" style="clear: both; text-align: center;"><span style="margin-left: 1em; margin-right: 1em;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_87tholUqNmPTTHjq6fvbPSWmARE0f1OQQUPYIRm4E0YJ3D3shKK3Z6iy9NUOp-RN73KzRnHoP0LyOugmg0tpWQk0p0x1cvI0iFehqCoNfJumRM33T-DlZlMT8GPgONcG9or1rBpdPak0V2UPHjzFHthhBs18xf7iF4BGf9PlehVUB4TKrfG6k_35JMdX/s411/desat2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="411" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_87tholUqNmPTTHjq6fvbPSWmARE0f1OQQUPYIRm4E0YJ3D3shKK3Z6iy9NUOp-RN73KzRnHoP0LyOugmg0tpWQk0p0x1cvI0iFehqCoNfJumRM33T-DlZlMT8GPgONcG9or1rBpdPak0V2UPHjzFHthhBs18xf7iF4BGf9PlehVUB4TKrfG6k_35JMdX/s320/desat2.png" width="320" /></a></span></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;"> </span></div>In both cases the desaturated shapes look <i>sharp</i> compared to the rough fractals, and the saturated shapes at the top look <i>blunt</i>.<br /><br />Here's a desaturated shell-shell:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjvgOkKIhYiVOjOl7Bz_1UhW_OuyFOiBqe_zJ74Mi58A1zC8-6Z7lTB950slShlbumYTin9RL0qkkIl-Cd2VAEbic2ZFbOfAGe6e28jGVrUwM2PQubP2JsPoQmN1_gmIH3G90zXm3YjbUatcgJpdVnorDxTXjkMp1zxrSoRZjYSFnhkOr90t-ovxMNyC6L/s411/desat6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="411" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjvgOkKIhYiVOjOl7Bz_1UhW_OuyFOiBqe_zJ74Mi58A1zC8-6Z7lTB950slShlbumYTin9RL0qkkIl-Cd2VAEbic2ZFbOfAGe6e28jGVrUwM2PQubP2JsPoQmN1_gmIH3G90zXm3YjbUatcgJpdVnorDxTXjkMp1zxrSoRZjYSFnhkOr90t-ovxMNyC6L/s320/desat6.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">The equivalent for the void-tree again has most of the geometry at the finer scales:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhunQ5EuqGMnYvtrCi4RW_Kx3Y-treB0unO7EzB2_aMVI3WKLySS7JydH1q4ieMs9ky9NeQIH8FPhirZf8C5xfTgFpFRrz1IkQtz7bE8qZPBeJvoM9EwgYZL0dbOxtWlnwpP3rA64N6FHbrE25Nr7T7uCCeYZOzxMVnArTuWtqQ8GEx8VG8lzoVC38fCAvM/s411/desat5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="411" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhunQ5EuqGMnYvtrCi4RW_Kx3Y-treB0unO7EzB2_aMVI3WKLySS7JydH1q4ieMs9ky9NeQIH8FPhirZf8C5xfTgFpFRrz1IkQtz7bE8qZPBeJvoM9EwgYZL0dbOxtWlnwpP3rA64N6FHbrE25Nr7T7uCCeYZOzxMVnArTuWtqQ8GEx8VG8lzoVC38fCAvM/s320/desat5.png" width="320" /></a></div><br /><div><div><div><br /><div><br /><p><br /></p></div></div></div></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-35014708406362078832024-01-05T03:22:00.000-08:002024-01-07T21:29:01.909-08:00Saturated and desaturated shapes<p>Here's an unusual curve:</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEMwi-u2fYipjJMOpPoGI_x-G4y_6hSjlBn6Ml54KZLK0uksmkryCxJYSZjkflmm_W29KgC77M-ZVQb2T4vf8duY_ZXFZOOQsp7Z1clghGRHL8F6D82M9_hQe7J5dw-3TXRo_ymNhTmnP8DVbl5eJ9hoAmWcF2dVlbybpQufCa_OwucuP9l-Zpso865jFk/s1260/saturated.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="683" data-original-width="1260" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEMwi-u2fYipjJMOpPoGI_x-G4y_6hSjlBn6Ml54KZLK0uksmkryCxJYSZjkflmm_W29KgC77M-ZVQb2T4vf8duY_ZXFZOOQsp7Z1clghGRHL8F6D82M9_hQe7J5dw-3TXRo_ymNhTmnP8DVbl5eJ9hoAmWcF2dVlbybpQufCa_OwucuP9l-Zpso865jFk/w400-h216/saturated.png" width="400" /></a></p><p>Its fractal dimension is 1, so it is not a fractal. But its length is infinite. It is constructed like a Koch/Cesaro curve with local dimension D(i) at iteration i given by D(i) = 1+1/i. Where the per-iteration bend angle equals 2asin(exp(-ln(2)/D(i))).</p><p>The question is how do you compare the lengths of different subsections of the curve, if they're all infinite? This is reminiscent of the Coastline paradox. </p><p>There are related curves that have local dimension D(i)=1+0.5/i and 1+2/i respectively:</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3br6YsJ8tD0GjvlUllbyvgoYr4qn1UCTxUY2M7Od-zC7jvXh2PxYY6c7S7jD7fE2nO5nxEWhEOBgu8E4rFsTZ0_QXH_V2BtlTZwo-Lyo_DpZW4pqgR_ILGbgvbutxNCzVG4rdRU4BvcBqXmlKmcg_QCKCKnUS4w6oKct9fK_7_wfhuK1LZpfDrhw_9PO2/s1260/saturated_half.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="558" data-original-width="1260" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3br6YsJ8tD0GjvlUllbyvgoYr4qn1UCTxUY2M7Od-zC7jvXh2PxYY6c7S7jD7fE2nO5nxEWhEOBgu8E4rFsTZ0_QXH_V2BtlTZwo-Lyo_DpZW4pqgR_ILGbgvbutxNCzVG4rdRU4BvcBqXmlKmcg_QCKCKnUS4w6oKct9fK_7_wfhuK1LZpfDrhw_9PO2/w400-h178/saturated_half.png" width="400" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJlwUjTm2_KNrs9CfLQUi9d18F5VTQM7cVYfKSa5yfOlPoikdV9173ZXFw1eaa8LU23adATnt6kbwA5Qg3LMGXaZGEquil3XfKWL2v-tXtpftN0d6wk-LuPz43nqledFR1GbC4CkI467C9mExbSdQCb_JGGDDVi32JYwNEo6W5lxU1NUPZnoKETZBYRzBA/s1260/saturated2.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="679" data-original-width="1260" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJlwUjTm2_KNrs9CfLQUi9d18F5VTQM7cVYfKSa5yfOlPoikdV9173ZXFw1eaa8LU23adATnt6kbwA5Qg3LMGXaZGEquil3XfKWL2v-tXtpftN0d6wk-LuPz43nqledFR1GbC4CkI467C9mExbSdQCb_JGGDDVi32JYwNEo6W5lxU1NUPZnoKETZBYRzBA/w400-h216/saturated2.png" width="400" /></a></p><p>This raises a second question, not only do we not know which is longer, but they clearly change in how lumpy they are. How do we measure that? </p><p>I described them all as lumpy, rather than 'rough' like fractals because the lumps are only at the larger scales. I use the term <i>saturated</i> to describe these curves. Their length has saturated to infinity and it also invokes the idea of a shape saturated and swollen with water like wrinkly fingers in the bath.</p><p>This next curve has local dimension D(i) = 1.2618+1/i so it is a fractal, in fact it is the saturated version of the Koch curve. Its fractal length (fractal content or Hausdorff measure) is infinity.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7GE2bOdISS3ajlDF3v99vU57wFi_Q__JAADPBwDdiQv4uuOWjb07EzQDpUl2kkv1mkI1b6V1U1ujGyySThbqWTnLinr7ke2hSR-ya_bCkq5wM7gWViVfp_Vz7Xw0uCUYlZpiiRHSR5OVrx8SVjRRwqXaNaHNJ2rY7KQF3Q18CcYVOa9-oYWWew32TWcs9/s943/saturated_koch.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="448" data-original-width="943" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7GE2bOdISS3ajlDF3v99vU57wFi_Q__JAADPBwDdiQv4uuOWjb07EzQDpUl2kkv1mkI1b6V1U1ujGyySThbqWTnLinr7ke2hSR-ya_bCkq5wM7gWViVfp_Vz7Xw0uCUYlZpiiRHSR5OVrx8SVjRRwqXaNaHNJ2rY7KQF3Q18CcYVOa9-oYWWew32TWcs9/s320/saturated_koch.png" width="320" /></a></div>Moreoever if you measured this fractal content for a slightly higher dimension such as 1.2619, it would be zero. So you cannot use fractal content to measure the length of this curve either.<div><br /></div><div>The answer to these problems is that instead of measuring these lengths in metres (or metres^1.2618 for the saturated Koch curve) you measure the in m log^n m (or m^1.2618 log^n m respectively). In general any shape of dimension d that is saturated can be measured in m^d log^n m. Here n is the value that describes their lumpiness. In these examples when the local dimension is D(i) = D + k/i, then n = k ln(2).</div><div><br /></div><div>The shapes don't have to be curves. This is a particularly pure case of a saturated 0D shape, i.e. a point or finite number of points, where D(i) = 0 + 1/i:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy25YMaunZQe14Ea_CrDKUplLFVgdlchDng527ldXyBQHtYoS8OWyJdggnHQlkydNyPRV24l6IqH8hkxHALJKobz8j77bwMhAeKr67sGjAvJZvqSxTfa4NAwwntgaJ0UoOTkWLmczOBXeu_e6gcQF88g73JlPIIHTbvWMGkVj9YlS10DpKDumDtOGMHA5M/s792/satdots.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="792" data-original-width="788" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjy25YMaunZQe14Ea_CrDKUplLFVgdlchDng527ldXyBQHtYoS8OWyJdggnHQlkydNyPRV24l6IqH8hkxHALJKobz8j77bwMhAeKr67sGjAvJZvqSxTfa4NAwwntgaJ0UoOTkWLmczOBXeu_e6gcQF88g73JlPIIHTbvWMGkVj9YlS10DpKDumDtOGMHA5M/s320/satdots.png" width="318" /></a></div>There are infinite points in this saturated shape, but unlike the 2D Cantor set its fractal dimension is still zero, so it is not a fractal. But, you can still compare the size of these shapes (or portions of them) as they can be measured in log^n metres. Here is a twice as saturated set of points (twice n): D(i) = 0 + 2/i:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj68yg4z65n1C3Uon6LEJ8L1-tDujWHcZXU3cPpKUIKzx6XMTW9OGI4u4we7ZaDf2AihupeuDpoUs2lWEnjqSp6tPebLeb2NajHSPzlOKyx8h9qKYLdaGOPFavJD0G_QX0-L7piAroHmUva0VcpdL0_Vu4o015gu06Y1qt9iqkVYzMn9D7_MKHL-Qm8Dz1a/s792/satdots2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="792" data-original-width="788" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj68yg4z65n1C3Uon6LEJ8L1-tDujWHcZXU3cPpKUIKzx6XMTW9OGI4u4we7ZaDf2AihupeuDpoUs2lWEnjqSp6tPebLeb2NajHSPzlOKyx8h9qKYLdaGOPFavJD0G_QX0-L7piAroHmUva0VcpdL0_Vu4o015gu06Y1qt9iqkVYzMn9D7_MKHL-Qm8Dz1a/s320/satdots2.png" width="318" /></a></div><div>The point spacing is decreasing as we zoom in. Indeed all of the above examples change their scale and shape as you zoom in. But even though their log-log plots are curved it is still possible for shapes to be scale-symmetric. Take for instance these binary trees:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0wRZxDh5KKs1dd4i_rJEwPwFrReC6Rg2Bd9R5u7yLLt8RGqtMZAwcArYMNasf7YbN5oCKnPjNg8JEesuBroWZdqmLH1T24G32Mcpkx8KHvhdUMlPiY-v967E-rU5H6nExJRvsTald-xEGi9G25slk0NoCxe-WHLWNFnR6nLivU8k1oU8oqfOKNSiFZH3L/s781/bintrees.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="383" data-original-width="781" height="157" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0wRZxDh5KKs1dd4i_rJEwPwFrReC6Rg2Bd9R5u7yLLt8RGqtMZAwcArYMNasf7YbN5oCKnPjNg8JEesuBroWZdqmLH1T24G32Mcpkx8KHvhdUMlPiY-v967E-rU5H6nExJRvsTald-xEGi9G25slk0NoCxe-WHLWNFnR6nLivU8k1oU8oqfOKNSiFZH3L/s320/bintrees.png" width="320" /></a></div>They both have fractal dimension 1 so are not fractals, just connected lines. If the stem length is 1m then the left image has total length 12 m. But the right shape has infinite length; it is saturated. We can still measure its "length" as 2.88 m log m. This saturated tree occurs when the child branch lengths are exactly half the parent branch length. <div><br /><h2 style="text-align: left;">Desaturated shapes</h2><div>The same thing happens in the other direction. You can take a 2D area and remove the harmonic series. Here the local dimension is D(i) = 2 - 1/i, and 2 - 2/i respectively. They both have area zero, so how do we compare their sizes?</div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2DPspQwrWfJmzmKsCMgFgctP-4VzGMpF-6GhQtFKnGoHPda3bH3N8CpDu-BbKRvZ9n4z71UJjtwsGI0Jop7sSJLxU3GuEabkpGxcMqbEUrHVWcKKAA7AH7i07_R1Ypy8NQrEwaoQD3gFqOEftIhz7O7sEY5jWDM0e1nrHI7RVhGeSxjWJBOPZ1iJMBo3Z/s1243/desaturated.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="551" data-original-width="1243" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2DPspQwrWfJmzmKsCMgFgctP-4VzGMpF-6GhQtFKnGoHPda3bH3N8CpDu-BbKRvZ9n4z71UJjtwsGI0Jop7sSJLxU3GuEabkpGxcMqbEUrHVWcKKAA7AH7i07_R1Ypy8NQrEwaoQD3gFqOEftIhz7O7sEY5jWDM0e1nrHI7RVhGeSxjWJBOPZ1iJMBo3Z/s320/desaturated.png" width="320" /></a></div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin_1WyrFCAta8roybVrB5mGRtXPoNY4VK_tH7JSasT2AtDEvWacPMxvk9jrQ8-98C7yRUExbIWiiNw2LFenJoSXLSx55lLlTrPNFUDXZJ1SPvTCMgNc5-G5glGmiOAF9IDCZUfQDYf3jaSchrDFH_tj0SjMDKk_xQ__LbEeduVEzl60vGlyXMwLsRoic50/s1243/desaturated2.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="551" data-original-width="1243" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin_1WyrFCAta8roybVrB5mGRtXPoNY4VK_tH7JSasT2AtDEvWacPMxvk9jrQ8-98C7yRUExbIWiiNw2LFenJoSXLSx55lLlTrPNFUDXZJ1SPvTCMgNc5-G5glGmiOAF9IDCZUfQDYf3jaSchrDFH_tj0SjMDKk_xQ__LbEeduVEzl60vGlyXMwLsRoic50/s320/desaturated2.png" width="320" /></a></div><div>Similarly you can also desaturate a fractal, such as the Koch curve here, using D(i) = 1.2618 - 1/i. Its fractal content is then zero.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYfhEwfsd0nh0_2ACIZlZcj-4EMBfmDgDsVYXlEEjYYAXV80amUi6cozsauqOnDofAIPog64fj0BD_QM_dHdtieIlP-aqQO78UBy4yl47I82qmCWjdrolzdmXkUvFR-SSuryCdguzDR1k0VQkXDNdeKRT7fR4A5n7A-JKWDZA2ba_iN4Qq-RkE1Qm4Di0b/s1413/desaturated_koch.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="241" data-original-width="1413" height="69" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYfhEwfsd0nh0_2ACIZlZcj-4EMBfmDgDsVYXlEEjYYAXV80amUi6cozsauqOnDofAIPog64fj0BD_QM_dHdtieIlP-aqQO78UBy4yl47I82qmCWjdrolzdmXkUvFR-SSuryCdguzDR1k0VQkXDNdeKRT7fR4A5n7A-JKWDZA2ba_iN4Qq-RkE1Qm4Di0b/w400-h69/desaturated_koch.png" width="400" /></a></div>The equivalent measurement for these is to measure in m^d / log^n m.</div><div><br /></div><div>Here's a desaturated solid triangle, with D(i) = 2 - 1/i:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLX0uhPAyObslDzMe95GwQq81J49CDUsGRHnzk5QlkHJwfvWO7_fc1q0-LAnypIholtWO74zrTFQxcekJYpiRa5Jql_9xaUmP_rwOzvFqXCCz6n3R7eJ_3mgA2MtVvaPTw3Lb16r8lk0nw6FrDV_zxHPX5p4-7ZDOFEnWFnI48WhwtXPkqWZ6andgxKSvj/s1009/triang.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="883" data-original-width="1009" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLX0uhPAyObslDzMe95GwQq81J49CDUsGRHnzk5QlkHJwfvWO7_fc1q0-LAnypIholtWO74zrTFQxcekJYpiRa5Jql_9xaUmP_rwOzvFqXCCz6n3R7eJ_3mgA2MtVvaPTw3Lb16r8lk0nw6FrDV_zxHPX5p4-7ZDOFEnWFnI48WhwtXPkqWZ6andgxKSvj/s320/triang.png" width="320" /></a></div><div><p>I call these <i>desaturated</i> as their d-volume has all of its size "dried" out of it, like dried ground that has split. In general we can think of these desaturated shapes as dessicated or depleted versions of the original shape.</p><p>This next shape is a line using a binary subdivision formula with D(i) = 1 - 1/i:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE4BTq8rcjYUtdLI6ZnKUH0qBpmhnndsTSsB-CK-WBtTs_1W_s_uHBkrB30xsPq7KahQyswK4GqEeeEPIOqcWvwtXwg8qCF5wxiA3GUONOaCN7cZEkhyG0WIcMvamoFPpmvquXyq70S7qKBZ8AHEQOwvBDGB-ZzSsRAcmFUqIIsZkoj-z-fM02TCV0mzNp/s1365/des1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="21" data-original-width="1365" height="10" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE4BTq8rcjYUtdLI6ZnKUH0qBpmhnndsTSsB-CK-WBtTs_1W_s_uHBkrB30xsPq7KahQyswK4GqEeeEPIOqcWvwtXwg8qCF5wxiA3GUONOaCN7cZEkhyG0WIcMvamoFPpmvquXyq70S7qKBZ8AHEQOwvBDGB-ZzSsRAcmFUqIIsZkoj-z-fM02TCV0mzNp/w640-h10/des1.png" width="640" /></a></div><br /><p>It looks like a Cantor set but its fractal dimension is 1 and its 1D length is 0. You must measure the size of this desaturated line in m/log^n m.</p><p><br /></p><p>These aren't the only shapes that act this way. If we plot the box counting dimension of the boundary of the Mandelbrot set as a log-log graph, then we plot the function y=-2(x-s) - g log_2(-(x-s)), we see that it fits quite well to the curve when s=18.6, g=3.8:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMvRE4qsBiHPtfqJ-CT2adYglwVki467H2Pxx1nF62d3y57YzUjUpNK0HalJFkbw1Pd0tOhUUvji1pZ4qHUHLCXrQxk3er60QAs8gF0V-X3Ob9E0wZ7PLXxNlPipdPUyQ1VRkl8sghOBftRzbVTxyakLfCVkhRtXfzZS4yjeD_JnNHONQgDJoPBUmxg2KN/s881/Mandelbrot6.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="881" data-original-width="811" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMvRE4qsBiHPtfqJ-CT2adYglwVki467H2Pxx1nF62d3y57YzUjUpNK0HalJFkbw1Pd0tOhUUvji1pZ4qHUHLCXrQxk3er60QAs8gF0V-X3Ob9E0wZ7PLXxNlPipdPUyQ1VRkl8sghOBftRzbVTxyakLfCVkhRtXfzZS4yjeD_JnNHONQgDJoPBUmxg2KN/s320/Mandelbrot6.png" width="295" /></a></div><div>This function when translated to a gradient error with its fractal dimension of 2, is also a 1/x harmonic function. The close match is suggestive (but certainly not proven) that the Mandelbrot set's boundary is also a desaturated area, with n equal to g. This would explain some previous suggestions that the boundary's area may be zero despite it having dimension 2.</div><div><br /></div><div><br /></div><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkd3EwdaDsskP_KkyL9zaHYwXzToe2rQeSAyqWH2btqhgLe77THbKEYqQ4cCRCmhcmD0HUlOqYxXewsC6-KLqka0d7g7NpidflJ0S4qOBd6c-x8YNU8aXjaBBvlIefK51mijfQxexzLh1zPW__b6tbzgQfFen_YuzwtarniAMVYqs_lFPM37En4fycMkbW/s730/mand1.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="684" data-original-width="730" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkd3EwdaDsskP_KkyL9zaHYwXzToe2rQeSAyqWH2btqhgLe77THbKEYqQ4cCRCmhcmD0HUlOqYxXewsC6-KLqka0d7g7NpidflJ0S4qOBd6c-x8YNU8aXjaBBvlIefK51mijfQxexzLh1zPW__b6tbzgQfFen_YuzwtarniAMVYqs_lFPM37En4fycMkbW/s320/mand1.png" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WboWlwWxCP82ajlmVKAUDyCH9jGth3Y7vH67pxffCun7FQXwUG5FNBMQZSsyWK_FlkrtOmnMKLSeWMwMRjItvyMBeH_7v1NCu8o7Dy9Cq6b8yB69W9paYaGvV79B4XZDIzqw2qE-3tuKaNzn-CSz8FFDoxoR1kFWQ6EgG7gl3xpKycaisClcX9XF91co/s569/mand2.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="569" data-original-width="494" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WboWlwWxCP82ajlmVKAUDyCH9jGth3Y7vH67pxffCun7FQXwUG5FNBMQZSsyWK_FlkrtOmnMKLSeWMwMRjItvyMBeH_7v1NCu8o7Dy9Cq6b8yB69W9paYaGvV79B4XZDIzqw2qE-3tuKaNzn-CSz8FFDoxoR1kFWQ6EgG7gl3xpKycaisClcX9XF91co/s320/mand2.png" width="278" /></a></div><div class="separator" style="clear: both; text-align: left;">Above: compare the outer Mandelbrot boundary with the next largest minibrot to see how much denser the boundary gets as you zoom in. (<a href="https://mathr.co.uk/mandelbrot/large.png">image</a> thanks to Claude). </div><div class="separator" style="clear: both; text-align: center;"><br /></div>If the above function is close then you can convert it to the physical quantity formula by <a href="https://www.wolframalpha.com/input?i=2%5E%28-2%28log%282%2C%281%2Fx%29*3600%29-15.4%29+-+3.8*log%282%2C15.4-log%282%2C%281%2Fx%29*3600%29%29%29">replacing x with ln(1/x) and taking 2 to the power of y</a>. The resulting formula tends to m^2 / log^n m for large x, giving the size of the Mandelbrot set boundary as: 3026 m^2 / log^3.8 m.</div><div><br /></div><div>But we don't know that the function needs to reach down to the 1 box level (y=0), the function only needs to be asymptotically correct (for large negative x). </div><div><div class="separator" style="clear: both; text-align: center;"><br /></div>It also isn't necessary to have the same s in both parts of the formula, so with different values we can get more curvature in out best-fit curve by dropping n to 2, when s1 = 14.3 and s2 = 12.7 we get a size of:</div><div>15 m^2 / log^2 m:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhG0NHqsxZgtgz2mXIOrtaGsGbY47JRY9vjpyMXjVROI2PZKGpAgQqAJM36RCfMpnZvd4fctgnoIH3TjrJ8WLhpoZFOJdsBcjdvHfb17PzjAWlNKuCB62aA0Rqedsub0XuI1kqQdIKcRHSe90I0M9tFplk80K-U3IfttSJhx3UUMBMnFiDlqcm2c2CHeuY/s795/Mandelbrot7.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="795" data-original-width="688" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhG0NHqsxZgtgz2mXIOrtaGsGbY47JRY9vjpyMXjVROI2PZKGpAgQqAJM36RCfMpnZvd4fctgnoIH3TjrJ8WLhpoZFOJdsBcjdvHfb17PzjAWlNKuCB62aA0Rqedsub0XuI1kqQdIKcRHSe90I0M9tFplk80K-U3IfttSJhx3UUMBMnFiDlqcm2c2CHeuY/s320/Mandelbrot7.png" width="277" /></a></div><br /><div>If n = 1 then s1 = 12.3 and s2=9 is a good fit, so you get a size of: 1.36 m^2 / log m:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVZv3ebhUZFOLBfH2adCFtQm8nZxaqAI5mEsqUc9bATWr0fjGso9X_RWrD46fj5HdPheJehMPhlwOTen6vxuQ_X6Vny3xcFFKI1FG9v9NAi2WWv5cgOu8IB95_tnK1IHEBNDvjqpcvENSNLp_a2s5g0Qcw1wAJSoBOYv0erYHKPezYHXlG_96etVenlWya/s791/Mandelbrot8.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="791" data-original-width="599" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVZv3ebhUZFOLBfH2adCFtQm8nZxaqAI5mEsqUc9bATWr0fjGso9X_RWrD46fj5HdPheJehMPhlwOTen6vxuQ_X6Vny3xcFFKI1FG9v9NAi2WWv5cgOu8IB95_tnK1IHEBNDvjqpcvENSNLp_a2s5g0Qcw1wAJSoBOYv0erYHKPezYHXlG_96etVenlWya/s320/Mandelbrot8.png" width="242" /></a></div><br /><div>Both of these seem somehow more likely than n=3.8. But we would need more data to make a better guess on n, which describes how desaturated (dessicated) the boundary is as a 2D region. </div><div><br /></div><div>The function to simplify in these cases is: y=2^( -2(log(2,k/x)-s1) - g*log(2, s2-log(2,k/x))), where k is the number of pixels per unit in the image, which is 3600 for this case.</div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-25917564754167401312023-12-10T15:19:00.000-08:002023-12-12T03:29:11.610-08:00Friends<p>I just read an article in an old The Helix magazine that said: on average your friends have more friends than you do.</p><p>It is true, and maybe even obvious to some people, but I thought I'd have a go at modelling it. </p><p>Firstly, I'm thinking the log normal distribution is a good estimation of how many friends people have. It is a one parameter family based on the standard deviation <span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span> of the normal distribution that it is the log of. </p><p>I use log normal because nobody has a negative number of friends, and a few people have hundreds or thousands of friends. So it is a skewed distribution. It isn't a Poisson distribution though because the tail isn't that thick. Here is the log normal distribution shown for <span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span> = 0.5:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJqR7FnVc59BU-7vwD7VkLtbnJZrDl5MChLXt4IfZ28OeSc-joqzzfbWmMWxSZk74KGy2Dv-wJnf9QUYQSqsMaIiORFnnrgY5jilxpoObVaA0Ir9zdMH3PCFIBZCn4ghfYpulPE7SK7HK6gRzXGEfoVcMYqKehWVDZc-0FbqGjttvk8L2AJceI-WiZaLEc/s225/lognormal.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="225" data-original-width="205" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJqR7FnVc59BU-7vwD7VkLtbnJZrDl5MChLXt4IfZ28OeSc-joqzzfbWmMWxSZk74KGy2Dv-wJnf9QUYQSqsMaIiORFnnrgY5jilxpoObVaA0Ir9zdMH3PCFIBZCn4ghfYpulPE7SK7HK6gRzXGEfoVcMYqKehWVDZc-0FbqGjttvk8L2AJceI-WiZaLEc/s1600/lognormal.png" width="205" /></a></div><p>Note that the horizontal scale is arbitrary, the peak above could represent 1 friend or 100 friends.</p><p>The mean of a log normal distribution is exp(<span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span>^2 / 2)</p><p>To see the distribution of your friend's friends you need to multiply the log normal PDF by x, because the more friends the person has (larger x) the more likely you are to be friends with them. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQzuQlSzb48LIXhKy5qAA3kDsMYkVUcmMFYKfIzjsVpI0u4OEa17s_0Y2wP2yJ_-g9gwd2OgrpIhmL5wsZ40i7IkQyJ90y5MGkXrhO2YyYw2upP3EEtYmr0aMHbbojfryGl_UrM0hUX7JhJHZz20dn-jG_ColP7zZ58t4OcOikI3KAizSwCG_l48pNaWtJ/s210/weightedlognormal.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="210" data-original-width="188" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQzuQlSzb48LIXhKy5qAA3kDsMYkVUcmMFYKfIzjsVpI0u4OEa17s_0Y2wP2yJ_-g9gwd2OgrpIhmL5wsZ40i7IkQyJ90y5MGkXrhO2YyYw2upP3EEtYmr0aMHbbojfryGl_UrM0hUX7JhJHZz20dn-jG_ColP7zZ58t4OcOikI3KAizSwCG_l48pNaWtJ/s1600/weightedlognormal.png" width="188" /></a></div><p>The mean of this distribution is exp(3 * <span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span>^2 / 2). <span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span>^2 being the variance. </p><p>The ratio of these two means represents how many more friends your friends have than you do. This is simply exp(<span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span>^2):</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbv-qdbhroOIDIV3RZ_jPrNef52h4lL8J_4T7IQA8ajQqzNPY8Ioa8lsQHfAz5KRjJyK6tr5nKQRL50Qi72xqbQz2IbpFH703YlXRbU0cCfC00SlHuRUO3pmAc4kFydiyb6b6O6GFmI5UcdpYKae1Es7Pe6alXY-esTXMOnExuF4C2pWxI4oY7ONTd1fIg/s225/friends.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="225" data-original-width="205" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbv-qdbhroOIDIV3RZ_jPrNef52h4lL8J_4T7IQA8ajQqzNPY8Ioa8lsQHfAz5KRjJyK6tr5nKQRL50Qi72xqbQz2IbpFH703YlXRbU0cCfC00SlHuRUO3pmAc4kFydiyb6b6O6GFmI5UcdpYKae1Es7Pe6alXY-esTXMOnExuF4C2pWxI4oY7ONTd1fIg/s1600/friends.png" width="205" /></a></div>This value depends a lot on the unknown parameter <span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span>. If we have a diverse number of friends then it will potentially be very large, starting to grow rapidly for <span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span> > 1.<div><p>Either way, the ratio is always > 1 so this model supports the claim. </p><p>The magazine cited Facebook data that 85% of people's friends have more friends than them. Presumably one could work backwards to estimate <span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span> for this case. But <span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span>=0.5 looks like a reasonable distribution for number of real friends, and that gives your friends 28% more friends than you have. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_Mh7hAQXGpzx7SCvD5sGQUvN2s-Ruep2tGFysUnAGmWm0yL0_GZdDV-g0z_9LRvS7m5nTqmrecLFlbljvZ6jz0RPYYszFpNrNEGPi2Co91Rqz2G-z8Dpl0LMvnmluuWwT74QjawQdvWKaTznXkOT8CpHydkwGaoiw0TUkOsqGSyQRNTYwNu0BfC4Icn1H/s300/Log-normal-pdfs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="286" data-original-width="300" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_Mh7hAQXGpzx7SCvD5sGQUvN2s-Ruep2tGFysUnAGmWm0yL0_GZdDV-g0z_9LRvS7m5nTqmrecLFlbljvZ6jz0RPYYszFpNrNEGPi2Co91Rqz2G-z8Dpl0LMvnmluuWwT74QjawQdvWKaTznXkOT8CpHydkwGaoiw0TUkOsqGSyQRNTYwNu0BfC4Icn1H/s1600/Log-normal-pdfs.png" width="300" /></a></div><p>For a wider range <span style="background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;">σ</span>=1 your friends have <i>e</i> times as many friends as you do!</p></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-42674814833706152562023-06-27T22:16:00.003-07:002023-07-30T00:25:49.760-07:00Inversion Table<p>I have been working on extending the <a href="https://tglad.blogspot.com/2023/06/void-cluster.html">previous inversion shapes</a> into a full table of inversion fractals. It does appear that spherical inversion is a nice way to get 'canonical' examples of each recursive shape described in the classification table <a href="https://sites.google.com/site/simplextable/">here</a>.</p><p>I have used Shadertoy with a simple render path <a href="https://www.shadertoy.com/view/cslfWn">here</a>.</p><p>In addition to the already discussed sphere cluster, there are two main methods worth discussion:</p><h3 style="text-align: left;">1. Trees</h3><p>I have used a different method to the <a href="https://tglad.blogspot.com/2023/06/inversion-tree.html">previous inversion trees.</a> Instead, I have taken a platonic solid (currently only tetrahedron, octahedron and cube) and places a sphere inversion at each face to generate the domes, and a sphere inversion at each corner to generate the intermediate domes between the hemispherical large domes. </p><p>There is therefore a parameter to control the doming angle and a second parameter to control the width of this intermediate area. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfCyCvVmCTOmZkOkL57Sggnqcv9CXl2I_xBFs0xJRUINwDUr49RhIVHPuGRLbKCrdITVizQxG123jPw49wQdHjFYYSeD4F6lxcbR3z5g-mdPFmQG4YY0wKdv6xszoRtRJCvm0HnLJ4Jrd3pduJpKy7Wde1Y5pZ9C20x3BEdEeAlxaJ1KzFHvXdxZu1cqWr/s650/tree1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="392" data-original-width="650" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfCyCvVmCTOmZkOkL57Sggnqcv9CXl2I_xBFs0xJRUINwDUr49RhIVHPuGRLbKCrdITVizQxG123jPw49wQdHjFYYSeD4F6lxcbR3z5g-mdPFmQG4YY0wKdv6xszoRtRJCvm0HnLJ4Jrd3pduJpKy7Wde1Y5pZ9C20x3BEdEeAlxaJ1KzFHvXdxZu1cqWr/w400-h241/tree1.png" width="400" /></a></div>Above is a tree using the octahedron platonic solid, so there are 8 large domes on the octahedron faces and a 'cross' structure filling the gap between those domes. <div><br /></div><div>The doming angle can be increased to generate a tree-sponge and then to generate a sponge-sponge:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvuQ3e7Sh6XJB0oAeK7wwxSk1NsuZH6yfo45UAqxXXadsnzcn24exj8Iuh2QNtrbP5rP_Gz9PXgwWQF7QP0WXaY7FWtsCF-46HdV0YT-yVn2jZKXMD9AU6kf0_947U7o8PMPePzLDWxITsuRD3W0fj-OoRMkl14DzpIRVDU3pAZI7EGN0c8cwHNaguvCPy/s650/sponge1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="392" data-original-width="650" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvuQ3e7Sh6XJB0oAeK7wwxSk1NsuZH6yfo45UAqxXXadsnzcn24exj8Iuh2QNtrbP5rP_Gz9PXgwWQF7QP0WXaY7FWtsCF-46HdV0YT-yVn2jZKXMD9AU6kf0_947U7o8PMPePzLDWxITsuRD3W0fj-OoRMkl14DzpIRVDU3pAZI7EGN0c8cwHNaguvCPy/w400-h241/sponge1.png" width="400" /></a></div><div><br /></div>Also, the doming angle can be made negative to generate a shell-shell (recursive indentations):<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEYfz_vESYvbIMrQZqxCtpyKw4GU4yw1FEt-U0O4QUez4Qrk5cJ_XWcPz3e_jv5QOhvYL7aGMq0X4vGqIxUOradtWDbSGZSEcviVL4ToztDJTj9gznsC9IDhJckFYbAfijNQed2c94bWGU0eSUAHMGMtz3YbouKN-erYSeT8LB_6-efEQKHgaND2MNOdBC/s650/shell1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="392" data-original-width="650" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEYfz_vESYvbIMrQZqxCtpyKw4GU4yw1FEt-U0O4QUez4Qrk5cJ_XWcPz3e_jv5QOhvYL7aGMq0X4vGqIxUOradtWDbSGZSEcviVL4ToztDJTj9gznsC9IDhJckFYbAfijNQed2c94bWGU0eSUAHMGMtz3YbouKN-erYSeT8LB_6-efEQKHgaND2MNOdBC/w400-h241/shell1.png" width="400" /></a></div><br /><div>We can even alternate the doming angle to generate a shell-tree, so it is quite a versatile method for generating various classes of recursive shape.</div><div><br /></div><h3 style="text-align: left;">2. Clusters</h3><div>In addition to the already described <a href="https://tglad.blogspot.com/2023/05/sphere-cluster.html">sphere cluster</a> (which I use for the cluster-cluster class), we can generate recursive shapes on platonic solids by placing contacting spheres at each face, with a central contacting sphere in the middle. This is currently just done for tetrahedron, octahedron and cube, just like the tree structures above.</div><div><br /></div><div>If each sphere recurses to the central sphere, then it generates a void-sponge:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyuRNFNZccihJk5UiCJR-IIMQRtOpqjvRHBGRd7cDiR1BZVahKFIJfJGutpgEl9OgylrOviFCDPRcA_Yh-mZERUmk0keQbwWySzhaQRylloZkO24FGTfzR1QKki8Aj6N2nP4BcMTKkgTJfPlF4Nzsn0fLQ__W6dcoJjPNwdSfq43z5HQ4I2HM7VTq6tVXi/s642/voidsponge1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="386" data-original-width="642" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyuRNFNZccihJk5UiCJR-IIMQRtOpqjvRHBGRd7cDiR1BZVahKFIJfJGutpgEl9OgylrOviFCDPRcA_Yh-mZERUmk0keQbwWySzhaQRylloZkO24FGTfzR1QKki8Aj6N2nP4BcMTKkgTJfPlF4Nzsn0fLQ__W6dcoJjPNwdSfq43z5HQ4I2HM7VTq6tVXi/w400-h240/voidsponge1.png" width="400" /></a></div>If we make the outer spheres smaller so that they contact the central sphere but not themselves then it makes a void-tree:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwVF3oUMlRSM9vCOgf3JBYVccyoZtG03FeGs1shViToLm5p3yY-6mbXUe7oWNA5F3ItUDZ6wdKVS_GUfszrzW6_PBOexulniUDXUG6ycCzWZfOWTSo_KZ18dRiKjV6zvBO5KYy5uWW3WBW013s3kBHo0BYThSww4nzi-nACr_GQra2gdJmGLZcWdRg_F8E/s642/voidtree1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="386" data-original-width="642" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwVF3oUMlRSM9vCOgf3JBYVccyoZtG03FeGs1shViToLm5p3yY-6mbXUe7oWNA5F3ItUDZ6wdKVS_GUfszrzW6_PBOexulniUDXUG6ycCzWZfOWTSo_KZ18dRiKjV6zvBO5KYy5uWW3WBW013s3kBHo0BYThSww4nzi-nACr_GQra2gdJmGLZcWdRg_F8E/w400-h240/voidtree1.png" width="400" /></a></div>and if we make them smaller so that they don't touch the central sphere either, then it generates a void-cluster:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGaty-y0Q0IQxCiZCWFppFpS__MYTImWR2B2BMWAAgt8zzzBOQddFUG0ZXjqxVhznkC5eAh9DvDg9WxmCOed1h3zyk3pUx4pPgR5WqJ7uS4CCEgSXhQSG1U4Hsx8nFjB2f6HnwjoIuBZOlYG-rrWwW_aDfWNw_uc7V16NiLiulzT62kYwr9Fz26WHtjIfx/s642/voidcluster1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="386" data-original-width="642" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGaty-y0Q0IQxCiZCWFppFpS__MYTImWR2B2BMWAAgt8zzzBOQddFUG0ZXjqxVhznkC5eAh9DvDg9WxmCOed1h3zyk3pUx4pPgR5WqJ7uS4CCEgSXhQSG1U4Hsx8nFjB2f6HnwjoIuBZOlYG-rrWwW_aDfWNw_uc7V16NiLiulzT62kYwr9Fz26WHtjIfx/w400-h240/voidcluster1.png" width="400" /></a></div>In each case, the platonic solid can be chosen, as can the relative sphere sizes. <div><br /></div><div>In addition to these void (pure fractal) objects, the recursion method can be applied to any bounded shape to make a cluster of those shapes. So for instance, we can make a shell-cluster:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbvsizwbbMKx3syeou9mKXNy-CqiqhZ0NFV1qCdLCVpT1Nr8VfV01JZNIuQU3lB3WvfZf-yBRStZjDMfv8Vc_el487pys_Sj04MJwOI26zMp64ZXaPY8rH8LZJhW-We52Giw0Qxank7Vo5j20CP9530o43n9GX422exYB68mcF0HMJHAJ81CWD1UVizgxw/s642/shellcluster1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="386" data-original-width="642" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbvsizwbbMKx3syeou9mKXNy-CqiqhZ0NFV1qCdLCVpT1Nr8VfV01JZNIuQU3lB3WvfZf-yBRStZjDMfv8Vc_el487pys_Sj04MJwOI26zMp64ZXaPY8rH8LZJhW-We52Giw0Qxank7Vo5j20CP9530o43n9GX422exYB68mcF0HMJHAJ81CWD1UVizgxw/w400-h240/shellcluster1.png" width="400" /></a></div><br /><div><br /><div>These two broad methods provide most of the 16 classes that I have so far generated. These are selected by clicking on the appropriate square in the table grid that overlays the fractal (as seen in the above images). There are a couple of outlier types that I have also added:</div><div><br /></div><div><h3 style="text-align: left;">void-foam</h3><div>This is simply a sphere-packing using a Kleinian group similar to the Gx series but in 3D.</div><h3 style="text-align: left;">cluster-foam</h3><div>This is a special version of the Kleinian group that includes solid areas.<div><div><h3 style="text-align: left;">foam-cluster</h3><div>This is a modification of the cluster-cluster previously described, which esentially inverts the cluster-cluster around its sphere, to give a foam structure on the inside. This is done recursively, so the empty spheres in the foam also have little sphere clusters inside them. </div><p><br /></p><h3 style="text-align: left;">Remainder:</h3></div></div></div></div></div><div>The remaining shapes are principally shells and sponge structures. I am not yet sure how best to make these with sphere inversions. Any suggestions are appreciated.</div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-23777180451027289522023-06-09T04:00:00.006-07:002023-06-11T04:11:44.567-07:00Void Cluster<p>Fractal dust AKA a void-cluster is fairly easy to generate, for example the <a href="https://en.wikipedia.org/wiki/Cantor_set#Cantor_dust">3D Cantor dust</a>. Here I continue working on developing less rectilinear examples by using sphere inversion.</p><p>The method I use is very similar to the previous <a href="https://tglad.blogspot.com/2023/05/sphere-cluster.html">Sphere Cluster</a> in that it uses the dodecahedral or icosahedral symmetries together with the offset sphere inversion that typically generates the hyperbolic tesselation of the above polyhedrons.</p><p>The difference is with this void-cluster we do not apply the centralised sphere inversion when recursing into a sub-cluster, and we rescale the cluster from rk up to 1 each iteration unconditionally.</p><p>The result is an icosahedral/dodecahedral set of sub-clusters, together with the rk sized subcluster in the centre. Here for k=0.9:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIGzjBQQJbcakA1gBI8M5nx1hKDJ_jy4-GL7dwktksuEAeUun4jJhaR-kNhuE7Wij4efxW5SFvBkmfz1xZgSJ1qbGaBSoBo-eB8EKWQRLNPnlrVqlfrANKotnCoSjd6ShYcfpZFgLEHIL66jTdP9tCqqblbdY7Utu16OYZG2tlB6tNrCymgOAZVTcG5w/s1560/Vcluster0.9.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1560" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIGzjBQQJbcakA1gBI8M5nx1hKDJ_jy4-GL7dwktksuEAeUun4jJhaR-kNhuE7Wij4efxW5SFvBkmfz1xZgSJ1qbGaBSoBo-eB8EKWQRLNPnlrVqlfrANKotnCoSjd6ShYcfpZFgLEHIL66jTdP9tCqqblbdY7Utu16OYZG2tlB6tNrCymgOAZVTcG5w/w200-h149/Vcluster0.9.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6eRj3oWzsbPNIkgnCE3-3MFFMZNls3uYCotLtdkhR-TWRyjNuJD9AsjHu0C14DIXg75Mb-hcr_W-BvOtjFcqAb9uy3d2S32ytAOX64IuZdgosyxr9wQNBQm26DuBbtxNIniV5hMc4E25s-WqUfp6uuZuV3T8rqz0a0uvOkllrtMThiL_AnsS_tszuFg/s1560/Vcluster0.9dodec.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1560" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6eRj3oWzsbPNIkgnCE3-3MFFMZNls3uYCotLtdkhR-TWRyjNuJD9AsjHu0C14DIXg75Mb-hcr_W-BvOtjFcqAb9uy3d2S32ytAOX64IuZdgosyxr9wQNBQm26DuBbtxNIniV5hMc4E25s-WqUfp6uuZuV3T8rqz0a0uvOkllrtMThiL_AnsS_tszuFg/w200-h149/Vcluster0.9dodec.png" width="200" /></a></div><div style="text-align: center;">Above left: icosahedral and right dodecahedral void-clusters</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSqsnyGiOiZ_hFMxrY74A329yG3ovaWC2K_B8ynm50K81a_RCxkeYzyJplEkMPv5MQMXlmbLIkv5iW7oYeTzV73vkYBm0vN7NvvEgNRzn8emy4EUQChIWY5eu_4L-OnnkRLOczz7nXR1NN4HaQOlDPMtFrKeBT0mqlQRgDcxDiFGeekLKd3aO1WOp3hQ/s1560/Vcluster0.9Tog.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1560" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSqsnyGiOiZ_hFMxrY74A329yG3ovaWC2K_B8ynm50K81a_RCxkeYzyJplEkMPv5MQMXlmbLIkv5iW7oYeTzV73vkYBm0vN7NvvEgNRzn8emy4EUQChIWY5eu_4L-OnnkRLOczz7nXR1NN4HaQOlDPMtFrKeBT0mqlQRgDcxDiFGeekLKd3aO1WOp3hQ/w200-h149/Vcluster0.9Tog.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZqnSA8-i1uyLLzaRAaIQVrShIOESiuxgo17Xf6p0z5KwJCG3NJIlJjQzXFdL6nLtS_jNTfhOd1Lrlor6FsuAy-2a1BR7qMp6-mx8YJMzw6BiYoRk5yXUAH-a1DuDrqZacbtot0UemcR6EyVZsyGYap93jySugX-DFVM3977JDSzBl-L-m3J5_fZ6oeg/s1560/Vcluster0.9dodecTog.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1560" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZqnSA8-i1uyLLzaRAaIQVrShIOESiuxgo17Xf6p0z5KwJCG3NJIlJjQzXFdL6nLtS_jNTfhOd1Lrlor6FsuAy-2a1BR7qMp6-mx8YJMzw6BiYoRk5yXUAH-a1DuDrqZacbtot0UemcR6EyVZsyGYap93jySugX-DFVM3977JDSzBl-L-m3J5_fZ6oeg/w200-h149/Vcluster0.9dodecTog.png" width="200" /></a></div><div style="text-align: center;">Above: same but alternating between the two types </div><p>Here are the same variations for k=1 from an approximately symmetrical view angle:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDJBai8m0lhtYQFurLmISd0FAbickB67Q7Vs5h6SWOJCQt5DXGALRzjHUwaavIwc6PnvrdVXxIK8dSWkk7ARIkqpeb8HPGGVj1aaiGhjfHV6ZCaaHoU7rpAYkbxKZR-jo16i5K6P5tdS5wLzSMotQ-AW8tKIb2t-vRbmU0OE-DVZ-jMohoIc9Ddj5P5Q/s1560/Vcluster1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1560" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDJBai8m0lhtYQFurLmISd0FAbickB67Q7Vs5h6SWOJCQt5DXGALRzjHUwaavIwc6PnvrdVXxIK8dSWkk7ARIkqpeb8HPGGVj1aaiGhjfHV6ZCaaHoU7rpAYkbxKZR-jo16i5K6P5tdS5wLzSMotQ-AW8tKIb2t-vRbmU0OE-DVZ-jMohoIc9Ddj5P5Q/w200-h149/Vcluster1.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV4fcOZtd8NoF6uT3lFt5PJT1lYv536WvTPsfN1zvauOWRjJ9MwTPftroHdhqM1P2treHvc6wdTquOu1qIpUwnToCnzrCC_3rbX-NggShCIAAtB4XRTCKfsQ1h1xaUxyGlvBBVCzOXOCDF2si5m3fRz9iyb3dAN6Bw226N9yiy88S9xUH-tNY2EC4gTA/s1560/Vcluster1dodec.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1560" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV4fcOZtd8NoF6uT3lFt5PJT1lYv536WvTPsfN1zvauOWRjJ9MwTPftroHdhqM1P2treHvc6wdTquOu1qIpUwnToCnzrCC_3rbX-NggShCIAAtB4XRTCKfsQ1h1xaUxyGlvBBVCzOXOCDF2si5m3fRz9iyb3dAN6Bw226N9yiy88S9xUH-tNY2EC4gTA/w200-h149/Vcluster1dodec.png" width="200" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8Ecx5VOAxXN_bScCD1cg_76mrvGx3G57KJCgJqb70b-z0KzPDFF3c4f7pUl8ncCyKS6YT_jRR2wrLJ-A0br4TrBl5PeeYIg-uOdaK_-RICbr0F5RDRVxRkDtdZVBvAxAM2Oqwkoysni_YXrauKUVTO8k2YgxRoXuhQ51n36n9w2TVx2rOZDecKuvoTA/s1560/Vcluster1dodecTog.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1560" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8Ecx5VOAxXN_bScCD1cg_76mrvGx3G57KJCgJqb70b-z0KzPDFF3c4f7pUl8ncCyKS6YT_jRR2wrLJ-A0br4TrBl5PeeYIg-uOdaK_-RICbr0F5RDRVxRkDtdZVBvAxAM2Oqwkoysni_YXrauKUVTO8k2YgxRoXuhQ51n36n9w2TVx2rOZDecKuvoTA/w200-h149/Vcluster1dodecTog.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxt98yG_niwJpJE2caNoqDV3lFMsPMFHUdec4BBsq89Yj2QKVexJgLMdMCm_ZM1HsqwGVXTdCZ_qOJ4bdO3eBM8USVzoRw98mnyW_99nigPJxbh8yt_mldHE8uBkMbXgeVEtyZ7diHDJ-Uy3AzUupphlamjmF7b9W9ge0N-cTXCR20Qv-2u8v9Fy4Mig/s1560/Vcluster1Tog.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1560" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxt98yG_niwJpJE2caNoqDV3lFMsPMFHUdec4BBsq89Yj2QKVexJgLMdMCm_ZM1HsqwGVXTdCZ_qOJ4bdO3eBM8USVzoRw98mnyW_99nigPJxbh8yt_mldHE8uBkMbXgeVEtyZ7diHDJ-Uy3AzUupphlamjmF7b9W9ge0N-cTXCR20Qv-2u8v9Fy4Mig/w200-h149/Vcluster1Tog.png" width="200" /></a></div><br /><p>The problem with these clusters is only that they don't seem to be a proper generalisation of the Sphere Cluster, becaue they aren't based on an inversion of a regular polyhedral tesselation.</p><p>Any hyperbolic tesselation when inverted will give a central sphere of finite size, leading to the Sphere Cluster when applied recursively. If you think of the reducing radius central sphere as equivalent to a growing radius hyperbolic disk, then the limit would be an infinite radius (and zero curvature) hyperbolic disk which is flat Euclidan space. The only regular polyhedral teselation of Euclidean space is cubic. </p><p>So we invert the space, then pull all cubes in the tesselation into the central cube. This is the equivalent of the multiple dot products and offset sphere inversions in the Sphere Cluster. Then shrink the space by k and recurse.</p><p>The result for k from 0.4 up to 1.6 is:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghDai7a4rrf6O9quFRlRL1G2yps0weNGWSP02KmF0TC0PNt3LWLMMnbVmUM4hRqrr9cinm_O3fYyUZ4Hs3KcsuyZ4fcSuwgrrTTVH8XGESCYG5aziA--3akqqs1ad5Q4wYnUbLMfvDVkKEdlfLgrE2YrHkiSh5wnkj3LVVVROl4cltB61UlVtFAsleDw/s1473/VC0.1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1473" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghDai7a4rrf6O9quFRlRL1G2yps0weNGWSP02KmF0TC0PNt3LWLMMnbVmUM4hRqrr9cinm_O3fYyUZ4Hs3KcsuyZ4fcSuwgrrTTVH8XGESCYG5aziA--3akqqs1ad5Q4wYnUbLMfvDVkKEdlfLgrE2YrHkiSh5wnkj3LVVVROl4cltB61UlVtFAsleDw/w200-h158/VC0.1.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL0oOtb3ijFRXLBSXMoxVR8iMSwmg1qt2pXGpnweGwAlF27DuGKp8m2STx8G12yDYVYlW0Mt58pZkwUQhBYRwk8C8_X7e1ljY6JGvOAPFHa1Bzx5YsqgTaC-pkHmdVVjtQaqc2d-iScDTXRMLAmwpGwc_oaSqAEscCw9Zd2NRN1n6yk2GVSFOxgJnDQQ/s1473/VC0.2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1473" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL0oOtb3ijFRXLBSXMoxVR8iMSwmg1qt2pXGpnweGwAlF27DuGKp8m2STx8G12yDYVYlW0Mt58pZkwUQhBYRwk8C8_X7e1ljY6JGvOAPFHa1Bzx5YsqgTaC-pkHmdVVjtQaqc2d-iScDTXRMLAmwpGwc_oaSqAEscCw9Zd2NRN1n6yk2GVSFOxgJnDQQ/w200-h158/VC0.2.png" width="200" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMi7Pk8qYAG3BVl0n6JejXwShHbWoSNPlBN-lVpYpnNdGkWhrCQbLyicAAMBLjpXl95zvnsIxyobJ3XBtpFu01AVxb-Ca9b3NKlzIIpJ4liNX_B994CpGM-wRElZ1MgF9pUrRmBEouZwxH8rRGyI-lFdHSZrf3MIET9YBvdzzPhvLIRS_K_DVfusCdIg/s1473/VC0.3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1473" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMi7Pk8qYAG3BVl0n6JejXwShHbWoSNPlBN-lVpYpnNdGkWhrCQbLyicAAMBLjpXl95zvnsIxyobJ3XBtpFu01AVxb-Ca9b3NKlzIIpJ4liNX_B994CpGM-wRElZ1MgF9pUrRmBEouZwxH8rRGyI-lFdHSZrf3MIET9YBvdzzPhvLIRS_K_DVfusCdIg/w200-h158/VC0.3.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimeNxCBRKnXyB2YVzpO-ei93qxGtl2LW3wCnnCLvRtJqGfnJgD6sYVROfcOsix1xBmU8GwYr6hbNiJ9jCxtLJt8GXNGq6FpqYZqWzqx6l8HElHkx6JyXsGMxYS-uiLWV2cHr6Z_6qEyTsEyurkkwSBsVw4m1aUkL8bNzJtBry7KB1SQfZUQ-t8N4wHzA/s1473/VC0.4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1473" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimeNxCBRKnXyB2YVzpO-ei93qxGtl2LW3wCnnCLvRtJqGfnJgD6sYVROfcOsix1xBmU8GwYr6hbNiJ9jCxtLJt8GXNGq6FpqYZqWzqx6l8HElHkx6JyXsGMxYS-uiLWV2cHr6Z_6qEyTsEyurkkwSBsVw4m1aUkL8bNzJtBry7KB1SQfZUQ-t8N4wHzA/w200-h158/VC0.4.png" width="200" /></a></div><br /> The significant points along the way are k=1 where it goes from a void-cluster to a void-sponge:<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6JZTza19SZm3I1zCC_Vwu9AapUSkt7qwGWOs75IcnsYRm17eUCBwLm5ygB-ecsysAV8AOtJQaof_AE4rgljVeV3ltPBNLamutE4__BfzfI52na-m6qtZNN4ep2Ht4weDoAF0LwfM51fRXJNCH7dQRxZQk0TyqD5Kxrbk4QQMgH_uAShWxIoLs07ucPg/s1473/VC0.25b.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1473" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6JZTza19SZm3I1zCC_Vwu9AapUSkt7qwGWOs75IcnsYRm17eUCBwLm5ygB-ecsysAV8AOtJQaof_AE4rgljVeV3ltPBNLamutE4__BfzfI52na-m6qtZNN4ep2Ht4weDoAF0LwfM51fRXJNCH7dQRxZQk0TyqD5Kxrbk4QQMgH_uAShWxIoLs07ucPg/s320/VC0.25b.png" width="320" /></a></div>and k=2 where (despite rendering artifacts) it becomes a void-foam:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBHCH3L5_Fi6nflzTHRmB9yXDynP9F4xBcKnYQAP8yLurgdseTjF0_4gNKXBgWmnqW7mT3tqGcd0DGLi0GFeSmOxxIYGCXW1KNPYHtXhMV2DI7S2VIb7cY54WrMo-jK1fdAjOGDo9YAKUpFbXBsp3M1PM3Qme57yDc3M3a8MUnFbsoHEeCgYOO98tPIw/s1473/VC0.5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1473" height="252" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBHCH3L5_Fi6nflzTHRmB9yXDynP9F4xBcKnYQAP8yLurgdseTjF0_4gNKXBgWmnqW7mT3tqGcd0DGLi0GFeSmOxxIYGCXW1KNPYHtXhMV2DI7S2VIb7cY54WrMo-jK1fdAjOGDo9YAKUpFbXBsp3M1PM3Qme57yDc3M3a8MUnFbsoHEeCgYOO98tPIw/s320/VC0.5.png" width="320" /></a></div>(slice-through visible).<div><br /></div><div>This is a very interesting family of shapes as it covers three fractal classes, and it seems to be a generalisation of the Sphere Cluster (which itself seems to cover cluster, cluster-sponge and possible cluster-foam classes). But more interesting is that even the finest k=0.4 case seems like its fractal dimension would be 3, due to being the inversion of a 3D (cubic) lattice.<br /><div><br /></div><div>Here's a higher detail of k=0.5:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEE7K4dmxL96yiTJYiIz6o72DuM8t-za4PbTp02Wm2RWBSQ0eeGUMg3OL-eTsgDIAYGfiljp-HiP3KR1r0PvMYlrAH_tahR3DFtH2nQfxURsh4dojG7AG_k_LC5gEFDeo2C98PcjovfOcDmlGem2QnQ6otJhrikDMEoBVwXkKuq2XJbcUIYo4co3TyTA/s2337/VC0.5b.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="2337" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEE7K4dmxL96yiTJYiIz6o72DuM8t-za4PbTp02Wm2RWBSQ0eeGUMg3OL-eTsgDIAYGfiljp-HiP3KR1r0PvMYlrAH_tahR3DFtH2nQfxURsh4dojG7AG_k_LC5gEFDeo2C98PcjovfOcDmlGem2QnQ6otJhrikDMEoBVwXkKuq2XJbcUIYo4co3TyTA/w640-h318/VC0.5b.png" width="640" /></a></div><br /><div><br /><p><br /></p></div></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-90745351603061892352023-06-04T01:28:00.009-07:002023-06-04T19:11:41.432-07:00Inversion Tree<p> A while ago I wrote about <a href="https://www.researchgate.net/publication/309391846_Three_Variable_Dimension_Surfaces">three variable-dimension surfaces</a>, which included a sphere inversion-based surface. The idea is to use a disk packing and then convert each disk into a spherical bulge and repeat. </p><p>At the time I only knew about the Apollonian Gasket sort of disk packings, and these have the problem that finite sized disks touch each other, so if you keep adding bulges then the surface will self-intersect. For this reason I chose a type of packing where I could toggle the direction to prevent intersections. But the result is not a tree for this reason. </p><p>If we instead make use of Kleinian packings such as the G8 packing, then finit disks don't butt up against each other, and the disk radii drop relatively uniformly with distance to the disk edge. It is therefore possible convert them all into spherical bulges without self-intersection. </p><p>The method follows that in the <a href="https://arxiv.org/pdf/2001.07010.pdf">Kajino paper</a> but with a bigger family of disk packings. Here the G8 group example is used, like in my <a href="https://tglad.blogspot.com/2023/05/disk-cluster-2.html">recent post</a>:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3SsJSP2HMCrO9nWJmREkpk2ufmp82d1JM4dm3TDWDO-Te0LwCcwz3FpDdnhVefIl6tdz1jj5Z0P7sk9WyIyTHA8DdWRc2JFF9pwgZPfYm9vW18bvWuipxkMJlq4w-Nt1VJ0dMU1upJ0_WOG7DTMG7-FLn_R11Drp1fE51F1CV2yPBbqg162NdTJ7Dlw/s423/G81.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="408" data-original-width="423" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3SsJSP2HMCrO9nWJmREkpk2ufmp82d1JM4dm3TDWDO-Te0LwCcwz3FpDdnhVefIl6tdz1jj5Z0P7sk9WyIyTHA8DdWRc2JFF9pwgZPfYm9vW18bvWuipxkMJlq4w-Nt1VJ0dMU1upJ0_WOG7DTMG7-FLn_R11Drp1fE51F1CV2yPBbqg162NdTJ7Dlw/w200-h193/G81.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3xx9Zlg1LjC9XZQnVGCcpnP5c7tQlUsv6jV_d88XMypgKUOeHpnb0S35nENwDIj8DVa-jmwv9YtuEePGxjgFz2-p7z9jp_0pQOnGHom0iwBxrY2UQXUX1mshdIfAST_jH6eh1iSNIJ4rwWnGv_zuxFw9LVuwaPsSAcauu1pu09LYx5VsNvvoTZ4odYg/s409/G82.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="404" data-original-width="409" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3xx9Zlg1LjC9XZQnVGCcpnP5c7tQlUsv6jV_d88XMypgKUOeHpnb0S35nENwDIj8DVa-jmwv9YtuEePGxjgFz2-p7z9jp_0pQOnGHom0iwBxrY2UQXUX1mshdIfAST_jH6eh1iSNIJ4rwWnGv_zuxFw9LVuwaPsSAcauu1pu09LYx5VsNvvoTZ4odYg/w200-h198/G82.png" width="200" /></a></div>The left image is the limit set and the right shows the three symmetries used to generated it. These are defined by the three green lines (exactly as used previously) and the purple L<span style="font-size: xx-small;">4</span> line. To see if a point is in the set, repeatedly:<div>1. reflect around the two straight lines until the point is within that wedge</div><div>2. if the point is inside the l<span style="font-size: xx-small;">2</span> circle then invert around that circle</div><div>3. if the point is inside the l<span style="font-size: xx-small;">4</span> circle then revert around that circle</div><div>4. if the point is outside the centred green circle then colour white and exit</div><div>colour black if iterations ended<br /><p>Notice that these transformations never make the space (close clusters of points) smaller, so this is a form of escape-time fractal. If we use the l<span style="font-size: xx-small;">2</span>,l<span style="font-size: xx-small;">4</span> labels for the two circle radii and the letter L for the distance of l<span style="font-size: xx-small;">4</span>'s centre from the origin then:</p><p>- l<span style="font-size: xx-small;">2</span> = sec(pi/o1) / sqrt(cosec^2(pi/n) - sec^2(pi/o1))</p><p>- L = sqrt(1+l<span style="font-size: xx-small;">2</span>^2)</p><p>- l<span style="font-size: xx-small;">4</span> = L sin(pi/o2 - asin(l<span style="font-size: x-small;">2</span> sin(pi-pi/o2)/L)/sin(pi - pi/o2)</p><p>Where n is the number of child disks to the central one, and o1 and and o2 are two different order numbers, in particular, o1 is the number of hyperbolic tesselation regular polygons that meet at each vertex.</p><p>While all produce types of Kleinian group, it so happens that the types that I want (no bald spots, no black disks) happen when o2=3 and when o1 is the smallest value that is hyperbolic. For example if n=6 then three regular hexagons meeting at each vertex is a Euclidean tiling, so you need o1=4. For n from 4 up to 9 the values of o1 are therefore 5,4,4,3,3,3 respectively. The resulting tilings are shown in reading order here:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixuVP8Tc14aE8yz1lA0N1wifw7w0jEQLmi18RypkUP8EUfyzgqD4cnb15ajZhyYUW9FdHMaLnpqdQHL6r2wzkbke7gdRKDkdGYWZUGv2GdFZf1Co7XoQD15GWknInRQsKPovfges7yJhO2wtr5N779iJxmwgzblMWXNjWwBUIUfmMlk2XktYmauweYPw/s3000/Gn_Kleinians.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="3000" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixuVP8Tc14aE8yz1lA0N1wifw7w0jEQLmi18RypkUP8EUfyzgqD4cnb15ajZhyYUW9FdHMaLnpqdQHL6r2wzkbke7gdRKDkdGYWZUGv2GdFZf1Co7XoQD15GWknInRQsKPovfges7yJhO2wtr5N779iJxmwgzblMWXNjWwBUIUfmMlk2XktYmauweYPw/w640-h426/Gn_Kleinians.png" width="640" /></a></div><br /><p>Hopefully you can see the number of children around the central disk grows from 4 up to 9, and that no two (finite sized) disks ever butt up against each other. You may also notice that the central disk size doesn't grow in a simple way with n, that is because o1 is changing, only remaining constant on the bottom row.</p><p>In order to render this as a tree of bulging disks we need to develop an approximate distance estimator. The method I use per iteration is as follows:</p><p>1. if the point is outside some spherical region above the disk then return the distance to a slightly smaller spherical region (scaled by the running scale). This is heuristic so takes some tuning.</p><p>2. apply the above escape-time transformations for limit set as a horizontal unit disk, but make sure that sphere inversions are 3D. </p><p>3. if the point is within a sphere that encompasses the central disk, then apply a conformal transformation that bends the desired spherical bulge back to a flat disk, and scales it back to the unit disk.</p><p>if iterations run out then return the distance to the flat disk (scaled by the running scale).</p><p><br /></p><p>This 'desired spherical bulge' is specified by a bend angle parameter which describes how much the bulge lifts up relative to being flat. We therefore are left with a tree family defined by two parameters: n and bendAngle.</p><p>Here is n=8 at bendAngle 0.3 up to 1.3 in steps of 0.2:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoPwvjpun_IGIpEAG1SKD618RvxM88woCb1dmmSIZuncIsvw5LbenE8NDrs-ZBXKcT0_-5ItI1tRKfref8YAr-lSlmUwgFFc_WzZXl1ndYn_fvAQReP_a3u_TYOKEolU_UmwFAC2cCLDHd3nlMrrOpOl2W1_E_sLUCTe31I_QZ3GelznYNAoVn2oOnJQ/s1422/KTree0.3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoPwvjpun_IGIpEAG1SKD618RvxM88woCb1dmmSIZuncIsvw5LbenE8NDrs-ZBXKcT0_-5ItI1tRKfref8YAr-lSlmUwgFFc_WzZXl1ndYn_fvAQReP_a3u_TYOKEolU_UmwFAC2cCLDHd3nlMrrOpOl2W1_E_sLUCTe31I_QZ3GelznYNAoVn2oOnJQ/w200-h163/KTree0.3.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBOuEUN5aa5q_2u2r-U_9KIfxUnXCJhV6mBVH1IgnYplwq4QBnln48ItMhrlBfl3D0XZSMGzaGpbRTlCXR9SZxTRPKw5g2wTYTmm3AYUZNIN-_VJGeP105lKjLE6YiUcKFXfu2iSmoEllJWmBRHoea3pCLHprLdwJstyNZnJaM5vnnR9_QxQBoRLksdQ/s1422/KTree0.5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBOuEUN5aa5q_2u2r-U_9KIfxUnXCJhV6mBVH1IgnYplwq4QBnln48ItMhrlBfl3D0XZSMGzaGpbRTlCXR9SZxTRPKw5g2wTYTmm3AYUZNIN-_VJGeP105lKjLE6YiUcKFXfu2iSmoEllJWmBRHoea3pCLHprLdwJstyNZnJaM5vnnR9_QxQBoRLksdQ/w200-h163/KTree0.5.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXKWZvdtdR9gwEf4DxHs6EKRMp9HkBtLzLppXS-eY7_SgF5NJdDoKfkSHHKFMT9F4QQqWCXPD-5w5-2zPMKjMaeC0LFsq-SkepFGVSN8qTDPqsRqD0MOmFOAuVpKx_lTpF0WYt6Job_Ybp6TcvK31SNMv3M_i-gF_xLYPNu8OuVyL67BPHh_IRlVli_A/s1422/KTree0.7.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXKWZvdtdR9gwEf4DxHs6EKRMp9HkBtLzLppXS-eY7_SgF5NJdDoKfkSHHKFMT9F4QQqWCXPD-5w5-2zPMKjMaeC0LFsq-SkepFGVSN8qTDPqsRqD0MOmFOAuVpKx_lTpF0WYt6Job_Ybp6TcvK31SNMv3M_i-gF_xLYPNu8OuVyL67BPHh_IRlVli_A/w200-h163/KTree0.7.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9B3iPtoyE59k8xU16PSYwYm2T7caOwzYZmQKpBy3lIvzAJ3i11JVleuNZSU_2z5zXkuJhAzAFEHIAQphCnaumLJQNn2NnWsw5Qg2cP25An41XqWLtv-GS0usV9XegUjabVWK2g3Zyqdjy6g-MG396b28VOaRiG2MzOnFmAaifiuqRZSYs-cFpJ_NeJA/s1422/KTree0.9.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9B3iPtoyE59k8xU16PSYwYm2T7caOwzYZmQKpBy3lIvzAJ3i11JVleuNZSU_2z5zXkuJhAzAFEHIAQphCnaumLJQNn2NnWsw5Qg2cP25An41XqWLtv-GS0usV9XegUjabVWK2g3Zyqdjy6g-MG396b28VOaRiG2MzOnFmAaifiuqRZSYs-cFpJ_NeJA/w200-h163/KTree0.9.png" width="200" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqeVBawJtq-Hz8dnVET1yEH6DhdZekbb_Nd26RvAQayY3XPvCn5e-oJHyfDinWUO2VtcR6AuePaF6OQYj6KtbiMyxX3TduRWEO7tNbduw2BH9Yb44-flLWEFomE3It19stk3tOnFpCI9dwyFjp7mLFW3HCROm22iPWAJOR74ETKiRNtvf8hYGl0bWlFA/s1422/KTree1.1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqeVBawJtq-Hz8dnVET1yEH6DhdZekbb_Nd26RvAQayY3XPvCn5e-oJHyfDinWUO2VtcR6AuePaF6OQYj6KtbiMyxX3TduRWEO7tNbduw2BH9Yb44-flLWEFomE3It19stk3tOnFpCI9dwyFjp7mLFW3HCROm22iPWAJOR74ETKiRNtvf8hYGl0bWlFA/w200-h163/KTree1.1.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilxzXtIbQFlhmK6kg2Pthy5FvABvGsK6m1wNNAfYfccB_VhG7tZZLuhXk1kCP7yI0Cl3-w00XaaLUlBr9bgpmBIA1VJ_KjTDUBDjT1VdGcsEszx-tVyMQnOW1cKyjY1MYIiF2tPBTZU5n5jQQJCbY-0GCYzFeW4ahBNRx4qC5exPP4AVwvfrMHaGwx3w/s1422/KTree1.3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilxzXtIbQFlhmK6kg2Pthy5FvABvGsK6m1wNNAfYfccB_VhG7tZZLuhXk1kCP7yI0Cl3-w00XaaLUlBr9bgpmBIA1VJ_KjTDUBDjT1VdGcsEszx-tVyMQnOW1cKyjY1MYIiF2tPBTZU5n5jQQJCbY-0GCYzFeW4ahBNRx4qC5exPP4AVwvfrMHaGwx3w/w200-h163/KTree1.3.png" width="200" /></a></div><div><br /></div>And here is bendAngle 1 for values of n from 4 up to 9, in reading order:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkzbXaBRmcWUivszG8TgPAX48c_xPk_Aeq6AYHiI7gAVFGH-Uc9wOgI0X9V0i2v7qCAEu-6uvaoowXvVd8GTxCMAYgiyARl7K7NDTnhc1_RvHkWzIDsSm3x-j8V7s23Ms6D_j-qre7fIsGQSwSDUT3aeuibyX7BZJKgpsnlHs3GM2fk3vp0qZ-w6ifwQ/s1422/KTree4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkzbXaBRmcWUivszG8TgPAX48c_xPk_Aeq6AYHiI7gAVFGH-Uc9wOgI0X9V0i2v7qCAEu-6uvaoowXvVd8GTxCMAYgiyARl7K7NDTnhc1_RvHkWzIDsSm3x-j8V7s23Ms6D_j-qre7fIsGQSwSDUT3aeuibyX7BZJKgpsnlHs3GM2fk3vp0qZ-w6ifwQ/w200-h163/KTree4.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmpTss2lPU5ul5gtBZHWHbnSACKUuceNTRkGHXr7TI5ejqaE0r6cJj_XDPNmhD2opXCO0EZNVSVxo1MFhBq6yjutG0pszqVlwLwGkgnoaCKnH5kruBk9fKHrK5qp-2Genjc_p8maZWpjdSuII5fNtaCnl3HLNKxiqm9nv72J8HhgQqFnBqkK9bOTgk1Q/s1422/KTree5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmpTss2lPU5ul5gtBZHWHbnSACKUuceNTRkGHXr7TI5ejqaE0r6cJj_XDPNmhD2opXCO0EZNVSVxo1MFhBq6yjutG0pszqVlwLwGkgnoaCKnH5kruBk9fKHrK5qp-2Genjc_p8maZWpjdSuII5fNtaCnl3HLNKxiqm9nv72J8HhgQqFnBqkK9bOTgk1Q/w200-h163/KTree5.png" width="200" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO_jg4qgPd8bFB0s-jaPYyokFLkszhUipJVkQMic6j3j3beAR82T5v8gDRGtvCfV99wJJqiSt1YMxxbYq8srtk0UWBhChQDLDMEVCrtOiGw2s3kC7cNmzczL2MGEd7DtzEAXrumgQegyVpTqHvDl3JLP535EiVvMpKBsPe0KtAj_zCIH3jgrgoYyMIVg/s1422/KTree6.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO_jg4qgPd8bFB0s-jaPYyokFLkszhUipJVkQMic6j3j3beAR82T5v8gDRGtvCfV99wJJqiSt1YMxxbYq8srtk0UWBhChQDLDMEVCrtOiGw2s3kC7cNmzczL2MGEd7DtzEAXrumgQegyVpTqHvDl3JLP535EiVvMpKBsPe0KtAj_zCIH3jgrgoYyMIVg/w200-h163/KTree6.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitKbK23Eid4rqmvpxkdqmgoCoM9jzUpqbfYyEodSBt1fcigrAQCWX2k7PQbATJTHJGg6iiZ0kmepvMtt-5KtuhUbMR8j7mAoqo10qFbx4TvjAFPHZiPTAdqYgqPe2zFVJHcyXL8uwf4KKygSbvswi2WxCCODf0WJFnP0Wj3RScBcIPc5QzbyeORKUQXw/s1422/KTree7.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitKbK23Eid4rqmvpxkdqmgoCoM9jzUpqbfYyEodSBt1fcigrAQCWX2k7PQbATJTHJGg6iiZ0kmepvMtt-5KtuhUbMR8j7mAoqo10qFbx4TvjAFPHZiPTAdqYgqPe2zFVJHcyXL8uwf4KKygSbvswi2WxCCODf0WJFnP0Wj3RScBcIPc5QzbyeORKUQXw/w200-h163/KTree7.png" width="200" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY405L2eApL1dfI8GHG0Rv1QnnyhzqFnTkgyj3McKQSRFcfY-VfQs7GWo5dNNe5BOYQ9ZJ3_zd1Vz-M-fspWw_tfSFI3klgjLaJG-rsHqbwUDJNYR43ECd2dRGa52mHX-Bm5L0p3MWmqaBOoNM_2gSiWRRls58bAmIcLTCoJbjfkXh92QAhXF-qFLODw/s1422/KTree8.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY405L2eApL1dfI8GHG0Rv1QnnyhzqFnTkgyj3McKQSRFcfY-VfQs7GWo5dNNe5BOYQ9ZJ3_zd1Vz-M-fspWw_tfSFI3klgjLaJG-rsHqbwUDJNYR43ECd2dRGa52mHX-Bm5L0p3MWmqaBOoNM_2gSiWRRls58bAmIcLTCoJbjfkXh92QAhXF-qFLODw/w200-h163/KTree8.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlRXEf-m9qr3JEGUM4UCUyXwFT8q4REIaHaQWqflv01mi3kdlUd0Jynr5-7N7q01e0-4tjFnDnNqQeTSfIbpeGjGmKwBjYQ0eptG3ruT3h6Jd9904dHg0SZ8fcYXGgDlQKxVblHhpxUscgGCeFMyHN2OQPBUYXNo9U5TwpHaDBHlLKKQuFvYwbQex8Gg/s1422/KTree9.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1422" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlRXEf-m9qr3JEGUM4UCUyXwFT8q4REIaHaQWqflv01mi3kdlUd0Jynr5-7N7q01e0-4tjFnDnNqQeTSfIbpeGjGmKwBjYQ0eptG3ruT3h6Jd9904dHg0SZ8fcYXGgDlQKxVblHhpxUscgGCeFMyHN2OQPBUYXNo9U5TwpHaDBHlLKKQuFvYwbQex8Gg/w200-h163/KTree9.png" width="200" /></a></div><br /><div>As with the 2D images above, there isn't a simple progression of the shape because o1 is changing, but the shape is largely governed by how large the central disk is.<br /><p>As you can see, it not only generates a tree, but for large enough bendAngle it generates a tree-sponge when the branches touch, and then a sponge for higher bendAngle. It almost certainly then generates a foam structure at larger bend angles, but the distance estimator gets challenging to develop at these large angles.</p><p>We can look at just the inner disk shape, which is equivalent to applying the curve on the outer disk, here are some examples:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs0sxNrKzjy19-lLiI2g0nV3zqfZ-euJUQyjSE8qHrxJA9moyqKfMmGJJF4_2EdvTZu7_fqX_IWFp5XkwvPmNvZirzJtudbbcgluSFuYPvODABChZgUjqRSrj1U9ASE0WWi-CHXTb3Ups7Tq-LHrqHn2t3jQ-w7WpneLIh7j9ariP0vxlstlPq6vyPUQ/s1677/KTreeB71.0.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1677" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs0sxNrKzjy19-lLiI2g0nV3zqfZ-euJUQyjSE8qHrxJA9moyqKfMmGJJF4_2EdvTZu7_fqX_IWFp5XkwvPmNvZirzJtudbbcgluSFuYPvODABChZgUjqRSrj1U9ASE0WWi-CHXTb3Ups7Tq-LHrqHn2t3jQ-w7WpneLIh7j9ariP0vxlstlPq6vyPUQ/s320/KTreeB71.0.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;">n=7</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcVwapq-TSo8g7mGUu1pEbR7JCzyp_7L3Qq40qpn207jWshlbpgQ1zLSaXOw6Pbno5HoEp2QArv8J1-QsgpLM0JP54NxZh4zacD548iRUPiCxgQubgnpYjwriORBkooSReXM1Aye6hJAmaMQnGuzXpHCgCyF_IVrCotfcMYO0KgXe4G5sG4XH6dtv-Cw/s1677/KTreeB51.1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1677" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcVwapq-TSo8g7mGUu1pEbR7JCzyp_7L3Qq40qpn207jWshlbpgQ1zLSaXOw6Pbno5HoEp2QArv8J1-QsgpLM0JP54NxZh4zacD548iRUPiCxgQubgnpYjwriORBkooSReXM1Aye6hJAmaMQnGuzXpHCgCyF_IVrCotfcMYO0KgXe4G5sG4XH6dtv-Cw/s320/KTreeB51.1.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;">n=5</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7IBtUV_oO4X2qkrLlMmIwoN9kzicLCcdcRfAALUGTr3UA3t8KFz83s1Co3BaApCKoZ8hkyp_y_uYplShZdjHVTepmCCLOPJ6TFRHjjB5Es1C1lAMwKPQRBZItq8yWQIb1yoDztduFxl3Sl_r4TIDsGocJeSS-AhhIsd4VIV73gUnQL8BK0XFuGDcOOw/s1677/KTreeB1.0b.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1677" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7IBtUV_oO4X2qkrLlMmIwoN9kzicLCcdcRfAALUGTr3UA3t8KFz83s1Co3BaApCKoZ8hkyp_y_uYplShZdjHVTepmCCLOPJ6TFRHjjB5Es1C1lAMwKPQRBZItq8yWQIb1yoDztduFxl3Sl_r4TIDsGocJeSS-AhhIsd4VIV73gUnQL8BK0XFuGDcOOw/s320/KTreeB1.0b.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;">n=8</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzWhzh3CCTcOiZBX14-k4hyjBTvooVNXyCUSOlCyr5WlXbkpL5iTss0AMTfCWSnlxuzgJ0XXZ0UXt5ZULxifcyWi1xzTExuD_dGo6cSCoNQsWAJy5hzyaEEM9eoprl3T_e3vLENxHBYz4INdhsdJ_Iu4lW632lPLH7rTvXBV9HLXxUKOq39N65UaPxSA/s1677/KTreeB41.4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1677" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzWhzh3CCTcOiZBX14-k4hyjBTvooVNXyCUSOlCyr5WlXbkpL5iTss0AMTfCWSnlxuzgJ0XXZ0UXt5ZULxifcyWi1xzTExuD_dGo6cSCoNQsWAJy5hzyaEEM9eoprl3T_e3vLENxHBYz4INdhsdJ_Iu4lW632lPLH7rTvXBV9HLXxUKOq39N65UaPxSA/s320/KTreeB41.4.png" width="320" /></a></div><div style="text-align: center;">n=4</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0uK187mnVS_8pUxO1JkidWoAG6lPFOEbyJa_2nKxLO1DdABuDhFQB4sUL4YT9j5gPZaiZ83N98bvGCg2IJLKcG4iHIe88cBckh--HoXrhkP_1qIV4Q8ifrNsFH31m9IlejHhkZqXfdEO1UGei3RceraZ3qjs8GyHhE8Y1HxI9BNe1u1g20dmYjRZAOA/s1677/KTreeB1.1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1677" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0uK187mnVS_8pUxO1JkidWoAG6lPFOEbyJa_2nKxLO1DdABuDhFQB4sUL4YT9j5gPZaiZ83N98bvGCg2IJLKcG4iHIe88cBckh--HoXrhkP_1qIV4Q8ifrNsFH31m9IlejHhkZqXfdEO1UGei3RceraZ3qjs8GyHhE8Y1HxI9BNe1u1g20dmYjRZAOA/s320/KTreeB1.1.png" width="320" /></a></div><div style="text-align: center;">n=8</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6teho0XEfHSrueQFealMDBuLa1ia23j2OoNK9daoGABlUuOC1tcSo-K1bJcl-YJgCsGxCOFINpMDsikRUWj0v38jH3Y8VMT9G-IzRuQYRjd-thkTgTyN4az5OMUBfg3B02n5WNVycB4lYqxmiTvxnHCPsD30IoK28jwjYMGFDEIjUP4izyksgM378ZQ/s1677/KTreeB60.9.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1677" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6teho0XEfHSrueQFealMDBuLa1ia23j2OoNK9daoGABlUuOC1tcSo-K1bJcl-YJgCsGxCOFINpMDsikRUWj0v38jH3Y8VMT9G-IzRuQYRjd-thkTgTyN4az5OMUBfg3B02n5WNVycB4lYqxmiTvxnHCPsD30IoK28jwjYMGFDEIjUP4izyksgM378ZQ/s320/KTreeB60.9.png" width="320" /></a></div><div style="text-align: center;">n=6</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJEO-6a0b49sDUnLKmsFYRlJz1hb_799oVsItZFCtAVcqfNGMT_cf6FC-N-c-DQZT3aj4d9zTC23QBmVrxbcLMDAZg2ItWaNpdVYztjw8HV6hMhYAdQdlApYpHZYqtLiJqNRCQalsSHbXi2-4ivZuhTDUamxOX0hR9bMU_uZ9anZVxeG0oZJYg3OFzog/s1677/KTreeB61.0.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1677" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJEO-6a0b49sDUnLKmsFYRlJz1hb_799oVsItZFCtAVcqfNGMT_cf6FC-N-c-DQZT3aj4d9zTC23QBmVrxbcLMDAZg2ItWaNpdVYztjw8HV6hMhYAdQdlApYpHZYqtLiJqNRCQalsSHbXi2-4ivZuhTDUamxOX0hR9bMU_uZ9anZVxeG0oZJYg3OFzog/s320/KTreeB61.0.png" width="320" /></a></div><div style="text-align: center;">n=6</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiERIoAe5q7wyM1OPyGoOzYeBi50K0EYT687QxdhKaldRP1Pqw6jyGGElpsgzNsgHRUJS0FF2BPcMlIcPaIHj5WRJqciZtCU6D6ge1qa0PCTuib5iLleLCPfx-7iyFyi2-a9uGFFcH82KHFajSglFZOt_F5CT3xiHDweSyeDeyxfeDBJsm-ryckznXaLQ/s1629/KTreeB81.26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1629" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiERIoAe5q7wyM1OPyGoOzYeBi50K0EYT687QxdhKaldRP1Pqw6jyGGElpsgzNsgHRUJS0FF2BPcMlIcPaIHj5WRJqciZtCU6D6ge1qa0PCTuib5iLleLCPfx-7iyFyi2-a9uGFFcH82KHFajSglFZOt_F5CT3xiHDweSyeDeyxfeDBJsm-ryckznXaLQ/s320/KTreeB81.26.png" width="320" /></a></div><div style="text-align: center;">n=8</div><div class="separator" style="clear: both; text-align: center;"><br /></div>For the large bend angles producing a sponge, you need to tweak the bend angle to get a Kleinian group (circles are circles) rather than a pseudo-Kleinian (partial-circles), the above image has bend angle 1.26 to achieve this.<br /><p><br /></p></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-42166721876249797172023-05-30T19:08:00.006-07:002023-06-12T03:56:26.663-07:00Sphere Cluster<p>We can generate 3D clusters in a similar way to the <a href="https://tglad.blogspot.com/2023/05/disk-cluster-2.html">previous post</a>, but using a hyperbolic regular polyhedron tiling instead of a hyperbolic regular polygon tiling. We can continue to use this 2D diagram as a guide:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirH1EWP7rQ8yGTU-wVV2Lmu1Uc9L2wQwBPepCmkdvOVJajxyeTJc7zZZkGxSzPLVAwbQIPtLqZcM1kYCZEngjc_m885bCvj-K_NoZxqXNe83SwE9jLEckWu0wL_xBBLu989qj5Th48khgZmTo0Nt8wha4xdA-0sPh8zxFUhUBkZkT2J1rv5K5DgH0elw/s320/pica.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="320" data-original-width="317" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirH1EWP7rQ8yGTU-wVV2Lmu1Uc9L2wQwBPepCmkdvOVJajxyeTJc7zZZkGxSzPLVAwbQIPtLqZcM1kYCZEngjc_m885bCvj-K_NoZxqXNe83SwE9jLEckWu0wL_xBBLu989qj5Th48khgZmTo0Nt8wha4xdA-0sPh8zxFUhUBkZkT2J1rv5K5DgH0elw/s1600/pica.png" width="317" /></a></div><p>We define the outer green circle as radius 1, and the offset green circle l<span style="font-size: x-small;">2</span> has its centre at a distance L=sqrt(1+R^2) where R is the solution to:</p><p> R/theta = sqrt(1+R^2)/sin(pi/2 + pi/m)</p><p>where theta is the angle from the polyhedron centre to the nearest face edge and m is the number of polyhedrons that meet at each edge. There are two good polyhedrons to use here, the dodecahedron and the icosahedron, their values and resulting formula are: </p><p> <b>Dodecahedron:</b> </p><p></p><ul style="text-align: left;"><li>theta = atan2(phi+2, 2phi + 2 + 1/phi)</li><li>m = 4</li><li>R = sqrt(2)/sqrt(-2 + cosec^2(theta))</li></ul><div><b>Icosahedron:</b></div><div><ul style="text-align: left;"><li>theta = atan2(phi, 1+2phi)</li><li>m = 3</li><li>R = 2/sqrt(-4 + cosec^2(theta))</li></ul><div>Where phi is the golden ratio, and the inner red circle has radius r=L-R.</div></div><div><br /></div><div>To render in 3D we want to do something better than just an inside-outside test, we want to approximate the distance to the nearest surface. It goes roughly like this... invert each query point p around the red radius r sphere then:</div><p></p><div><p></p><ol><li>rotate the point to a be radially in one single polyhedron face*</li><li>if it is inside l<span style="font-size: x-small;">2</span> you invert it around l<span style="font-size: x-small;">2</span></li><li>if its magnitude is less than rk (plus a skin width) then divide by rk and then invert around l<span style="font-size: x-small;">4</span> = sqrt(r), sending the red sphere to the outer green unit sphere</li><li>once you are out of iterations return the distance to the centre sphere rk, multiplier by a scale factor that is initialised to 1 and grows in proportion to all transformations of p in the above steps</li></ol><div>* this is a bit harder in 3D than 2D. The simplest I can think of is to fold the point around the planes defined by the origin and each edge of the chosen face. For the dodecahedron the chosen face has vertices in order: (1/phi,0,phi), (1,-1,1), (phi, -1/phi,0), (phi,1/phi,0), (1,1,1). For the icosahedron the three vertices are (0,1,phi), (0,1,-phi), (phi,0,1). The planes can be generated using the cross product of adjacent vertices. I found that for the dodecahedron you just need to fold around each edge twice to guarantee the point ends up radially in the specified face, and for the icosahedron you need to do it three times. </div></div><div><br /></div><div>The direction to the l<span style="font-size: x-small;">2</span> sphere centre is then the direction to this face centre, which is the mean of the above vertices.</div><div><br /></div><div>The resulting approximate signed distance function to the shape's surface is sampled in Fragmentarium in order to generate a rendering of the shape with lighting and shadows. </div><p>Here is the result for the dodecahedral cluster, with k values from 0.7 up to 1:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjylTIh1-rmBE6GCCe_Vlobb2RbrB8rL8QJ9K9DRe5REllycjRafsmnK9Lgp9S8SHyynsvUIur6qBweogyqJ6-Xm-nrXyGpk-h2h5eKIFG1YSS9igkE-Nazn5vVAnoVwd-N0JNyCFw04RhrLE4X23hknIbGuaX3ifXNjrcHf969cfBXZJsccPKOotZObg/s2013/Bcluster2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjylTIh1-rmBE6GCCe_Vlobb2RbrB8rL8QJ9K9DRe5REllycjRafsmnK9Lgp9S8SHyynsvUIur6qBweogyqJ6-Xm-nrXyGpk-h2h5eKIFG1YSS9igkE-Nazn5vVAnoVwd-N0JNyCFw04RhrLE4X23hknIbGuaX3ifXNjrcHf969cfBXZJsccPKOotZObg/s320/Bcluster2.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLZdyRSWC4chiz6otF6PjIagmlipSyicYkfVgb_G09lObMeT0Azct4l6rVTGuJphTjyNpHTaMTDdf_sZQyvIR3q-1Ze3_xxDrbZYWMjbKgDoFm5r26rC4QrOIXrmx-bu9MnpnzEg9t3ypw4Rln2ng8H8WgWZlz4SLz-Uh9jolckSmQ8LYK_HvXgMEV7w/s2013/Bcluster3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLZdyRSWC4chiz6otF6PjIagmlipSyicYkfVgb_G09lObMeT0Azct4l6rVTGuJphTjyNpHTaMTDdf_sZQyvIR3q-1Ze3_xxDrbZYWMjbKgDoFm5r26rC4QrOIXrmx-bu9MnpnzEg9t3ypw4Rln2ng8H8WgWZlz4SLz-Uh9jolckSmQ8LYK_HvXgMEV7w/s320/Bcluster3.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUoJHiSV7JHhPMJLZc1kSoGB1BjdlMwd8eKW93QjL7dbsLi6dBq2508fq0Rzemhci_Mwr8NLfg67zWG42CdGxIm9jmItf1PaUOiZZJg4UobGtSqzIHAvW_Y1ERk-IwerWtqFezwCN_U_qas8TyoH8OakJy3dY8sjaFSBnswW97ygrGPSfBbiZcqvqu6w/s2013/Bcluster4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUoJHiSV7JHhPMJLZc1kSoGB1BjdlMwd8eKW93QjL7dbsLi6dBq2508fq0Rzemhci_Mwr8NLfg67zWG42CdGxIm9jmItf1PaUOiZZJg4UobGtSqzIHAvW_Y1ERk-IwerWtqFezwCN_U_qas8TyoH8OakJy3dY8sjaFSBnswW97ygrGPSfBbiZcqvqu6w/s320/Bcluster4.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6NPQ5eEzvWJMPR0ySHDNZeEw7Mz32nrqAS-fYiQPAe0lvH4AXnA6NzPYEn0RzLKgZi7_jvGknyO9aXGsZ6C1W0Ucxp1PR0lHpq_9ds1rnSzr_pAXBwJP2jcLqPBqb_Mt6sNvqgnCj7wRhazDjacwMVq__C__g7idqMQYl2WibeZLKGs3ysmFT_i3TIg/s2013/Bcluster5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6NPQ5eEzvWJMPR0ySHDNZeEw7Mz32nrqAS-fYiQPAe0lvH4AXnA6NzPYEn0RzLKgZi7_jvGknyO9aXGsZ6C1W0Ucxp1PR0lHpq_9ds1rnSzr_pAXBwJP2jcLqPBqb_Mt6sNvqgnCj7wRhazDjacwMVq__C__g7idqMQYl2WibeZLKGs3ysmFT_i3TIg/s320/Bcluster5.png" width="320" /></a></div><div><br /></div>Here against a black background, a close up of k=0.7:<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVuWLssjA50URcupiQSTvUv_pszmwaA0PQzh-aUvnzzwdNhGfY-n1Mthma45qI0VXOEzB0WLvX2kDbRKCedJr-9_gePSvVtyugaafY2ZvI2WCgSD1SYPZ8mFyYf3r02BqvJ8Ag8BY-ZiRpDWHSjvPmkUNVwx6PWG4MhurjD3720zLJAjqHwj0yLCOlZg/s2013/Bcluster6.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVuWLssjA50URcupiQSTvUv_pszmwaA0PQzh-aUvnzzwdNhGfY-n1Mthma45qI0VXOEzB0WLvX2kDbRKCedJr-9_gePSvVtyugaafY2ZvI2WCgSD1SYPZ8mFyYf3r02BqvJ8Ag8BY-ZiRpDWHSjvPmkUNVwx6PWG4MhurjD3720zLJAjqHwj0yLCOlZg/s320/Bcluster6.png" width="320" /></a></div>and k=0.8:<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSeevunvMsduL5h8YvxICcwHl3JHCaNSfREshQ-ybNL5N8CsRAnEJGlAv_7HScqgvb645j1282wca9OTNxgwzxwmr4Hc0dKdzHy4rGDhxEUuAvh0Zmw93GFGB7PBNDO69HnkHl_N3oYdM_8wqUjvfTKhCT2-xWB7nc36zZI3cePzK4gWf6TbvAvilO4A/s2013/Bcluster7.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSeevunvMsduL5h8YvxICcwHl3JHCaNSfREshQ-ybNL5N8CsRAnEJGlAv_7HScqgvb645j1282wca9OTNxgwzxwmr4Hc0dKdzHy4rGDhxEUuAvh0Zmw93GFGB7PBNDO69HnkHl_N3oYdM_8wqUjvfTKhCT2-xWB7nc36zZI3cePzK4gWf6TbvAvilO4A/s320/Bcluster7.png" width="320" /></a></div>and k=0.1:<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ4glrrtfY_I_u6JJUgKaUcnV7Q8V-ag9pRqN5mjwvPIL3NJhm7cwwvm4KtJ8jvYuQiLjM4QSL0WMECxNqqQk74w6CWaplbV3uzeCPg17PDbbIS4eHLHc7AEiJKu2pLoZr52DaVFzf-WEX1nAMy1t_tQJub5wcmMjPXsdAFVSMjzJH2x3VH6wo7F7CIw/s2013/Bcluster8.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ4glrrtfY_I_u6JJUgKaUcnV7Q8V-ag9pRqN5mjwvPIL3NJhm7cwwvm4KtJ8jvYuQiLjM4QSL0WMECxNqqQk74w6CWaplbV3uzeCPg17PDbbIS4eHLHc7AEiJKu2pLoZr52DaVFzf-WEX1nAMy1t_tQJub5wcmMjPXsdAFVSMjzJH2x3VH6wo7F7CIw/s320/Bcluster8.png" width="320" /></a></div><br /><p>For the icosahedral cluster, here are k values of 0.7 up to 1:</p><p style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNy8Fvpko2W6H2TzjWnfL796dnBsd9Tj5sPy7cd8cZeeSIqB472V_BffOLND8vtwzJ6EMvDG-PzdMwIQaZgpvo5YkX4jp1l3SjICkN9Bnub2N_246Io0REnXLjZydPrWHAQAY0Y6zJLM3eqHgIj55krybiOkjlS00c3ft0EgP3-dc3AlAVK23BdDrHog/s2013/Acluster_3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNy8Fvpko2W6H2TzjWnfL796dnBsd9Tj5sPy7cd8cZeeSIqB472V_BffOLND8vtwzJ6EMvDG-PzdMwIQaZgpvo5YkX4jp1l3SjICkN9Bnub2N_246Io0REnXLjZydPrWHAQAY0Y6zJLM3eqHgIj55krybiOkjlS00c3ft0EgP3-dc3AlAVK23BdDrHog/s320/Acluster_3.png" width="320" /></a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5aF9jxsaG9w5onmnXdf2SMiVQDJLBK5JfbonO89PkgCVvdB1lnER40RrJGYLmwjVa8yrsAzGZxQELR7hMLKe9LzBrXpo-X2Ej98ZMHa_WzHTlMYFaC40OjGxeXp4mySq0MfcLbKMv4OUVYjuZS2CfaStDR5yMDQF637vrd6oac2azIoWHMRmZ1KnRyQ/s2013/Acluster_2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5aF9jxsaG9w5onmnXdf2SMiVQDJLBK5JfbonO89PkgCVvdB1lnER40RrJGYLmwjVa8yrsAzGZxQELR7hMLKe9LzBrXpo-X2Ej98ZMHa_WzHTlMYFaC40OjGxeXp4mySq0MfcLbKMv4OUVYjuZS2CfaStDR5yMDQF637vrd6oac2azIoWHMRmZ1KnRyQ/s320/Acluster_2.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMMDmp2nFiKWTIMkZD2K6OxQ8EBZQlGr5PtyzrZseZfpesJUyf1JPRwZiApbyxgwraTQZMyvkT39AUPmyegWuMKsjCn0dF47HJqeAUWtknEoS436bZfdVCxE4GNmljDWn-NbiVNvX6be58i2HfRIe78hcNedK0n6F9NZBGbx212I_CiJPFo2PWf2861w/s2013/Acluster_4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMMDmp2nFiKWTIMkZD2K6OxQ8EBZQlGr5PtyzrZseZfpesJUyf1JPRwZiApbyxgwraTQZMyvkT39AUPmyegWuMKsjCn0dF47HJqeAUWtknEoS436bZfdVCxE4GNmljDWn-NbiVNvX6be58i2HfRIe78hcNedK0n6F9NZBGbx212I_CiJPFo2PWf2861w/s320/Acluster_4.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHLJn91zdd9DWy7EZ8dLLqFZg71Z37V3gMtsg5zzMwlDlDz4J_2N2ZDzulaYRCl5xCsS0MnCwazmtb0dYVJ9X3XN1Ssn0g7jk6r09a7VqwPdvSH2xROjnkPeH6ELlT3RhRBzr5hEFD4jXpKx3w5jZ-RlOBNfHFkn76cwFngbJOPhmPOQpya8d_Qotumw/s2013/Acluster_5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="2013" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHLJn91zdd9DWy7EZ8dLLqFZg71Z37V3gMtsg5zzMwlDlDz4J_2N2ZDzulaYRCl5xCsS0MnCwazmtb0dYVJ9X3XN1Ssn0g7jk6r09a7VqwPdvSH2xROjnkPeH6ELlT3RhRBzr5hEFD4jXpKx3w5jZ-RlOBNfHFkn76cwFngbJOPhmPOQpya8d_Qotumw/s320/Acluster_5.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p>Both the decahedral and the icosahedral become cluster-sponges at k=1, and are very spikey and visually less rough. We can make the shape less spikey at higher k by alternating between the dodecahedral and the icosahedral clusters. Since they are duals of each other, we should expect that to do the opposite of lining up subclusters. </p><p>There are two versions depending on which shape you start with. Here starting with the dodecahedral with k from 0.8 up to 1:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0bsMOUuSXc3pq_9_FBURhun9wCWu5fr1Vqx8PsnuxipcvqzfakUDVUEpMieRKlghBFDYcGmCOim5UBt7GI87Ew9lowH9nX39ZEPqWQVPiYTQZh6mhuSW-RzxGEDM0hFOVQRCFexE34wkMwagRP3qOcuB4I5kmPOpGDGWm_lAAXiUMihlS3QWMErOARA/s1755/Ccluster_3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="1755" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0bsMOUuSXc3pq_9_FBURhun9wCWu5fr1Vqx8PsnuxipcvqzfakUDVUEpMieRKlghBFDYcGmCOim5UBt7GI87Ew9lowH9nX39ZEPqWQVPiYTQZh6mhuSW-RzxGEDM0hFOVQRCFexE34wkMwagRP3qOcuB4I5kmPOpGDGWm_lAAXiUMihlS3QWMErOARA/s320/Ccluster_3.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLmq-E_9xBG0C-fe6wdGCtN9j1Cozwr_485yNyk5xVOOWUqsETzl78Uvmme81jLghY163JvyrYR4iiP0R3Dg3XVWPNtlH_FZ7kVHUnNmvi8QgBg_aqq_zerg-tCIEQuMKeOE53VMJvzPUJaYTKC9MmuPBRhdRm8HoFQYShAVIP4Kyv-bwtscw-1-K2zA/s1755/Ccluster_2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="1755" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLmq-E_9xBG0C-fe6wdGCtN9j1Cozwr_485yNyk5xVOOWUqsETzl78Uvmme81jLghY163JvyrYR4iiP0R3Dg3XVWPNtlH_FZ7kVHUnNmvi8QgBg_aqq_zerg-tCIEQuMKeOE53VMJvzPUJaYTKC9MmuPBRhdRm8HoFQYShAVIP4Kyv-bwtscw-1-K2zA/s320/Ccluster_2.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5XWatmwJhF-LX_lhMd81MZQxcox-mWr8SDkEXgyF1VFiWTE6TdzGkzHze6jqhBZ1JERl-NfiD_Oyd3doPTjQ3JmTeA6hm1JekewJtEijIQggj3OuHqOWFhpYPfp3welR_XkGNFT6SuhQV5UsdhWs0n2o1L7mdatj3V5gfIR_GnzQo9xrrDBMjfjV-jQ/s1755/Ccluster_1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="1755" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5XWatmwJhF-LX_lhMd81MZQxcox-mWr8SDkEXgyF1VFiWTE6TdzGkzHze6jqhBZ1JERl-NfiD_Oyd3doPTjQ3JmTeA6hm1JekewJtEijIQggj3OuHqOWFhpYPfp3welR_XkGNFT6SuhQV5UsdhWs0n2o1L7mdatj3V5gfIR_GnzQo9xrrDBMjfjV-jQ/s320/Ccluster_1.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">a close up at k=1:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixvkYZ4ayqlNiOmS3EydNuu-81XgYRZ-ZtDDLmaZgbfo6ir8Bi6TDktcWMk8XIeqgem3eZZhT-y4O3B2CFGxE8j_muJ0SJPrQiFbcDYRKPlzUNASwmqV88qunCOxjevTA5M6M_W8ZtDvOAOj-VnfxdCI8W7Rvz9bqQbevZGkH-jdDilktbeTwnATiOxw/s1755/Ccluster_4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="1755" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixvkYZ4ayqlNiOmS3EydNuu-81XgYRZ-ZtDDLmaZgbfo6ir8Bi6TDktcWMk8XIeqgem3eZZhT-y4O3B2CFGxE8j_muJ0SJPrQiFbcDYRKPlzUNASwmqV88qunCOxjevTA5M6M_W8ZtDvOAOj-VnfxdCI8W7Rvz9bqQbevZGkH-jdDilktbeTwnATiOxw/s320/Ccluster_4.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">Here we start with the icosahedral shape, k = 0.7 to 1:</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZRAwtQz6lz1sT_IlGMPsDjsj5RQJefn6oEb8gC9GgCjI2Jpce0WHV_rKk_RGgTGdGVvpeJHWk0tJKTIoWVgmUK4kuXTa0Ejc0NMOTGYlQEK2Mx3wJMeGqexjhu1f4XeNNGqh42DAPYbFkLZte1wPLibcyoJylz0d1HKfFXXmYwEO5RdHaLUgatrlRbA/s1755/Ccluster3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="1755" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZRAwtQz6lz1sT_IlGMPsDjsj5RQJefn6oEb8gC9GgCjI2Jpce0WHV_rKk_RGgTGdGVvpeJHWk0tJKTIoWVgmUK4kuXTa0Ejc0NMOTGYlQEK2Mx3wJMeGqexjhu1f4XeNNGqh42DAPYbFkLZte1wPLibcyoJylz0d1HKfFXXmYwEO5RdHaLUgatrlRbA/s320/Ccluster3.png" width="320" /></a></div><div style="text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisAzDjS19O3MbY7evVe8HyTPoT5dqu0TXKOgTPRGzxhcusZvEYc6kvPinEKQ5c9_oVMxzAWOxZrXMLg-vLB16K66PVl-KGOP14Yh15tEv3_bgzt_pgdjdSOoqkRAcn9bfT43W-V6o0Bf3In_ddllkflRPu7c42m7M0ie5W7dMTdyC6t2sryibGAHBK6g/s1755/Ccluster2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="1755" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisAzDjS19O3MbY7evVe8HyTPoT5dqu0TXKOgTPRGzxhcusZvEYc6kvPinEKQ5c9_oVMxzAWOxZrXMLg-vLB16K66PVl-KGOP14Yh15tEv3_bgzt_pgdjdSOoqkRAcn9bfT43W-V6o0Bf3In_ddllkflRPu7c42m7M0ie5W7dMTdyC6t2sryibGAHBK6g/s320/Ccluster2.png" width="320" /></a></div><div style="text-align: center;"><br /></div><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZsWbaJjtrr4O5b5OlafGv4BXbcQd0a772rDP1hv8u2YtjgoGP4f2WDL64jFkBcicmKyZrCIqhXszAx_DoOtjdQf_TnYNJ-Xdojr2BQ8xMRGs98WhZ9l0SHirHMptcbQfG9SwbWq2ClJPern50soAruV7Fl4XXIpXhnTJ6sbqvkpt8MTOEnvRUwZpj0w/s1755/Ccluster1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="1755" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZsWbaJjtrr4O5b5OlafGv4BXbcQd0a772rDP1hv8u2YtjgoGP4f2WDL64jFkBcicmKyZrCIqhXszAx_DoOtjdQf_TnYNJ-Xdojr2BQ8xMRGs98WhZ9l0SHirHMptcbQfG9SwbWq2ClJPern50soAruV7Fl4XXIpXhnTJ6sbqvkpt8MTOEnvRUwZpj0w/s320/Ccluster1.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg29tc6QF8m0l-BZEtCaHlLVpuoUWhr7fz5H7FjVdWd4uAe4FRzcy3yXHwdeqHMfCZ5h-qrqy6XpA1QBNr5GetwbKYPxIA-plZz8NOCKE_QtfVsn-94cOfP8-ovhuBqt2Z6A2ZxHOLAvVSGv2Sdzjd-UGDVXnDfT4GXeuZV7JHtbpFk7-BqFRJDGk9bnA/s1755/Ccluster4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1647" data-original-width="1755" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg29tc6QF8m0l-BZEtCaHlLVpuoUWhr7fz5H7FjVdWd4uAe4FRzcy3yXHwdeqHMfCZ5h-qrqy6XpA1QBNr5GetwbKYPxIA-plZz8NOCKE_QtfVsn-94cOfP8-ovhuBqt2Z6A2ZxHOLAvVSGv2Sdzjd-UGDVXnDfT4GXeuZV7JHtbpFk7-BqFRJDGk9bnA/s320/Ccluster4.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">It is a bit hard to render this fractal for k>=1, but if you replace the final distance calculation with a slightly smaller sphere distance then it makes no difference to the limit set, and avoids some rendering artifacts for k>1, which is when the shape changes from a cluster to a sponge.</div><p>So here is the icosahedral fractal for k=1 and k=1.3:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOO4TOF4aRwuWMiknPvtMjwBHOaE0zmlacNtejKLuuhY3QeaZEFzSq5PiwpYBVauKC2VVXpjo0aenIY0PPPh2m2IpjT2h3zYc0KOZbHFOZgMyFMMaCaOfehSuwBQxd3PbtjW10DT0tC8qCtyI1MM8RygEoHcvXXDjlPCOosrLsZIj8aNzMYBSRk8pJgQ/s1896/SC1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1896" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOO4TOF4aRwuWMiknPvtMjwBHOaE0zmlacNtejKLuuhY3QeaZEFzSq5PiwpYBVauKC2VVXpjo0aenIY0PPPh2m2IpjT2h3zYc0KOZbHFOZgMyFMMaCaOfehSuwBQxd3PbtjW10DT0tC8qCtyI1MM8RygEoHcvXXDjlPCOosrLsZIj8aNzMYBSRk8pJgQ/w200-h122/SC1.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh38_DM0y4MM6dSjAW7P-3W_6BvBFbdgrCJfQCbbxss3UZg8miWNX2lJIUVcpJQXvtU-cKvssCkP3FruTeisWGk55QREo6wRmNq1ol9tluRIuh229clvQx-6zlD7Iw6KXLYvRcSK300sfw8l2HUWDOj2ksehOrd0vVPDPaisVqMCGvoo0ucHHkZZlGY4g/s1896/SC1.1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1896" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh38_DM0y4MM6dSjAW7P-3W_6BvBFbdgrCJfQCbbxss3UZg8miWNX2lJIUVcpJQXvtU-cKvssCkP3FruTeisWGk55QREo6wRmNq1ol9tluRIuh229clvQx-6zlD7Iw6KXLYvRcSK300sfw8l2HUWDOj2ksehOrd0vVPDPaisVqMCGvoo0ucHHkZZlGY4g/w200-h122/SC1.1.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw73Mg5G-04HLJlVepK9T5h-LWWUdTaTJpTazsXmIh8CFKZpPVH6kNdt7l2cY0ra7hcUNVkIlr06HrcsAKkJ3PAumRgHJ_6HUHyyxT0ccdTQE2rXlCZ7Q9XgdZ1GkXmSKWKbAzZ47YoJU1LfqvySzMH69cfB8sAmQ88n4cwX1VYOa-KnFOoMK0mYBBcQ/s2034/ico1.2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="2034" height="114" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhw73Mg5G-04HLJlVepK9T5h-LWWUdTaTJpTazsXmIh8CFKZpPVH6kNdt7l2cY0ra7hcUNVkIlr06HrcsAKkJ3PAumRgHJ_6HUHyyxT0ccdTQE2rXlCZ7Q9XgdZ1GkXmSKWKbAzZ47YoJU1LfqvySzMH69cfB8sAmQ88n4cwX1VYOa-KnFOoMK0mYBBcQ/w200-h114/ico1.2.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie0nf5y1NH3HPB6YKD9HC34zG8SAlCTj0ZYTcbEqP2b9d-v-wDnovvV8AcUsVl-l1buMN_LtjFeTs1-ejQK_CtJOxRKjXpXBXoSbKJ6aRlGqFtEMhIgoyUbzDpeVJT7RXlKvv_t8KSXfYWxYjHTE3LqDr0YD1mHm52SdQb91iV5h3VjlNMtu7NQxJJeQ/s2034/ico1.3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="2034" height="114" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie0nf5y1NH3HPB6YKD9HC34zG8SAlCTj0ZYTcbEqP2b9d-v-wDnovvV8AcUsVl-l1buMN_LtjFeTs1-ejQK_CtJOxRKjXpXBXoSbKJ6aRlGqFtEMhIgoyUbzDpeVJT7RXlKvv_t8KSXfYWxYjHTE3LqDr0YD1mHm52SdQb91iV5h3VjlNMtu7NQxJJeQ/w200-h114/ico1.3.png" width="200" /></a></div><br /><div style="margin-left: 1em; margin-right: 1em; text-align: left;"><br /></div><div style="margin-left: 1em; margin-right: 1em; text-align: left;">and the dodecahedral from k=1 up to k=1.6:</div><div style="margin-left: 1em; margin-right: 1em; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5KVbPwOl5aeMTu24wEh1-0sifkqEQu1oaYjUnXakvZhWvGYjYmtdnbU-623DkZ9lxCMFAzeji7s-hNwsIMx9BU2uCEDg_7trnSVdv7eQ6WE2BtkKwPsyz1Rati9TGna_FcwhBDBS2XtRSu-XUkzo3YNz2yzOQzDvRFjPgyY7xlSB_avKI4g-HoTrAHA/s1896/SCdod1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1896" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5KVbPwOl5aeMTu24wEh1-0sifkqEQu1oaYjUnXakvZhWvGYjYmtdnbU-623DkZ9lxCMFAzeji7s-hNwsIMx9BU2uCEDg_7trnSVdv7eQ6WE2BtkKwPsyz1Rati9TGna_FcwhBDBS2XtRSu-XUkzo3YNz2yzOQzDvRFjPgyY7xlSB_avKI4g-HoTrAHA/w200-h122/SCdod1.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZm_qrs9mowHxGH99SkSo6LNrCi7kR2tH_ScKj8NJKESZF1QQH6Ymy-pcnMWZ2GBn_fZL55PiS6XRc5bV3o3rEOlX70Ul2KPgceOpMI9lDF1VyeMw_KqZAZuOWJAu_txMXhFS4j94OY1rzENUxQpsC8gfynhse9oSQQ4poT61UvvWS2aNvz7enVksVNg/s1896/SCdod1.1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1896" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZm_qrs9mowHxGH99SkSo6LNrCi7kR2tH_ScKj8NJKESZF1QQH6Ymy-pcnMWZ2GBn_fZL55PiS6XRc5bV3o3rEOlX70Ul2KPgceOpMI9lDF1VyeMw_KqZAZuOWJAu_txMXhFS4j94OY1rzENUxQpsC8gfynhse9oSQQ4poT61UvvWS2aNvz7enVksVNg/w200-h122/SCdod1.1.png" width="200" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZCgG1ofHgQufOfHhEplr14eQdVmuTSf-8fNe2sPK53tCRgCSO0vcS_Vtqm5u6Z9CStVrnz8AU_d-hb-T-KeQrxOPJa4MsDypJP_amq2nZf18qzaaGqfvjrlkOBFDlaDhKYYnpM3WztZRAd8E8Q7xruthdhfaPz31cb1gydNkUdom_dYf89rN-AAfVkg/s1896/SCdod1.2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1896" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZCgG1ofHgQufOfHhEplr14eQdVmuTSf-8fNe2sPK53tCRgCSO0vcS_Vtqm5u6Z9CStVrnz8AU_d-hb-T-KeQrxOPJa4MsDypJP_amq2nZf18qzaaGqfvjrlkOBFDlaDhKYYnpM3WztZRAd8E8Q7xruthdhfaPz31cb1gydNkUdom_dYf89rN-AAfVkg/w200-h122/SCdod1.2.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbT3uQce5DqOLymqJcO6iZprALwHwSn3GGisj_SvUId3sMljM9QR6fHilDsxoCoUXrM87kooIeXEI0RfeFTmoMl76cAjwRKy3E_zJMVFj3J49XCHBzweMxuEc7K_kcOOV6FEQFzteBDggc6u25UUfIavdtkPFG1evNRSB-BvNPYCvnlh5UJdCl-odHYg/s1905/dod1.3c.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1905" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbT3uQce5DqOLymqJcO6iZprALwHwSn3GGisj_SvUId3sMljM9QR6fHilDsxoCoUXrM87kooIeXEI0RfeFTmoMl76cAjwRKy3E_zJMVFj3J49XCHBzweMxuEc7K_kcOOV6FEQFzteBDggc6u25UUfIavdtkPFG1evNRSB-BvNPYCvnlh5UJdCl-odHYg/w200-h122/dod1.3c.png" width="200" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSXtEk7DT6RCgeII3X0kQc6CONz8TFTB4Sg0hlHvotqwHj1_DD1A021sdU6l4JeUMYeFS33FgzNrsgz4v8dVSoPJLu2iXxhSrYV3muc1e_sREWfSj-bLgZakRPHRLdMJdkzRbik6HKeAishQms3QQ8Oe3whUApPGOw890z39m-sAc92p4Wo4Y-xRWuUA/s2034/dod1.4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="2034" height="114" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSXtEk7DT6RCgeII3X0kQc6CONz8TFTB4Sg0hlHvotqwHj1_DD1A021sdU6l4JeUMYeFS33FgzNrsgz4v8dVSoPJLu2iXxhSrYV3muc1e_sREWfSj-bLgZakRPHRLdMJdkzRbik6HKeAishQms3QQ8Oe3whUApPGOw890z39m-sAc92p4Wo4Y-xRWuUA/w200-h114/dod1.4.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdbxdROcDNbDnwK7gwM9w8gzb-n4h7RR6Hiv7kdIDZfcAVVihsi2Z7MyVRB5z1_w9Bo74AJbJcE7BDAlPTl0XUBvhljRT2dmsVXOQBVcUQ1XsrgxsHm15OPhq5PslvzF0yjq0E_439G8iE5ddBzBwyPoWkBgA6LlKjpQWAq6EEQEov7GLrD0tAufg4aA/s2034/dod1.6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="2034" height="114" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdbxdROcDNbDnwK7gwM9w8gzb-n4h7RR6Hiv7kdIDZfcAVVihsi2Z7MyVRB5z1_w9Bo74AJbJcE7BDAlPTl0XUBvhljRT2dmsVXOQBVcUQ1XsrgxsHm15OPhq5PslvzF0yjq0E_439G8iE5ddBzBwyPoWkBgA6LlKjpQWAq6EEQEov7GLrD0tAufg4aA/w200-h114/dod1.6.png" width="200" /></a></div><div><br /></div><div class="separator" style="clear: both; text-align: left;">If you toggle between icosahedral and dodecahedral, it is a bit more organic looking:</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;">k=1.1 starting dodecahedral:</div><div style="margin-left: 1em; margin-right: 1em; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv2Qt1HgyFgevxkgcBsbQtPls6EDsRieKl6YmUYNdOms3ITMulCzrpLmyrk-LQRVnKXJsd6GHHXgZ10Yg_-XU9ulR9Gs_sm_OT6AwwUYXBobyn0I-FK38o6UQqL6MHh9ylbEiOsP0a9q_umu0cy0BAlGwmiNRn8EmDH33r9A1loAaN2Vd7rs_jH384Cg/s1896/SCdodtog1.1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1896" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv2Qt1HgyFgevxkgcBsbQtPls6EDsRieKl6YmUYNdOms3ITMulCzrpLmyrk-LQRVnKXJsd6GHHXgZ10Yg_-XU9ulR9Gs_sm_OT6AwwUYXBobyn0I-FK38o6UQqL6MHh9ylbEiOsP0a9q_umu0cy0BAlGwmiNRn8EmDH33r9A1loAaN2Vd7rs_jH384Cg/s320/SCdodtog1.1.png" width="320" /></a></div><div style="margin-left: 1em; margin-right: 1em; text-align: center;">k=1.2<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix7I4TjX5vxqKdxJqRZbcCsOTE6oBXyL5oz9JRpcdPKlg7bf1mBZYQJovYF3A9ZE4_rdK9bSuXFIiDgV7OMvCaQm4HT51xN1neRd8q7gcU907TzCvQ057UZu3rZ_1J5djJWr3FgR1WWR6VdvrlVP8oVAPDK5rHmYrXAXv4ax8kwiuywsdsN-yPCtBnkA/s2337/dodtog1.2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="2337" height="159" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix7I4TjX5vxqKdxJqRZbcCsOTE6oBXyL5oz9JRpcdPKlg7bf1mBZYQJovYF3A9ZE4_rdK9bSuXFIiDgV7OMvCaQm4HT51xN1neRd8q7gcU907TzCvQ057UZu3rZ_1J5djJWr3FgR1WWR6VdvrlVP8oVAPDK5rHmYrXAXv4ax8kwiuywsdsN-yPCtBnkA/s320/dodtog1.2.png" width="320" /></a></div><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div style="text-align: center;">Starting icosahedral, k=1.1:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Vumno011enBgT68ek5mS_auLQ1nIwmZeqqcmXwRH4j1Dx72EgFnjRe86ONokxZGq2IzxhMCLlZm-EVGHfIfZGcRjbWWaX7_8mr3NEpzRBT_g-qh52dQx-ucJzAVhqi-V79CMP_EiLgeKsTm2j0YKkCggcit2wuI8X53bSVlAghy_qQb6-4I8vw3JXA/s1896/SCtog1.1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1896" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Vumno011enBgT68ek5mS_auLQ1nIwmZeqqcmXwRH4j1Dx72EgFnjRe86ONokxZGq2IzxhMCLlZm-EVGHfIfZGcRjbWWaX7_8mr3NEpzRBT_g-qh52dQx-ucJzAVhqi-V79CMP_EiLgeKsTm2j0YKkCggcit2wuI8X53bSVlAghy_qQb6-4I8vw3JXA/s320/SCtog1.1.png" width="320" /></a></div><div style="text-align: center;">k=1.16</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2B9BqdcU0VdOq--VK9fI1objVgvI0ArP1xT9kv7Q6TzN_FJTxj2FLjM7hvVubrNRhog27ZLg3ZLCZhBxvphnGgtIeyRY2pWeyRG7AlC_r85NRHXe1XQwOeYvZ-hLz0iLeQCejHK74E96rc8T3jily8gclz5t3oE0V0hqNetGZtuBGqpq05pqlia1JvA/s1896/SCtog1.16b.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="1896" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2B9BqdcU0VdOq--VK9fI1objVgvI0ArP1xT9kv7Q6TzN_FJTxj2FLjM7hvVubrNRhog27ZLg3ZLCZhBxvphnGgtIeyRY2pWeyRG7AlC_r85NRHXe1XQwOeYvZ-hLz0iLeQCejHK74E96rc8T3jily8gclz5t3oE0V0hqNetGZtuBGqpq05pqlia1JvA/w320-h195/SCtog1.16b.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;">k=1.17</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGBwn4UIbJ5Fu1wdZ3fGKNY1510be98ofD1-UyemdpEd29P8kZ1krXTHAHLIhMkgtU7qBmV3sQmxCOc791HLIKNc0ZPGZ8unbRdb38cl8Bf6wOtHEwe3RtJAmSGdvZ_YZQSt3TKJMtwGFMOjEoUl1xvUM26i5FzRL06bdZc7pe1jOk74g53DrveJZZKw/s2034/tog1.17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1158" data-original-width="2034" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGBwn4UIbJ5Fu1wdZ3fGKNY1510be98ofD1-UyemdpEd29P8kZ1krXTHAHLIhMkgtU7qBmV3sQmxCOc791HLIKNc0ZPGZ8unbRdb38cl8Bf6wOtHEwe3RtJAmSGdvZ_YZQSt3TKJMtwGFMOjEoUl1xvUM26i5FzRL06bdZc7pe1jOk74g53DrveJZZKw/s320/tog1.17.png" width="320" /></a></div><br />TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-88494416709934752742023-05-28T03:35:00.009-07:002023-06-01T04:03:44.609-07:00Disk Cluster 2<p> In a <a href="https://tglad.blogspot.com/2022/06/disk-cluster.html">previous post</a> I was making cluster fractals because these are quite rarely found in fractal examples. Moreover, I was making clusters that are nowhere differentiable (from the outside), which is the purest sort of fractal boundary because everywhere has the same fractal property, with no smooth regions. </p><p>The only problem with these clusters is that they were a little too heavily constructed, and so don't transfer to 3D in any obvious or simple way. </p><p>This post however constructs the cluster based on a very small number of symmetries. It uses two different sphere inversions, octagonal symmetry and a single scale factor k. As such, it makes a proper Kleinian group limit set. To describe it I borrow from figure 6 of <a href="https://arxiv.org/pdf/2001.07010.pdf">this Kajino paper</a>:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcT_jYumDbq87jyzw0QOsh765jx3NypjgHg-TKYYimR1wvUQ3Oiof7R-wGXOtHCVAaOFpZcQHMQc3wkmQvj_pmQ-ZUAu0GARpoKvldoCP6eZhPzagsyqaFVSikCcNVJzgo0ZekWHoQW1U02j9v74D9caAPsXcjDW5Og3e_QiT0FZplWPkex6fRdnPwCg/s336/pica.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="336" data-original-width="333" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcT_jYumDbq87jyzw0QOsh765jx3NypjgHg-TKYYimR1wvUQ3Oiof7R-wGXOtHCVAaOFpZcQHMQc3wkmQvj_pmQ-ZUAu0GARpoKvldoCP6eZhPzagsyqaFVSikCcNVJzgo0ZekWHoQW1U02j9v74D9caAPsXcjDW5Og3e_QiT0FZplWPkex6fRdnPwCg/s320/pica.png" width="317" /></a></div>We define the outer green circle as radius 1, and the offset green circle l<span style="font-size: x-small;">2</span> is at a distance L=sqrt(1+R^2) where R is its radius: R=2/sqrt(-4 + cosec^2(pi/n)), and n is the polygon number of sides, here it is n=8. The inner red circle has radius r=L-R.<div><p>To test if a point is inside or outside the cluster, first you invert the point around the red circle then:</p><p></p><ol style="text-align: left;"><li>rotate the point to the first octant (in line with the circle l<span style="font-size: x-small;">2</span>)</li><li>if it is inside l<span style="font-size: x-small;">2</span> you invert it around l<span style="font-size: x-small;">2</span></li><li>if its magnitude is less than rk then divide by rk and then invert around l<span style="font-size: x-small;">4</span> = sqrt(r), sending the red circle to the outer green unit circle</li></ol><div>repeat until its magnitude is > 1 (black) or you run out of repetitions (white).</div><div><br /></div><div>For k=0.9 we get:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9iJbE7mG3g5F2uXepR6_XeuEIv8T3ecqXX4FTCYEsFJnCqbfTyfHIWLVuNZfEDzQkr6A3QTehXUzf25mVr3reeylfIpZSeGRH6Klcae7chVq-Ntl4V1egh6VG5dNQ0Hx2WOcvlC22JXujsVufLIFJqxA1QJi1izZZ9G0ju2mQDVM40626e39sJzqxaA/s2000/unrot_k0.9.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9iJbE7mG3g5F2uXepR6_XeuEIv8T3ecqXX4FTCYEsFJnCqbfTyfHIWLVuNZfEDzQkr6A3QTehXUzf25mVr3reeylfIpZSeGRH6Klcae7chVq-Ntl4V1egh6VG5dNQ0Hx2WOcvlC22JXujsVufLIFJqxA1QJi1izZZ9G0ju2mQDVM40626e39sJzqxaA/w400-h400/unrot_k0.9.png" width="400" /></a></div>For k=1 we get:<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjedkLi7wXmytDe77GWegajJl2Ptrk-8rchb8ACDOesgcca5RXsWq5pHeeBhAS9LlODgZnDpsUJFgmdT5HDA86kVvd9Do6xcXAy8fLzwnUyyL3GxaCbui5vIHYAjizcZHOUqh-y9OMg5weqolaCHrCLPkTungi-CQBvrDxjyZINmWNbWJwIz-MBJDDnTg/s2000/unrot_k1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjedkLi7wXmytDe77GWegajJl2Ptrk-8rchb8ACDOesgcca5RXsWq5pHeeBhAS9LlODgZnDpsUJFgmdT5HDA86kVvd9Do6xcXAy8fLzwnUyyL3GxaCbui5vIHYAjizcZHOUqh-y9OMg5weqolaCHrCLPkTungi-CQBvrDxjyZINmWNbWJwIz-MBJDDnTg/w400-h400/unrot_k1.png" width="400" /></a></div>and for k=1.1 we get:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxYLPFZuEo35AK3S_VN2q8TlUUTBOCjTEEGnwYuzVcDQhL__tEA-_PRIl0cxqOIrkcXf4yhDdMMzNFGWaWRssrVrOJzApH4eku0QW1hIiHzJzC5-MVwRpD7jIniZaKaamZO5HueZARMQvCdvUSQiXVWfYGFZaxIPtUtePuYGWe0bS6xe--28NmoyywAw/s2000/unrot_k1.0985.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxYLPFZuEo35AK3S_VN2q8TlUUTBOCjTEEGnwYuzVcDQhL__tEA-_PRIl0cxqOIrkcXf4yhDdMMzNFGWaWRssrVrOJzApH4eku0QW1hIiHzJzC5-MVwRpD7jIniZaKaamZO5HueZARMQvCdvUSQiXVWfYGFZaxIPtUtePuYGWe0bS6xe--28NmoyywAw/w400-h400/unrot_k1.0985.png" width="400" /></a></div>Actually this last picture uses slightly less than 1.1 as we need to tweak the value for circles to match properly. I don't have the exact analytic value for k here, but it is very close to k=1.0985.<div><br /></div><div>In terms of <a href="https://sites.google.com/site/simplextable/">fractal classes</a> these are a cluster, a cluster-sponge and a cluster-foam respectively. The first differs from the previous cluster in that the subclusters closer to the centre don't form a uniform pattern, and because it is a proper Kleinian group it generalises cleanly to the two other structures pictured above.<br /><div><p>The value of n doesn't have to be 8 but it needs to be more than 6, so here are clusters for n=7 and n=9, both for k=0.8:</p><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4k2jW9pAhFRQaO6pNJdWRl2G0ecLQAg49SNqqS8GwgdsrsW3gO7JjWogeJ0HrQYVt8TbJuRdssAypjMIJaEy4Wz6iQqRAhtvoAbPGrt1nrDxy-BOJCqvtXGCvyWZlC1uxJtNmcTGuw8u1EgS8maGM2ikXD24iUtLkZOesRPM7aRGo9eOozOM_wnFCDg/s2000/clustersponge7_k0.8.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4k2jW9pAhFRQaO6pNJdWRl2G0ecLQAg49SNqqS8GwgdsrsW3gO7JjWogeJ0HrQYVt8TbJuRdssAypjMIJaEy4Wz6iQqRAhtvoAbPGrt1nrDxy-BOJCqvtXGCvyWZlC1uxJtNmcTGuw8u1EgS8maGM2ikXD24iUtLkZOesRPM7aRGo9eOozOM_wnFCDg/w400-h400/clustersponge7_k0.8.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjycOgwPM7fGUsBfvxHjGyeIjC73Bk68JbkLRby8C7VIWUUvzGAXND2c6TQ_5jxK53FB95hlF6Ztwfn8VrRoAaMafJheM_vAmvvRhfe7uHZYwbyij8Uszn2g0ej8f_r-gutXgf-Nna69pHCCrhtc_dpxFz8MzaNZjor3J72ZrDkZWsLinEK4fIQWT1dKg/s2000/clustersponge9_k0.8.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjycOgwPM7fGUsBfvxHjGyeIjC73Bk68JbkLRby8C7VIWUUvzGAXND2c6TQ_5jxK53FB95hlF6Ztwfn8VrRoAaMafJheM_vAmvvRhfe7uHZYwbyij8Uszn2g0ej8f_r-gutXgf-Nna69pHCCrhtc_dpxFz8MzaNZjor3J72ZrDkZWsLinEK4fIQWT1dKg/s320/clustersponge9_k0.8.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;">Here are the cluster-sponge versions (k=1):</div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMHsWEG6t6vcK9CX-zK321uxsiYJWrUZ5ZSuCPbX_vDnE-r7Sc8BCgExtzzsQzQIMcwZPUi-YXI_wTgBYAk-CrxGWU-VXUnl-FYlB4389ahzVYTElJx023f3g9AwiokvBgHR46IYHOJtzmNQESUB4Ev3P98UtqcLYJuClgdn3WKI_2ZRJjyUb93sN0gw/s2000/clustersponge7.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMHsWEG6t6vcK9CX-zK321uxsiYJWrUZ5ZSuCPbX_vDnE-r7Sc8BCgExtzzsQzQIMcwZPUi-YXI_wTgBYAk-CrxGWU-VXUnl-FYlB4389ahzVYTElJx023f3g9AwiokvBgHR46IYHOJtzmNQESUB4Ev3P98UtqcLYJuClgdn3WKI_2ZRJjyUb93sN0gw/s320/clustersponge7.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWPMJAZ76onwiPFTbdouQlaQhh0FaUmRPyCGMaQqUAduNmRjz-Rt_Z8HnzTznvSPna_1gw6wBB-GRtW6QH96Gz5i9VWIBexNv4JG-o9xV9xfMfTZxdKkFxl1JP1tqPJD7Ao9H-Zr-E3u-sbPh-P7DbRpuk01A6iXgstkBh8KL2VFfcd-m5qlfpJCiliw/s2000/clustersponge9.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWPMJAZ76onwiPFTbdouQlaQhh0FaUmRPyCGMaQqUAduNmRjz-Rt_Z8HnzTznvSPna_1gw6wBB-GRtW6QH96Gz5i9VWIBexNv4JG-o9xV9xfMfTZxdKkFxl1JP1tqPJD7Ao9H-Zr-E3u-sbPh-P7DbRpuk01A6iXgstkBh8KL2VFfcd-m5qlfpJCiliw/s320/clustersponge9.png" width="320" /></a></div><div><br /></div><div>One thing to note about these cluster-sponges it that they are very spikey. That is because the sub-cluster orientation lines up with its parent, causing a cascade of disks all in a row. </div><div><br /></div><div>We can avoid that by rotating each point by pi/n in step 3, here for n=8 for comparison with the first three images:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQZhOhUN_T1AFVtyDfc4PoH2wCRMeHfBsOpsm8VTFvzPFMI00bfgEopgIqyKw_oTWsQ_KmsYqcTJwHTrdoHjMB-EtLhypps5JQ1MCw0A44nfuNGzwelTf3_lhYZgvjOm9BUs7ARw0kSzpt6gG4gfnsPmukeDIN1DXpQmOc6ykotR4JIRfoTeZ-msMG7w/s2000/rot_k0.9.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQZhOhUN_T1AFVtyDfc4PoH2wCRMeHfBsOpsm8VTFvzPFMI00bfgEopgIqyKw_oTWsQ_KmsYqcTJwHTrdoHjMB-EtLhypps5JQ1MCw0A44nfuNGzwelTf3_lhYZgvjOm9BUs7ARw0kSzpt6gG4gfnsPmukeDIN1DXpQmOc6ykotR4JIRfoTeZ-msMG7w/w400-h400/rot_k0.9.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKAmbm-N63CFKOdorky7hnA_xTO5r2UW6gYdR4bCuG3S_JiItTUIiimS_qC5NNkCVHkIB9jGf2Sys7yEWC7cis2OumPyVGPY_tkwa0hr9o_et0kbOdLumJV1UwlCwVogP1lduijp0jkSrw0FIjXp3zEe_sjkvCDt2UxI_oXdtdxoBmWV12qg4twG6Tfg/s2000/rot_k1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKAmbm-N63CFKOdorky7hnA_xTO5r2UW6gYdR4bCuG3S_JiItTUIiimS_qC5NNkCVHkIB9jGf2Sys7yEWC7cis2OumPyVGPY_tkwa0hr9o_et0kbOdLumJV1UwlCwVogP1lduijp0jkSrw0FIjXp3zEe_sjkvCDt2UxI_oXdtdxoBmWV12qg4twG6Tfg/w400-h400/rot_k1.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNRerWyY3sFvX6Gr0DwMe_8vSm1mRqFuU7LEt0ys8DSy75vKayUfRKR-gApnUZMmecnhtbQY04KFgRbUfZZpYGoyDVdGplpcjLSU6hrT2lgHQftPjW_6N3uOFvrSrbrieYaGoe6HhHy6GeJXd7gUCsmU1_UwTB5wNWPtY-HV2FSlMX_HGY3S6F8dVdvQ/s2000/rot_k1.096.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNRerWyY3sFvX6Gr0DwMe_8vSm1mRqFuU7LEt0ys8DSy75vKayUfRKR-gApnUZMmecnhtbQY04KFgRbUfZZpYGoyDVdGplpcjLSU6hrT2lgHQftPjW_6N3uOFvrSrbrieYaGoe6HhHy6GeJXd7gUCsmU1_UwTB5wNWPtY-HV2FSlMX_HGY3S6F8dVdvQ/w400-h400/rot_k1.096.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div>This latter image is again slightly away from k=1.1, at approximately k=1.096. Here's a high resolution close up:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8D-zDqF_S8wdnzVymr1LW2XvvSYYETklSfREMxvZDS-3fp0Lhs2KxCbeHSeL3EvBZilw3XRniAGYqlQVw_Su-ptpZOJICy9PVtRkIIhEzCEoAPtPwLOkpooJ3puV7Z0hSzt_PWP4uGZ7wpT6aVSM5BSmBf1SccG5v7Ro7DJ5SKvDYEdsB5OQJOU34JQ/s2000/rotbig_k1.096.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8D-zDqF_S8wdnzVymr1LW2XvvSYYETklSfREMxvZDS-3fp0Lhs2KxCbeHSeL3EvBZilw3XRniAGYqlQVw_Su-ptpZOJICy9PVtRkIIhEzCEoAPtPwLOkpooJ3puV7Z0hSzt_PWP4uGZ7wpT6aVSM5BSmBf1SccG5v7Ro7DJ5SKvDYEdsB5OQJOU34JQ/w640-h640/rotbig_k1.096.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Notice that these are all less spikey, and the k=1 case is no longer a cluster-sponge, so can have larger sub-clusters before touching. In the n=7 case the touch point happens around k=1.064:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2qhLEY8EG2uP2fPKkZpzqUwrFMnnAEMUiGsVhBm469P20DEVorQfeNjvFDgNiF_HucQbLXhV846Xe3bHKiYT3f3uTwFbPNR9wHaDx4_d7OdDkkf7smki50EMWTe_22BFz2BAD66GPz9zvHsMDUcN2NBp05RChNYadfbKY9BUfwSo4JnH2XOgm86kwcA/s2000/rotated7_k1.064.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2qhLEY8EG2uP2fPKkZpzqUwrFMnnAEMUiGsVhBm469P20DEVorQfeNjvFDgNiF_HucQbLXhV846Xe3bHKiYT3f3uTwFbPNR9wHaDx4_d7OdDkkf7smki50EMWTe_22BFz2BAD66GPz9zvHsMDUcN2NBp05RChNYadfbKY9BUfwSo4JnH2XOgm86kwcA/s320/rotated7_k1.064.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">For fun here's the prior n=8 image coloured by iteration depth:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHl6duPISFrckcC8NvDpV774JTsHvxwF5j_qPweChhEXR26rmRtfK6HCQj-0p9NdX2IOFGX_YXVbEAw9FaASKRrAklSaxO97aQ8czQfPfE3weIAr6zxxQCtWIERiQDQ_jA2L4kvFznco66PB2IeFt0ca5CDE1uz1VS8-H3jl_iR8ADRx_n1V49CCueFQ/s2000/col3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHl6duPISFrckcC8NvDpV774JTsHvxwF5j_qPweChhEXR26rmRtfK6HCQj-0p9NdX2IOFGX_YXVbEAw9FaASKRrAklSaxO97aQ8czQfPfE3weIAr6zxxQCtWIERiQDQ_jA2L4kvFznco66PB2IeFt0ca5CDE1uz1VS8-H3jl_iR8ADRx_n1V49CCueFQ/s320/col3.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhAb2J4k23diIqn4EARYJ0hIzH0435f-11ifa4mqGKjTWXRDcSzQcpCnzwXqPKrkCNx5CMFPeX-dObMQr8s_9repKB2M4BBxjQst39MlefM-ulbxKhLvq0Q8Xebkwjl2a6rN78RqNnn8_iI4RdfH0ecZ6dO3swJSZx5Z2HnDY7RgMlN6UAQfAs_5Qfnw/s2000/col1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2000" data-original-width="2000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhAb2J4k23diIqn4EARYJ0hIzH0435f-11ifa4mqGKjTWXRDcSzQcpCnzwXqPKrkCNx5CMFPeX-dObMQr8s_9repKB2M4BBxjQst39MlefM-ulbxKhLvq0Q8Xebkwjl2a6rN78RqNnn8_iI4RdfH0ecZ6dO3swJSZx5Z2HnDY7RgMlN6UAQfAs_5Qfnw/s320/col1.png" width="320" /></a></div><br /></div><div class="separator" style="clear: both; text-align: left;">The next step is to bring this formulation across to three dimensions. I cover this in the <a href="https://tglad.blogspot.com/2023/05/sphere-cluster.html">next post</a>, but as a quick preview:</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">There are basically two ways to do this, we can use a hyperbolic tiling of an icosahedron or a dodecahedron. Here I'm using an icosahedron, which give 20 subclusters (one for each face).</div><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSKRW-z1D2xX91Tl-9AGrhkafk0B76gdFopOAGTvuuTRJTGFZHvXyqZJ6hKavNT6-gqCHhTWrsoT8PfG1M_Nw-S0ozk6rudfn_m9XnE1ayHb1vzG1Ry6GnhF_m6P3KbdL64yPAKMojdWPfjC0bGRc2kEnSDR34fUBNfQyLCKvuFiiMfGufxFiOmcMwUg/s1452/Acluster.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><br /></a><div style="margin-left: 1em; margin-right: 1em; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSKRW-z1D2xX91Tl-9AGrhkafk0B76gdFopOAGTvuuTRJTGFZHvXyqZJ6hKavNT6-gqCHhTWrsoT8PfG1M_Nw-S0ozk6rudfn_m9XnE1ayHb1vzG1Ry6GnhF_m6P3KbdL64yPAKMojdWPfjC0bGRc2kEnSDR34fUBNfQyLCKvuFiiMfGufxFiOmcMwUg/s1452/Acluster.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1290" data-original-width="1452" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSKRW-z1D2xX91Tl-9AGrhkafk0B76gdFopOAGTvuuTRJTGFZHvXyqZJ6hKavNT6-gqCHhTWrsoT8PfG1M_Nw-S0ozk6rudfn_m9XnE1ayHb1vzG1Ry6GnhF_m6P3KbdL64yPAKMojdWPfjC0bGRc2kEnSDR34fUBNfQyLCKvuFiiMfGufxFiOmcMwUg/s320/Acluster.png" width="320" /></a></div></div><div class="separator" style="clear: both; text-align: left;">The above image is a sphere at each icosahedron in a hyperbolic tiling, only the tiling has been sphere inverted, sending all radii r to 1/r. We use a value of k of roughly 0.5 above.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">We then need to recurse inside each sphere, like so:</div><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU0jJmwB-HzKyb4GuSdZf-7vklGagQxi5_u1-xwzgLYAilw2D8t7SFCOmd1NLAmCOwpDLgd0_97-VPY_9983-hIUr3SxaMqC83HS0ISbExPzGubwuktjZ3niU1Vh1JwsmgfXgVpwKEv88SCBWPUXgIla7Ln14b6Zi-wVcyvVn72_rUdJewdoO9e8GwLQ/s1731/Acluster2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1290" data-original-width="1731" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU0jJmwB-HzKyb4GuSdZf-7vklGagQxi5_u1-xwzgLYAilw2D8t7SFCOmd1NLAmCOwpDLgd0_97-VPY_9983-hIUr3SxaMqC83HS0ISbExPzGubwuktjZ3niU1Vh1JwsmgfXgVpwKEv88SCBWPUXgIla7Ln14b6Zi-wVcyvVn72_rUdJewdoO9e8GwLQ/s320/Acluster2.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHAeZqM-Uv2lSKhmKXmcQc3eCEwCviOoTE1qT5ucm7G8WOqwqKuAJ4cssk1hrGqbR1ge7Us4oMrSPFgjhnN5-YkXowf0v8IhmWE7UISJYA32CHw9GcEHZ6Wxl80FL4t1tmroh-yh1b4jhOBWSxwvsKnL6Jo5vENRubH8xwPTRfW1Nu0LusxBKJKQ-mLg/s1731/Acluster4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1290" data-original-width="1731" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHAeZqM-Uv2lSKhmKXmcQc3eCEwCviOoTE1qT5ucm7G8WOqwqKuAJ4cssk1hrGqbR1ge7Us4oMrSPFgjhnN5-YkXowf0v8IhmWE7UISJYA32CHw9GcEHZ6Wxl80FL4t1tmroh-yh1b4jhOBWSxwvsKnL6Jo5vENRubH8xwPTRfW1Nu0LusxBKJKQ-mLg/s320/Acluster4.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div>For larger k, around 0.8:<br /><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgndM3XNjaGaPnlJYRZmDoAAtzwtn1L1Gv_RoAtejaewACo0DzoO3q6oes8yNWS9zEQ4vmU--TgUlgWnoQHZNQ0rUlXXGYT7dnWa89jTRNERqJt9_izCM9NGI5yzJ2cRpDLNEAEORntXViRsBDYqDistTYnap0W5Loa2GyPMacN310nTSN439dCzVOFUg/s1731/Acluster5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1290" data-original-width="1731" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgndM3XNjaGaPnlJYRZmDoAAtzwtn1L1Gv_RoAtejaewACo0DzoO3q6oes8yNWS9zEQ4vmU--TgUlgWnoQHZNQ0rUlXXGYT7dnWa89jTRNERqJt9_izCM9NGI5yzJ2cRpDLNEAEORntXViRsBDYqDistTYnap0W5Loa2GyPMacN310nTSN439dCzVOFUg/s320/Acluster5.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;">and k=1</div><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBBy5r3OuPIuqzXfC0nVIQnhwDFZ2Z7U4dfjPaO-d0fDibcYC3yZ_jGA_zJpsMPVIsPKEH5nfmcu3vABnnTmsTz5UtxQuc1PbBNHChcaMB4JkNfKa7Gu95QhAbc79U62HYH8-dLziIsyyz_P_YusOWNE0DXMdPlmQzb64cRQC3Fgj8UlpsRjqlkshDiQ/s1731/Acluster7.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1290" data-original-width="1731" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBBy5r3OuPIuqzXfC0nVIQnhwDFZ2Z7U4dfjPaO-d0fDibcYC3yZ_jGA_zJpsMPVIsPKEH5nfmcu3vABnnTmsTz5UtxQuc1PbBNHChcaMB4JkNfKa7Gu95QhAbc79U62HYH8-dLziIsyyz_P_YusOWNE0DXMdPlmQzb64cRQC3Fgj8UlpsRjqlkshDiQ/s320/Acluster7.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Here's close up around k=0.8:</div><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk6ugLabH9Pkf6TAkp-LRaToQuAScu-bNlsiUyDP2vDG57Lmmu1Aiol-xpLNieFEZe7DzY-sLHBITJJMoLRNuhnIW14r6tPiAvYqMwPoF-VnacTjaaOHi2EtF8wNVKJ6TXo86sXptAHdXT7VB5viJVHpgrb866koJNRo7mBCq6T1nYHpkwmSVpX6PY-w/s1731/Acluster8.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1290" data-original-width="1731" height="476" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk6ugLabH9Pkf6TAkp-LRaToQuAScu-bNlsiUyDP2vDG57Lmmu1Aiol-xpLNieFEZe7DzY-sLHBITJJMoLRNuhnIW14r6tPiAvYqMwPoF-VnacTjaaOHi2EtF8wNVKJ6TXo86sXptAHdXT7VB5viJVHpgrb866koJNRo7mBCq6T1nYHpkwmSVpX6PY-w/w640-h476/Acluster8.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div><br /></div><br /><p><br /></p><div><br /></div><p></p></div></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-35470426212488230272023-03-18T23:14:00.008-07:002023-03-22T00:55:44.404-07:00Mean Clusters<p>Imagine you dropped some pebbles on the ground or threw several darts at a bullseye, what shape do they form on average?</p><p>If we model this 'cluster' of pebbles or darts as a Gaussian distribution then we can estimate the average shape of the cluster. </p><p>I run it as a tournament, so each set of 2D points is averaged with one other, all the way down to one mean cluster.</p><p>In order to get the average of two clusters we have to match them up. Not only does this mean translating and rotating one cluster to be as close as possible to the other cluster, but it also means considering all permutations of the cluster order, in order to find the mapping that produces the closest Euclidean transformation between the two point sets. </p><p>If we do this then we get shapes emerging. Obviously for 2 darts they just form a point pair. For 3 darts we get this:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7WtoGyZwQgvpDupkoI9jA4H0vgCXzeQFr6s7EOtDuza4biWJoCIiUEYUQjgmSzl0qgez2PLBkJMktbMaT1KtwNwWeZh5JTzUWSPZvZfbNyD6ts2maDOVs5oMvqmy1pc2lStYuebAJmkMcH4KcOgcFJjKfGOSAPtiu1b-LbmCqUDp-XPENSPed8C0brQ/s715/sym3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="669" data-original-width="715" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7WtoGyZwQgvpDupkoI9jA4H0vgCXzeQFr6s7EOtDuza4biWJoCIiUEYUQjgmSzl0qgez2PLBkJMktbMaT1KtwNwWeZh5JTzUWSPZvZfbNyD6ts2maDOVs5oMvqmy1pc2lStYuebAJmkMcH4KcOgcFJjKfGOSAPtiu1b-LbmCqUDp-XPENSPed8C0brQ/w200-h187/sym3.png" width="200" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">For 4 darts we get this shape:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeBnQxOPHNS8GIlK4d4eYTUPs8ZU-RWGrFNPVI-_MdhsCt4PL6EGbRvbocz8DyzbG3V-ZJdBysVRJFVi4I_mHLUq8dWiui2SMRtIchlOIG-Vw2Fa10kRB_uYRalE8ruT5WV5K6Dp7KxXg2SP0oNYMdoiJlSjGvNyV3qONNR42nEGtXXVUeyDGBZwH1aQ/s728/sym4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="400" data-original-width="728" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeBnQxOPHNS8GIlK4d4eYTUPs8ZU-RWGrFNPVI-_MdhsCt4PL6EGbRvbocz8DyzbG3V-ZJdBysVRJFVi4I_mHLUq8dWiui2SMRtIchlOIG-Vw2Fa10kRB_uYRalE8ruT5WV5K6Dp7KxXg2SP0oNYMdoiJlSjGvNyV3qONNR42nEGtXXVUeyDGBZwH1aQ/w200-h110/sym4.png" width="200" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">And for 5 points, we get:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTMh6ZJXMLleGzHknG0b1hmrP4N4n_wnceOEbcvGmn-FkyNoom0qvia4Bt6AUdF9uXObQjPSN14ehnImFbZNfW5X5LbMLDPt0ZoXvuWas6qLGCl8LtnPey8i37zdU9WuN6NIM3F_RXnWSCxes-NySofsmN90RvjILsu39T9m5Uw2Law_xrXBnkAxT8Fw/s726/sym5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="517" data-original-width="726" height="143" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTMh6ZJXMLleGzHknG0b1hmrP4N4n_wnceOEbcvGmn-FkyNoom0qvia4Bt6AUdF9uXObQjPSN14ehnImFbZNfW5X5LbMLDPt0ZoXvuWas6qLGCl8LtnPey8i37zdU9WuN6NIM3F_RXnWSCxes-NySofsmN90RvjILsu39T9m5Uw2Law_xrXBnkAxT8Fw/w200-h143/sym5.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: left;">For 6 we get:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNSeDlGEmeIYFfOg5xxA7QNumIhWAgKfuWR6Bf9FdZYD8bp1GoWdeYlp0-esRueRouDklU9XkNj1JJPBX7uRvswQnYW_4vpJsP0qLkzG5_XuEdaqJcA8k-2mK0FVFe--lZlzyxEPcCCi4QXLOwI8CK46CL8Kcf9D1My5NiOOWyhKAyBd2_l4dnOICJfg/s587/sym6.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="587" data-original-width="527" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNSeDlGEmeIYFfOg5xxA7QNumIhWAgKfuWR6Bf9FdZYD8bp1GoWdeYlp0-esRueRouDklU9XkNj1JJPBX7uRvswQnYW_4vpJsP0qLkzG5_XuEdaqJcA8k-2mK0FVFe--lZlzyxEPcCCi4QXLOwI8CK46CL8Kcf9D1My5NiOOWyhKAyBd2_l4dnOICJfg/w179-h200/sym6.png" width="179" /></a></div><br /></div></div><div class="separator" style="clear: both; text-align: left;">Putting them in a line with 1 and 2 for completion we get:</div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKmzHkvTGmJdojD4_HUy2r9p2d2jw4-ePLpNoLZNZ23Yyh7i5gHOymzihidbFeYrRG2cJHvv6F1EhRSQTCfyhACEHaGD2uWsOrp0K0jK9COcMhJrWGOqWsJdwe2zqIYvPZORQkVKsO2AX2_VKQ1tY0KOpuxjyazelw3Oq0z_WK4iUSNgV319m8ZqLW3Q/s1825/sym_half.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="364" data-original-width="1825" height="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKmzHkvTGmJdojD4_HUy2r9p2d2jw4-ePLpNoLZNZ23Yyh7i5gHOymzihidbFeYrRG2cJHvv6F1EhRSQTCfyhACEHaGD2uWsOrp0K0jK9COcMhJrWGOqWsJdwe2zqIYvPZORQkVKsO2AX2_VKQ1tY0KOpuxjyazelw3Oq0z_WK4iUSNgV319m8ZqLW3Q/w640-h128/sym_half.png" width="640" /></a></div><br />Or rendered a bit bigger:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEu02MlHpd_DV01-jvrv7y0ypUxAwpRNKdHgO3MCyg2ZYrkdCiaMot7MkjQV6RLhXkqc0UkXYL7ITv3L_yax9GHMA-f_iwXdLonHhqZuCBseDvfxZ8rfmdiSqvUNflAoGlJpSKqConSZrKG2emzO3bEQQEOjEBGfD1G2fIciw4UBa5tR68GrzBZv8tYA/s1834/meanpoints.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="403" data-original-width="1834" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEu02MlHpd_DV01-jvrv7y0ypUxAwpRNKdHgO3MCyg2ZYrkdCiaMot7MkjQV6RLhXkqc0UkXYL7ITv3L_yax9GHMA-f_iwXdLonHhqZuCBseDvfxZ8rfmdiSqvUNflAoGlJpSKqConSZrKG2emzO3bEQQEOjEBGfD1G2fIciw4UBa5tR68GrzBZv8tYA/w640-h140/meanpoints.png" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">You might imagine a 'mean dice' using these patterns as its spots for 1 to 6, since they are the most average shape that a cluster of that size would be found in. </div><div class="separator" style="clear: both; text-align: left;"> </div><div class="separator" style="clear: both; text-align: left;">In each case the result has to have bilateral symmetry, but if we allow reflections when comparing shapes then we get asymmetric results:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzlNixh0QBneyvpxnkhhegtXZM9yf9kXzFDMtnQk_iouhJY6uELivcBtzVpxEIA8lHJNMnuHHKrdmg0Y-ele909tyqNHq3rSJpMaKJieTd-V9a3pq8qux8UcbZNOM17P3qrqTUJ4dxUnyUdtGn96X08oNPnCNylw9xQ6K5cvR3aqO--FjQkSEvD00tJA/s536/asym3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="492" data-original-width="536" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzlNixh0QBneyvpxnkhhegtXZM9yf9kXzFDMtnQk_iouhJY6uELivcBtzVpxEIA8lHJNMnuHHKrdmg0Y-ele909tyqNHq3rSJpMaKJieTd-V9a3pq8qux8UcbZNOM17P3qrqTUJ4dxUnyUdtGn96X08oNPnCNylw9xQ6K5cvR3aqO--FjQkSEvD00tJA/w200-h184/asym3.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: left;">and for 4:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrqe0e1iM39-eNF2x89Grrd4RWr1Qp4BbNXAjuDTWVTtwOAl7lTKAmCjob0kHFuOgtiCQcFIwcKICdc3A9svNQh4yZGQwndp0fycL7jeubjEwjzC7o2p3CGr1qIaDJlU0K_6DlwQqcA03eMbVJY-J1s2QzUXaZzKO5EIT2GQeyc04qGLFc65wA0syeLg/s621/asym4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="621" data-original-width="520" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrqe0e1iM39-eNF2x89Grrd4RWr1Qp4BbNXAjuDTWVTtwOAl7lTKAmCjob0kHFuOgtiCQcFIwcKICdc3A9svNQh4yZGQwndp0fycL7jeubjEwjzC7o2p3CGr1qIaDJlU0K_6DlwQqcA03eMbVJY-J1s2QzUXaZzKO5EIT2GQeyc04qGLFc65wA0syeLg/w168-h200/asym4.png" width="168" /></a></div><br /></div><div class="separator" style="clear: both; text-align: left;">and for 5:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkm1DbgGOJt-_BmlDm1yP3Fo_2OirAAm-FMyNE9LU1uoDXwrhiXZdM-LeLNcO89YJ_io45UR9USquNYpBueBYaVwbhCh8cVAkqh5wFU9BAUAkHlpjF55I-gldxe02dF7prW9bQCDU4JHk3zKG9RtCEZLUi3uy8Qn99xt1KAGTHWrydiM-JCK3OTkFqxA/s715/asym5.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="465" data-original-width="715" height="130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkm1DbgGOJt-_BmlDm1yP3Fo_2OirAAm-FMyNE9LU1uoDXwrhiXZdM-LeLNcO89YJ_io45UR9USquNYpBueBYaVwbhCh8cVAkqh5wFU9BAUAkHlpjF55I-gldxe02dF7prW9bQCDU4JHk3zKG9RtCEZLUi3uy8Qn99xt1KAGTHWrydiM-JCK3OTkFqxA/w200-h130/asym5.png" width="200" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">I have rotated them so the closest points are horizontal, this makes it look like the result is a spiral that grows. Does the pattern continue for 6 points?:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgydiBGN_V9FXNfHCm2MPGQ6cGbnQcR3ffjV4HM0a6JeiF-kKxniMO-DP8-S1iIRK_TYEaG0JzENv3TuGJJ8m_HDk3ljqj20ujYt41dZDJU4ekz3EN4yfrQjyfqIHP31sU6MXGDqRvOOS8uxfqHVrVJj3mwaevgE88wiNaDZgAUuu8EWznwn7Ig0TiCBw/s613/asym6.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="491" data-original-width="613" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgydiBGN_V9FXNfHCm2MPGQ6cGbnQcR3ffjV4HM0a6JeiF-kKxniMO-DP8-S1iIRK_TYEaG0JzENv3TuGJJ8m_HDk3ljqj20ujYt41dZDJU4ekz3EN4yfrQjyfqIHP31sU6MXGDqRvOOS8uxfqHVrVJj3mwaevgE88wiNaDZgAUuu8EWznwn7Ig0TiCBw/w200-h160/asym6.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: left;">It looks like the pattern breaks at 6, though it is a bit hard to see because it could be this or its mirror image.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div>A different definition of a cluster is a set of points that are closer to each other than to any other points. Such clusters can be generated from any uniformly randomly placed set of points. It would be interesting to see whether this produces a different set of shapes. I doubt they would be very different as the distribution of such a cluster is surely fairly close to a radial Gaussian. <br /><div class="separator" style="clear: both; text-align: left;"><br /></div><br /></div><br /><p></p>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-56714631265173264892023-02-01T14:51:00.009-08:002023-03-15T21:07:45.086-07:00Mean Islands<p> What does the average island look like?</p><p>To answer that, we need a very general model for generating islands. The model I am using is the Gaussian Free Field. This is the 2D equivalent of Brownian noise, and it has the property that it is conformal / scale symmetric. In other words, it is a fractal height field very similar to the old plasma fractals used to make <a href="https://en.wikipedia.org/wiki/Fractal_landscape">fractal landscapes</a>:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOPpj842PMMFS_uAB7LzKQG5SoJEa7ng78Q1sO4r7oqt4Xqm1l8GaoQeGDVDMPqS3chIvfSU6L_Guc2t6IqSNbbarwz8HutTEBeeMnyzIklHlAREOoLvGnSMVQlDpettqQK6pISuJ-P5qbU6GiBtZzrQWolC9x1nNfSfnqbRscVYptEwbfRVA4Ag2akQ/s895/landscape.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="692" data-original-width="895" height="247" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOPpj842PMMFS_uAB7LzKQG5SoJEa7ng78Q1sO4r7oqt4Xqm1l8GaoQeGDVDMPqS3chIvfSU6L_Guc2t6IqSNbbarwz8HutTEBeeMnyzIklHlAREOoLvGnSMVQlDpettqQK6pISuJ-P5qbU6GiBtZzrQWolC9x1nNfSfnqbRscVYptEwbfRVA4Ag2akQ/s320/landscape.png" width="320" /></a></div>In fact the Gaussian Free Field is the mathematically simplest and most invariant such landscape.<div><br /></div><div>All we need to do is set a water level and the result is a set of islands. So what does the average such island look like?</div><div><br /></div><div>It wouldn't be circular because it is a shape, and shapes are invariant to Euclidean transforms, in other words you need to rotate and pair of islands to best fit, before taking the average of the height field. This is therefore part of my series on mean shapes under symmetries. The first attempt at a mean island looks like this:</div><div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvTuKvDNskqqGO-Oe-Iyt5PV2ikieAZzOjoDiuFERDr8KgwcDEecbRgJyOSO39yd9IahBk9gptPyZkvHvWR1PSBOJ0IdBljnr3HsOiVV4l4wNO9Pdi7te752ozmKozhYnrlRiK85UbUeolTHC80jRZ36v5G1VF98Yp2DH26wRHbEQLxL1cmHWkY_6YCg/s160/blobsymmetric.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="160" data-original-width="153" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvTuKvDNskqqGO-Oe-Iyt5PV2ikieAZzOjoDiuFERDr8KgwcDEecbRgJyOSO39yd9IahBk9gptPyZkvHvWR1PSBOJ0IdBljnr3HsOiVV4l4wNO9Pdi7te752ozmKozhYnrlRiK85UbUeolTHC80jRZ36v5G1VF98Yp2DH26wRHbEQLxL1cmHWkY_6YCg/s1600/blobsymmetric.png" width="153" /></a></div>The greyscale is the island, with height shown from 50% grey up to white, and the blue is water, showing the depth. It looks like an inverted ellipsoidal paraboloid, i.e. oval shapes, with a length to width ratio of something close to 2 (1.97 above, which merges 2^16 islands).</div><div><br /></div><div>In order to generate the mean island, I generate a large number of Gaussian Free Fields (2^18) in a fixed square region, then for each pair of fields I find their peak and lower the water level until I get an island of specified area (I'm using 1/20 the area of the GFF). It doesn't matter that I use the highest peak, or what area I choose because the GFF is conformal and all peaks have the same statistical properties. I just can't make the area too large compared to the GFF region. </div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPWkigErwwWdV-xZcE1zO7-WnPk2GYWo-Szm3URNIsp-ecOz9IvuhtM1YwmX4ACBxHcq3yfKXOhLYikK7hRF1o_NJM_X4muFIf27v7ozZa5AtrI11jMVE0_1zK5Hq1m4JxhnUZ_i2Iy4p8HBMmnriTDxjU08U8wc3uwKEqFkv2aJF4bamNYeDpLmBvFw/s64/map_4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="64" data-original-width="64" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPWkigErwwWdV-xZcE1zO7-WnPk2GYWo-Szm3URNIsp-ecOz9IvuhtM1YwmX4ACBxHcq3yfKXOhLYikK7hRF1o_NJM_X4muFIf27v7ozZa5AtrI11jMVE0_1zK5Hq1m4JxhnUZ_i2Iy4p8HBMmnriTDxjU08U8wc3uwKEqFkv2aJF4bamNYeDpLmBvFw/w200-h200/map_4.png" width="200" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij0MDRVR6R-gBVdo-CvtauRpcTmo5h4FIQe0O2gC7LShghzdrOVsdSr24qi55xYNWOEysjf-83gOn0Pa9o7kKVFxejXr1ai-1VC9lCeD1Vcd6SpOl6hJUXvbRXKq0AMXjVn_VecMQKMAowSGm4bLCsKq-TbBJE0nNFDrYJ6qij37-P7zqw7QdvJfO9VA/s64/examplept25.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="64" data-original-width="64" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij0MDRVR6R-gBVdo-CvtauRpcTmo5h4FIQe0O2gC7LShghzdrOVsdSr24qi55xYNWOEysjf-83gOn0Pa9o7kKVFxejXr1ai-1VC9lCeD1Vcd6SpOl6hJUXvbRXKq0AMXjVn_VecMQKMAowSGm4bLCsKq-TbBJE0nNFDrYJ6qij37-P7zqw7QdvJfO9VA/w200-h200/examplept25.png" width="200" /></a><br /><br /></div><span style="font-size: x-small;">Examples of GFF islands. Brightness is height, blue is below water, yellow is the floodfilled island from the highest peak in the map. Red is the centroid and dark red is the centroid plus the eigenvector corresponding to the smallest eigenvalue of the island's covariance matrix.</span><br /><div><br /></div><div><br /></div><div>I then must align the two islands. A smart way would be to use the Fourier-Mellin transform to find the closest transformation between the two islands. However this is complex and slow and didn't work after several attempts including using a <a href="https://github.com/sthoduka/imreg_fmt">3rd party library</a>, so I use a simpler method: I take the centroid of each island, and find the covariance around each one, then I use the eigenvectors of this covariance to align the two islands, so that the smallest eigenvectors are either parallel or anti-parallel. I test both transformations by looking at the sum of the product of all the heights above water.</div><div><br /></div><div>It is a bit surprising that the result is such a uniform ellipse, which has 180 degree rotational symmetry. I thought that the ability to rotate would allow more of an egg-like shape with 360 degree rotational symmetry. I think the reason why is that aligning the centres of mass is not the same as finding the cross-correlation peak. </div><div><br /></div><div>So instead, I cross correlate the translations by using the 'FFT->multiply by conjugate->IFFT->find peak real part' technique, and I check the value of the peak for both 180 degree rotations, making sure to interpolate the peak using a quadratic interpolation with the two neighbours along each axis. The result is what I expected, the mean island is an egg-like shape:</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdhRdlydSVbhj9vH0LH29yEOlOxp5MJFSwtPyX_WeGmH0Gq4c_AZzeTzxW4wXoVoPZn9ao-fKlGbNhZm_qsbeDMuX9uBEiTsfdwDwoRNWA7hctp9OY9oEI-zKGRyYK38VM86u5Sro3VE-Zywju5VgnKU9gAkVvzQcY9shCkIulJKHUtatucIlGws1WeA/s119/symmetric_island.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="119" data-original-width="118" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdhRdlydSVbhj9vH0LH29yEOlOxp5MJFSwtPyX_WeGmH0Gq4c_AZzeTzxW4wXoVoPZn9ao-fKlGbNhZm_qsbeDMuX9uBEiTsfdwDwoRNWA7hctp9OY9oEI-zKGRyYK38VM86u5Sro3VE-Zywju5VgnKU9gAkVvzQcY9shCkIulJKHUtatucIlGws1WeA/w198-h200/symmetric_island.png" width="198" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">If I allow reflection symmetry when finding the closest correlation then the result is (surprisingly) unaffected:</div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2h63sXqOAYFkpGUfDFR7WBjD7sxHzBauQLS4qewQInfWOgifrgIiLNMo5O5tj_Y74PF6XCGKuNuk7SBZMDSzb2RZrUwX-Y3i92Jmvc9MFxhFeCDL53ihcjUlO-yx3o8YkKJ7jTOoEsBpPOQZQ-ln-IjKlp3bevYSnhMltNlKAlf54Wd0sM2ETlH3DVQ/s92/asymmetric.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="92" data-original-width="72" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2h63sXqOAYFkpGUfDFR7WBjD7sxHzBauQLS4qewQInfWOgifrgIiLNMo5O5tj_Y74PF6XCGKuNuk7SBZMDSzb2RZrUwX-Y3i92Jmvc9MFxhFeCDL53ihcjUlO-yx3o8YkKJ7jTOoEsBpPOQZQ-ln-IjKlp3bevYSnhMltNlKAlf54Wd0sM2ETlH3DVQ/w157-h200/asymmetric.png" width="157" /></a></div><div style="text-align: left;">This is a bit suspicious. It could be that reflective symmetry is where a full Fourier-Mellin cross-correlation is required, to see the asymmetry in the island, or the asymmetry maybe just be subtle. </div></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Anyway, here is another run at twice the resolution, just to show that it is repeatable and smooth: </div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDe5tyxANuRX0YvOo4mju8oSiP8GOjWqGKgFIywpP6wCKwSwFswQ0wcbWcjTQFDfjoqtosl-D7dtGs67MOl6Zm42gEDXT2qbzZxN2mXX1WX_CIPJJkqVQ4YHhxcIX-KW5om7M6QCRnv3Ek0WPP9F7kDlhz49Ifv2Rz4_ZCAmOogeDrWxGJkIOBGXT07w/s73/symmetric128.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="55" data-original-width="73" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDe5tyxANuRX0YvOo4mju8oSiP8GOjWqGKgFIywpP6wCKwSwFswQ0wcbWcjTQFDfjoqtosl-D7dtGs67MOl6Zm42gEDXT2qbzZxN2mXX1WX_CIPJJkqVQ4YHhxcIX-KW5om7M6QCRnv3Ek0WPP9F7kDlhz49Ifv2Rz4_ZCAmOogeDrWxGJkIOBGXT07w/w200-h151/symmetric128.png" width="200" /></a></div><div class="separator" style="clear: both; text-align: left;"><br /></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-60031479804529187252023-01-22T19:42:00.001-08:002023-01-22T19:42:19.590-08:00Mean Repeating Continuous Function<p>It a <a href="https://tglad.blogspot.com/2022/02/mean-brownian-paths.html">previous post</a> I looked at the mean path of Brownian motion in 2D. Here I look at something similar in 1D: for a repeated continuous function. </p><p>Again, the question arises as to what the space of all continuous repeating functions are. I think the answer that makes the least assumptions is a Brownian bridge from 0 to 0. It is therefore repeated Brownian motion. </p><p>If we took the mean function of all such Brownian bridges, the result would be y=0, which is rather boring. </p><p>However, this series of 'mean things' is including symmetries, or rather, making certain parameters non-absolute. In this case we make the x position of the function non-absolute, and we give it scale symmetry in its range, so we look at the mean function only relative to its own variance in y, and without any absolute x values. </p><p>We can make a Brownian bridge from 0 to 0 by noting that the power spectrum of Brownian noise is 1/f^2 where f is the spatial frequency. We can therefore generate this spectrum with random phase values per wavelength, and take the inverse Fourier transform to get the resulting Brownian bridge.</p><p>The algorithm is as follows:</p><p>For each pair of repeating functions, cross correlate (Fourier transform, element-wise multiply, inverse Fourier transform) to get the x offset where they are closest, then average the two using this x offset.</p><p>The resulting function looks like this:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_csOe04hzAvwgq8ILdpt05kHTUFAH2-M1MkPF3QWy6zW8EeFhv-zsUFw85kBpH3l7G5AlTALqIq4NSUnYNXJdwBRIJ8pGxa9NwdGEP31iYKOEHwQFqt9ROMObCwi1Dd_Md0kRpTMgG1mN9GFnG2WvdLCX__H1vsfb2-Wwmd4ICtqvfmpRGOfyOM9mrQ/s997/sin1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="524" data-original-width="997" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_csOe04hzAvwgq8ILdpt05kHTUFAH2-M1MkPF3QWy6zW8EeFhv-zsUFw85kBpH3l7G5AlTALqIq4NSUnYNXJdwBRIJ8pGxa9NwdGEP31iYKOEHwQFqt9ROMObCwi1Dd_Md0kRpTMgG1mN9GFnG2WvdLCX__H1vsfb2-Wwmd4ICtqvfmpRGOfyOM9mrQ/s320/sin1.png" width="320" /></a></div>In other words a sine wave. At least it appears to be a sine wave, and it probably is exactly that. <div><br /></div><div>We can also give the range vertical symmetry, so we pick the closest correlation between the two functions from either the two positive functions, or with the second function negated. This removes the symmetry in the repeating function, giving a slightly leaning sine wave:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLVV2V9yUxDIz23qsx9dYvrUc7pcVObblQlru8eIQs9zFH1I3-r8xKYP_gjOup8YW28_988KCh_CzGupNkqGMXTYnUZ8c_Db1UJ-wTny3BbtnLuuPevFiyke2VX6RasL0fLRFnDoiE3349KDdoPxIxAd485M_FBwdMQkaTlWQqR1aPeioaUWv2DcUsLw/s997/verticalreflection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="524" data-original-width="997" height="168" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLVV2V9yUxDIz23qsx9dYvrUc7pcVObblQlru8eIQs9zFH1I3-r8xKYP_gjOup8YW28_988KCh_CzGupNkqGMXTYnUZ8c_Db1UJ-wTny3BbtnLuuPevFiyke2VX6RasL0fLRFnDoiE3349KDdoPxIxAd485M_FBwdMQkaTlWQqR1aPeioaUWv2DcUsLw/s320/verticalreflection.png" width="320" /></a></div>Noting that it is this function, and its negative, which are the mean repeating functions.<div><br /></div><div>It is probably not right for our samples to have an exact 1/f magnitude for each wave frequency f, a better sample would have its magnitude taken from a normal distribution with standard deviation f. This takes longer to converge but seems to give the same results. Without reflection symmetry:<br /><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebrdLiHMceGU8Ldg9884YdvWhYOSzNgMdmgNfMkbxxTGiyIF9TN56REI7rcIMSIGyaIhQ_hdmzgPgg7aPhT5Ey5DiqIc32L7JjqUKZ3kJDuWFZRy_h6cbRjkO3l8OV9MbiSfry2TekIP7Wf6RhIr_dDn5OE2W1bWj1dqnfHXmtyI8uwhd2uBR2DdrYQ/s997/simple3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="525" data-original-width="997" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhebrdLiHMceGU8Ldg9884YdvWhYOSzNgMdmgNfMkbxxTGiyIF9TN56REI7rcIMSIGyaIhQ_hdmzgPgg7aPhT5Ey5DiqIc32L7JjqUKZ3kJDuWFZRy_h6cbRjkO3l8OV9MbiSfry2TekIP7Wf6RhIr_dDn5OE2W1bWj1dqnfHXmtyI8uwhd2uBR2DdrYQ/s320/simple3.png" width="320" /></a></div><div>With reflection symmetry:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAopa854G-kBZ3WDR7YEyv97fneqgJjX1uuBB2y4-JxfwtNnVTVieSLpJ5AviDkulI_XdDsr2QeN9Xv9Uh8oCawPphZkvD1UsqoARvbU6wZ-GGrNvC6_vV_u5olQ4HIYTzIH94kXHq99krv4cgfF7d851UQhUDvZ21n7dmIoIEcXIL4B8nakaxFF-TbQ/s997/vertical8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="525" data-original-width="997" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAopa854G-kBZ3WDR7YEyv97fneqgJjX1uuBB2y4-JxfwtNnVTVieSLpJ5AviDkulI_XdDsr2QeN9Xv9Uh8oCawPphZkvD1UsqoARvbU6wZ-GGrNvC6_vV_u5olQ4HIYTzIH94kXHq99krv4cgfF7d851UQhUDvZ21n7dmIoIEcXIL4B8nakaxFF-TbQ/s320/vertical8.png" width="320" /></a></div><br /><div>We could extend this idea to 2D, for example finding the mean Brownian drum (0 in a unit circle) under rotation symmetry, but I think it is likely to be a simple smooth Bessel function. We could also make a Brownian surface on a sphere (using spherical harmonics presumably) under spherical rotation symmetry, but I also imagine that the result would be very smooth and simple.<br /><p><br /></p></div></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-59298647752592834322022-09-15T20:15:00.011-07:002022-11-11T22:50:13.576-08:00Vortices and Octonions<p>Complex numbers, quaternions and octonions can be equated with three types of rotations: general rotations SO(n), simple rotations (rotations in a single plane), and isoclinic rotations Is(n). I also showed how SO(n) and simple rotations are built from Is(n). What's more, isoclinic rotations can also be used to generate reflections, e.g. qvq reflects v around 3D normal n when q is the isoclinic rotation defined (0,n). All of this suggests that isoclinic rotations are really the fundamental rotation type.</p><p>It also appears that these isoclinic rotations Is(2), Is(4) and Is(8) have a representation in 3D, giving a generalisation of the standard idea of rotations:</p><p>The complex rotations are in a single plane, which is also our standard idea of rotations in 3D. The quaternion Is(4) rotations can be represented in a couple of ways in 3D. The first is as a 'Hopf vortex' consisting of a rotation around one axis and an equal angled rotation around the orthogonal unit circle. The second is the so-called anti-twister mechanism, which is a rotation around a S-shaped curve which itself is rotating at the same rate. In both cases the rotation is around a curve which itself is rotating; a sort of vortex.</p><p>It is tempting therefore to consider whether the 8D isoclinic rotations associated with Octonions have a representation as a sort of vortex. I can think of two possibilities, which are all close I think:</p><p></p><ol style="text-align: left;"><li>Two anti-twister mechanisms that orbit each other at the same speed that they do their rotation. This can be configured to be equivalent to two spinorial balls rotating around a ball 3 times larger, which is equivalent to one spinorial ball rotating on a projective ball 3 times larger. This unusual sounding system describes the algebra of split-octonions, more specifically imaginary split octonions with normalised temporal and spatial components. The vortex is rotating by an angle in 3 different ways, unlike the 4 planes that Is(8) rotates in, on the other hand the split-octonions remove one of those planes of rotation, replacing it with the Lorentzian transformation. So its a well-founded vortex, but only represents a sort of split-octonion, which is close to but not the same as standard octonions.<div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dwdNUY_1nyrvDvFsxdwt-uFH9J7S6KwzbLCblvYUl4J-E0IaYmDSH0UQazdG0YMQ-bG6bWEb9fq9B1ZHMxwvg' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div></li><li>It is possible to make an anti-twister mechanism in 4D. If I is an isoclinic rotation with increasing angle theta, and T is a a rotation around one plane in 4D, modulated by radius (180 degrees at r=0 and 0 degrees at r=1) then ITI^-1 is the anti-twister transformation of 4D space. For theta 0 to 2pi the centre is an isoclinic rotation of 4pi, so it has spin 1/2, and theta is basically applied 4 times, since it double covers an isoclinic rotation. That is like the 4-angle isoclinic rotation of octonions.</li></ol><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span>If we use the axes of a radial tetrahedron as the four spatial axes, then there are two fixed planes (equivalent to the curved line pair in the 3D anti-twister), drawing these planes with lots of radial lines gives this motion:<br /></span></blockquote><div style="text-align: center;"><a href="https://vimeo.com/759747221">https://vimeo.com/759747221</a><span style="text-align: left;"> </span><span style="text-align: left;"> </span></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span>We know these are fixed planes because we can watch their behaviour when the camera is following the rotation I, this is equivalent to yawing the camera by theta in the 3D anti-twister, and seeing the curved line pair as fixed. So we're viewing TI^-1:<br /></span></blockquote><p style="text-align: center;"> <a href="https://vimeo.com/759745828">https://vimeo.com/759745828</a></p><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span>So if the camera follows the motion of I, all points in the space rotate around these fixed planes. In 4D you rotate around a plane. In a fixed camera this is a rotation around a rotating plane, giving a similar mechanism to two rolling balls, which is also a rotation around an orbiting thing (ball). </span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><p style="text-align: left;">If you take a 3D cross-section of the 4D space, again using the camera that follows I, you get this:</p></blockquote><p style="text-align: center;"><a href="https://vimeo.com/759745699">https://vimeo.com/759745699</a> </p><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><div class="separator" style="clear: both; text-align: center;"></div>The inner and outer circles are the cross section of the fixed planes, they are the equivalent of the two fixed points that space circles around in the 3D anti-twister. Here it shows that the nearby points rotate about these circles, and the circles themselves are rotating. So these fixed curves are going a sort of isoclinic rotation as they also rotate with I. Suggestive of the 'fermionic ball' around another ball used to describe unit imaginary split-octonions. More info about 4D anti-twisters <a href="https://www.overleaf.com/read/ptdntqjnvkxr">here</a>, and a summary of Octonion multiplications is <a href="https://www.overleaf.com/read/pqbjbhnwvdfp">here</a>.<p></p></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><p style="text-align: left;"> </p></blockquote><div>Presuming that we can represent octonions with vortices in 3D too, it has an interesting connection with string theory. String theory treats particles as repeating motions of strings. But vortices are fundamentally described by their curves (or strings), these are the invariant shapes of the motion, and vortices are repeating motions, just like oscillations. String theory also seems to describe physics with 8 dimensions for the string oscillations plus 1 for the string length and 1 for time, making it a 10 dimensional theory.</div><div><br /></div><p></p>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-16110590303223269052022-08-06T04:53:00.022-07:002022-11-15T19:28:14.903-08:00Octonions<p>I'm trying to learn about octonions. Rather than standard descriptions, these are some of my own thoughts, not all will necessarily be accurate as they're quite complicated beasts. I have added a more thorough set of information <a href="https://www.overleaf.com/read/pqbjbhnwvdfp">here</a>. </p><p>It is helpful to describe them in terms of the other division algebras:</p><p></p><ol style="text-align: left;"><li>The complex numbers describe rotation in one plane (2D) plus scale. That is two degrees of freedom, so one complex number is applied in the multiply, giving a binary operator: <div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9E97reNMzXpxgbB2nep6USs2RmP8Bl_wzOyA47I70-rPo8q_uuI5xYykKdIltKzVifOjJGVKcvzfDUxHbFZqC8WtfcgXyFcZZekzVNnM5KR-BwDd6DtQe1XfmwU_oJvxNzmN-IPsK9Fk0r3oqd5apuuYl04HnbzqjsDYXwzvABdJYnT2zyQNOqRSjSg/s62/CodeCogsEqn%20(42).png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="16" data-original-width="62" height="16" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9E97reNMzXpxgbB2nep6USs2RmP8Bl_wzOyA47I70-rPo8q_uuI5xYykKdIltKzVifOjJGVKcvzfDUxHbFZqC8WtfcgXyFcZZekzVNnM5KR-BwDd6DtQe1XfmwU_oJvxNzmN-IPsK9Fk0r3oqd5apuuYl04HnbzqjsDYXwzvABdJYnT2zyQNOqRSjSg/s1600/CodeCogsEqn%20(42).png" width="62" /></a></div></li><li><div class="separator" style="clear: both; text-align: left;">The quaternions describe rotations in two planes (4D) plus scale. That requires two quaternions to apply in the multiply, so fundamentally it is a trinary operator. q1 and q2 together rotate q:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdj4pJVw6rNzNgpR1-_9fAL0Cpt3RcRDnwkXfn05XO5o-TaUp0DdUqUKU73Y6UmaZ83IMJ_Cnth-MOLd3W0VwH_q2yseWb9i9rjEQJ7FMZa6LiOX9msbn5ykcu7b9VzWtlXjdAgL5ObvDaOl_QJYN2ln9ht3ku6sC8NEo1HBE7LlUEdCVs4rmcn2ee7A/s70/CodeCogsEqn%20(44).png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="33" data-original-width="70" height="33" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdj4pJVw6rNzNgpR1-_9fAL0Cpt3RcRDnwkXfn05XO5o-TaUp0DdUqUKU73Y6UmaZ83IMJ_Cnth-MOLd3W0VwH_q2yseWb9i9rjEQJ7FMZa6LiOX9msbn5ykcu7b9VzWtlXjdAgL5ObvDaOl_QJYN2ln9ht3ku6sC8NEo1HBE7LlUEdCVs4rmcn2ee7A/s1600/CodeCogsEqn%20(44).png" width="70" /></a></div></div></li><li><div class="separator" style="clear: both; text-align: left;">The octonions describe rotations in 4 planes (8D) plus scale. That requires four octonions to apply in the multiply, so fundamentally it is a 5-ary operator:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivof9YdkiRIBrle1MRfm_9FGQ1UVCvGoZRABi9bByz1iQClrkxRxTLtFs4MtEP935Son2mFJKMl1kL4UjD_47_oiQwNvu-GGXYSLCgNOx2EmqWO5pNWgDWaAH16QVvybqH4eY8FSQVmvkVPqXuwLrsDVz5eeCoAWrtskbmAcTtEwTwMBUBhBTzIjHU0w/s77/CodeCogsEqn%20(43).png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="49" data-original-width="77" height="49" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivof9YdkiRIBrle1MRfm_9FGQ1UVCvGoZRABi9bByz1iQClrkxRxTLtFs4MtEP935Son2mFJKMl1kL4UjD_47_oiQwNvu-GGXYSLCgNOx2EmqWO5pNWgDWaAH16QVvybqH4eY8FSQVmvkVPqXuwLrsDVz5eeCoAWrtskbmAcTtEwTwMBUBhBTzIjHU0w/s1600/CodeCogsEqn%20(43).png" width="77" /></a></div></div></li></ol><p></p><p>People don't use the multiply syntax quite as above, but I think that is a clearer way to describe what is happening, because using those operators each one is describing a full rotation in 2D, 4D and 8D respectively. The usual description is that it requires 7 octonion multiplies to generate a full 8D rotation, but that is when all multiplies work the same way. In On Quaternions and Octonions (A.K. Peters 2003) they get down to SO(8) from 5 multiplications as long as they aren't all left, all right or all bimultiplies (a left and right by the same octonion). The '5-ary' multiply above is four multiplications, but we pull from more than just left and right multiplies, so it seems reasonable that it could represent SO(8). I'll explain using the quaternions as an example.</p><p>A single quaternion left-multiply rotates in one plane that contains the (1,0,0,0) vector, and by an equal angle in the orthogonal plane. The right multiply does the same thing but rotates about the negative angle in the orthogonal plane. This combination of a ++ with a +- by a different angle value allow any combination of two angles, giving a full rotation. </p><p>For octonions there are four planes that the rotation angle can be positive or negative on. This doesn't leave enough room with just left and right multiplies for all of the combinations. We want to rotate using ++++, ++--, +-+- and +--+ by different angles for each, which achieves the full set of rotations. That would require an "up multiply" and "down multiply" or some such label. In the 5-ary operator above o1,o2,o3 and o4 would each use a different one of these multiplies.</p><p>You can of course still define the usual quaternion or octonion multiply, and these single binary operations both apply a 'special rotation' by which I mean a subset of the full set of rotations. For quaternions that is a self-dual or isoclinic rotation, which means by the same angle on two orthogonal planes, and for octonions it is by the same angle on four orthogonal planes. </p><p>You can also negate the extra rotation planes to leave a 'simple rotation' meaning a rotation around a single plane. For quaternions that is<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb-jacItnCgITAmr0c981kZYVcj4_EWdjb8Ug-yFRt9MPv2xdXpYGOrYP7njnO3uatRYowiDWNrTYtkYrCWfd0m4iXIBga28P3kot9_jY6Utdo_15RSgOefVfkIbHL3hgYIB3xiQP_46zSYmTopKjLSLceVuSS2Rftx3A8ShNYKXArqKAAj9MFE5acxA/s84/CodeCogsEqn%20(46).png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="34" data-original-width="84" height="34" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb-jacItnCgITAmr0c981kZYVcj4_EWdjb8Ug-yFRt9MPv2xdXpYGOrYP7njnO3uatRYowiDWNrTYtkYrCWfd0m4iXIBga28P3kot9_jY6Utdo_15RSgOefVfkIbHL3hgYIB3xiQP_46zSYmTopKjLSLceVuSS2Rftx3A8ShNYKXArqKAAj9MFE5acxA/s1600/CodeCogsEqn%20(46).png" width="84" /></a> or in usual syntax:<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hz_MDcDck7d8v4SlF7MRrMJuB9kqljhIEDf-Mx-dQEAO-_QolaEyQuwr0_FuLX8a7wVR_MIqqWbW8VwBSZY5EOZIhr2RZxtMGEqyk3LE0cEuSTCfv-z2XSyImqL36AOG9rGBt8fHT1NpSyju7PsK5QNKMPo-FgBv5dvdw7D4ew6g6KoS-bk4LbcNfw/s66/CodeCogsEqn%20(45).png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="27" data-original-width="66" height="27" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7hz_MDcDck7d8v4SlF7MRrMJuB9kqljhIEDf-Mx-dQEAO-_QolaEyQuwr0_FuLX8a7wVR_MIqqWbW8VwBSZY5EOZIhr2RZxtMGEqyk3LE0cEuSTCfv-z2XSyImqL36AOG9rGBt8fHT1NpSyju7PsK5QNKMPo-FgBv5dvdw7D4ew6g6KoS-bk4LbcNfw/s1600/CodeCogsEqn%20(45).png" width="66" /></a>. For octonions it is:<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7M0w2_e_z6S125Q04QGnZgzy3_S1wel30ilETzqDFUrdBF7Rge2Krh4L___2Cl4x1icsqqDJgDj-y5q7LP6USXTQqbfVO73w08Ih35sXItsa7BGYz8Y7xHdfNAJHhm9kfAIGhnlrJzottI0S4on0L8IErlbyDeB88qDB4kvf5b-8OdbJkoncvpA_pbQ/s90/CodeCogsEqn%20(47).png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="61" data-original-width="90" height="61" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7M0w2_e_z6S125Q04QGnZgzy3_S1wel30ilETzqDFUrdBF7Rge2Krh4L___2Cl4x1icsqqDJgDj-y5q7LP6USXTQqbfVO73w08Ih35sXItsa7BGYz8Y7xHdfNAJHhm9kfAIGhnlrJzottI0S4on0L8IErlbyDeB88qDB4kvf5b-8OdbJkoncvpA_pbQ/s1600/CodeCogsEqn%20(47).png" width="90" /></a>or something similar. The idea is that the ++++, ++--, +-+-, +--+ sum together to give 4,0,0,0 times whatever the rotation angle was. This means that octonions would be a quadruple cover of the space, when used for simple rotations.<br /><br /></p><p>Note that octonion multiplication only rotates 8D vectors, not 8D rotations. While the above complex number and quaternion multiplications are equivalent to vector transformation <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixfTnBTtyNdpWElxj1UjQ-ncxl1wB9egmm0GfubI0udttOJJfEEATQtOuWFVh6y5e1ylGfnbtxN8vqA6zB0Dv6q4cePozzOK0bRWmokfHpXdY6fdchtLXf5ukPKZoWe1eKSa8wBKz82I6aF1JuaMDs46K7rp15nkoUycSAPW39hoKywUKgOjjDvkZPcw/s118/CodeCogsEqn%20(1).gif" style="clear: left; display: inline; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="24" data-original-width="118" height="20" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixfTnBTtyNdpWElxj1UjQ-ncxl1wB9egmm0GfubI0udttOJJfEEATQtOuWFVh6y5e1ylGfnbtxN8vqA6zB0Dv6q4cePozzOK0bRWmokfHpXdY6fdchtLXf5ukPKZoWe1eKSa8wBKz82I6aF1JuaMDs46K7rp15nkoUycSAPW39hoKywUKgOjjDvkZPcw/w98-h20/CodeCogsEqn%20(1).gif" width="98" /></a> and matrix (SO(n)) transformation <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAtA7jZoesSHsn00aJCJdrOEeNIWwHBYXi_JirK2v9rsapjLIShXmM3-xvzyYWnSrVTDkXI90hTDPHWI63B_Yly527JbIxGfY5OwQXZaeRfZSfCtos4_dxePAnToNv4tNiDavkGJw0mu60IxdlFtg1wFMmRWYcPSWf3dB6ZbRLpc1vudB7qjo5y96cXw/s174/CodeCogsEqn%20(2).gif" style="clear: left; display: inline; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="28" data-original-width="174" height="20" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAtA7jZoesSHsn00aJCJdrOEeNIWwHBYXi_JirK2v9rsapjLIShXmM3-xvzyYWnSrVTDkXI90hTDPHWI63B_Yly527JbIxGfY5OwQXZaeRfZSfCtos4_dxePAnToNv4tNiDavkGJw0mu60IxdlFtg1wFMmRWYcPSWf3dB6ZbRLpc1vudB7qjo5y96cXw/w124-h20/CodeCogsEqn%20(2).gif" width="124" /></a>, octonions are only equivalent to the vector transformation. That is because 8D rotations are SO(8) which can be represented by an 8x8 orthonormal matrix, and matrix multiplication is associative, unlike for octonions.</p><p>In summary:</p><p></p><ul style="text-align: left;"><li>Complex, Quaternion and Octonion numbers all support three types of rotation:</li><ul><li>a 'full rotation' (binary, trinary and 5-ary operators), by different angles for each plane</li><li>a 'special rotation' (isoclinic), which is the standard binary product operator</li><li>a 'simple rotation' which is in a single plane</li></ul><li>It is just that for complex numbers, the three are the same.</li><li>while quaternion (and complex number) multiplication rotates both vectors and other isoclinic rotations, octonion multiplication only rotates (8D) vectors, it cannot be thought of as an 8D isoclinic rotation under multiplication. </li></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1jCjwB2V4RNAtBIrwy0NbsfTMsxB0bvLARVopnCK-FM6LOjZWfv-wtHiHpfKK44NbqsB3AWBKtZSJV1T1W6SKbkGcqU-nyyrhh4MomsFK12GXUBXxYqc6zX3_iVplgGmryk7yV7EMgGysIwI4YQfWbCGNwfICLCaA15RrgHZj8L1nWvqzvCPIw4hJTA/s464/tab.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="80" data-original-width="464" height="64" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1jCjwB2V4RNAtBIrwy0NbsfTMsxB0bvLARVopnCK-FM6LOjZWfv-wtHiHpfKK44NbqsB3AWBKtZSJV1T1W6SKbkGcqU-nyyrhh4MomsFK12GXUBXxYqc6zX3_iVplgGmryk7yV7EMgGysIwI4YQfWbCGNwfICLCaA15RrgHZj8L1nWvqzvCPIw4hJTA/w374-h64/tab.png" width="374" /></a></div><div><br /></div>If we define Is(n) to be the set of isoclinic rotations from SO(n) then this is a better way to summarise:<div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfAdLdUAiUeDfkCScsqhGW5lGAHhiBiAK24jP0tZXu0zULvj46qZCoJ4TFtzVh39CZxEtld0nCG46yd9SwQ2lX5keEaIdpH021HGSXoHBNp8RULB98c7rwrSzX-czHeTGjtZDpNnnWdMycQChD3VRzIW3WXjP5JPixnQurolyr2j57OpMjSOcTE1tC7A/s574/tab2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="84" data-original-width="574" height="67" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfAdLdUAiUeDfkCScsqhGW5lGAHhiBiAK24jP0tZXu0zULvj46qZCoJ4TFtzVh39CZxEtld0nCG46yd9SwQ2lX5keEaIdpH021HGSXoHBNp8RULB98c7rwrSzX-czHeTGjtZDpNnnWdMycQChD3VRzIW3WXjP5JPixnQurolyr2j57OpMjSOcTE1tC7A/w456-h67/tab2.png" width="456" /></a></div><div><br /></div>The - at the bottom indicates that 8D isoclinic rotations do not form a group under octonion multiplication. Indeed, it is true that 8D (and any higher order) isoclinic rotations are not a group. So they do not form a subgroup of SO(8).<div><div><div><br /></div><span><a name='more'></a></span><div><a href="http://www.waltervansuijlekom.nl/wp-content/uploads/2020/08/thesisSuzanvLingen.pdf">Info on Hopf maps</a>: Relating Division Algebras to Hopf Fibrations using K-theory</div><div><br /></div><div>The Quaternion left-product (qv) is a 2-way isoclinic rotation of v.</div><div>The Octonion left-product (ov) is a 4-way isoclinic rotation of v.</div><div><br /></div><div>The unit Quaternion (S(3)) sandwich product (qvq*) double covers unit complex rotations (circles S(1)) in 3D (S(2)). This is connected to the Complex Hopf Map where S(3) is made of S(1) fibres on S(2).</div><div><br /></div><div>So it seems possible that an Octonion (S(7)) sandwich product (ovo*) double covers unit Quaternion rotations (two-way isoclinic: S(3)) in 5D (S(4)). This would match the Quaternionic Hopf Map where S(7) is made of S(3) fibres of S(4). However, one of the isoclinic planes would need to constrain one axis (e.g. contain axis 0), then there are 4 remaining DOFs defining the first plane, and a 3D space requiring 3 DOFs to define the second plane, this sums to 7 DOFs which matches the unit Octonion's degrees of freedom in the sandwich product.</div><div><br /></div><div>How could a sandwich product go from 8D down to 5D? Well the Quaternion product goes from 4D to 3D due to setting the w component of v to 0. This is perhaps justified by the fact that the Quaternion fixes one 4D axis of the first rotation plane (to along the w axis). Octonions ought to fix three plane axes due to their triality property, and therefore removing three axes from 8D gives the 5 dimensions. Whether that could be made to work in practice I don't know.</div><div><br /></div><div><br /></div><div><br /></div><div>This all sort of makes sense because we already have an algebra of simple rotations in 3D, and simple, isoclinic and general double rotations in 4D using Quaternions. So rotations in 5D would be the next logical step.</div><p></p></div></div></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-62077618115917468232022-07-08T19:32:00.006-07:002022-10-24T04:06:05.561-07:00Quaternions and Anti-twisters<p><a href="https://en.wikipedia.org/wiki/Anti-twister_mechanism" target="_blank">Anti-twisters</a> are a motion of 3D space that allows the centre of the space to rotate continually without the rest of the space getting tangled up. If we think of the space as a number of strings or belts coming from the centre, then the word tangled makes more sense. The process is also basically the same as the <a href="https://en.wikipedia.org/wiki/Plate_trick">belt trick</a>, <a href="https://en.wikipedia.org/wiki/Tangloids">tangloids</a> and is the topic of <a href="https://en.wikipedia.org/wiki/Orientation_entanglement">orientation entanglement</a>. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrvtcvoAB_-Mcoeb_H9wnJ9bYrXX2LTxNo_QX3CdHUBY-Kzt5x9cdsJ9da6jJmUHgrZJ_Umc7u-jUdSmnZzPxDGOVBwk1PWKvbXa4mQEPTVVGxYVmnkuoyTHq7zmEeD423m4dxpTO8-HLGI1TGd8hcOlXHdOWOB92rn1F-9hJIs_havlQfMYZhzkHitg/s256/Belt_Trick.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="256" data-original-width="256" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrvtcvoAB_-Mcoeb_H9wnJ9bYrXX2LTxNo_QX3CdHUBY-Kzt5x9cdsJ9da6jJmUHgrZJ_Umc7u-jUdSmnZzPxDGOVBwk1PWKvbXa4mQEPTVVGxYVmnkuoyTHq7zmEeD423m4dxpTO8-HLGI1TGd8hcOlXHdOWOB92rn1F-9hJIs_havlQfMYZhzkHitg/s1600/Belt_Trick.gif" width="256" /></a></div>In this gif you can see the central cube rotating continually and the six belts attach the cube to the rest of the space, without getting tangled up. The same trick works regardless of how many strings you have:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHB629ee8-EZzq9LZz9HkRjlloeWwWFyvgJx8G9KT_PBdXNgxcEc7IhcS6vqnUGXHb4trHS9rSMk0ZZIwHz3ykO19B6U1BZWNGswm31wdGIlSetfXlTEv6TZr2Xe4vR7uCWNpvZc0ocd_5I9bAGbd8GAgTM_3M94QfrNlfKov-_Uai-Pvfhn-0j-Fr3Q/s256/Anti-Twister.gif" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="256" data-original-width="256" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHB629ee8-EZzq9LZz9HkRjlloeWwWFyvgJx8G9KT_PBdXNgxcEc7IhcS6vqnUGXHb4trHS9rSMk0ZZIwHz3ykO19B6U1BZWNGswm31wdGIlSetfXlTEv6TZr2Xe4vR7uCWNpvZc0ocd_5I9bAGbd8GAgTM_3M94QfrNlfKov-_Uai-Pvfhn-0j-Fr3Q/s1600/Anti-Twister.gif" width="256" /></a></div><div>we can think of this at its limit as the whole continuous 3D space rotating in a manner that avoids overlap. <br /><div><br /></div><div>The method is simpler than it looks. Each frame is calculated independently: it starts with a set of radial belts (or the red band in this video), then rotates them by around the blue axis as shown. i.e. from 0 at the outer radius, up to 180 degrees in the centre.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="266" src="https://www.youtube.com/embed/zAvaCPmgdf0" width="320" youtube-src-id="zAvaCPmgdf0"></iframe></div><br /><div>That becomes the state of your radial belts for that frame. For the next frame the blue axis is at a new orientation in the horizontal plane, as shown.</div><div><br /></div><div><br /><div>If you look carefully at the first video, you might see that the central object rotates twice before the belts (the 3D space) returns to its start position. The same is true for quaternions, orientations are represented as a (w,x,y,z) quantity, which only returns to the same value after rotating 720 degrees. </div><div><b><br /></b></div><div><b>So is there a connection between anti-twisters and quaternions?</b></div><div><div><br /></div><div>Looking at the first video, the overall motion is simply an extended version of the motion of the two vertical belts, which look like this:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmVnGQSkUU8j7ukdRxpwvUWTluqEWrbo2-y-SH5JyMK865eC_V8xiRBri7_gIRF1h1Khz2KJuzUQsBVLce2QDGBBLVtwG3OnOZmb2nAprKPDp0BiZ62XAwUPJinM11IYq5gHcNJ2Av8dxm0BsJGd2bUF_IYH8lFecyER05SMpfFKC6Db3hOpM2yyVRQA/s1440/spin1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1440" data-original-width="964" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmVnGQSkUU8j7ukdRxpwvUWTluqEWrbo2-y-SH5JyMK865eC_V8xiRBri7_gIRF1h1Khz2KJuzUQsBVLce2QDGBBLVtwG3OnOZmb2nAprKPDp0BiZ62XAwUPJinM11IYq5gHcNJ2Av8dxm0BsJGd2bUF_IYH8lFecyER05SMpfFKC6Db3hOpM2yyVRQA/s320/spin1.png" width="214" /></a></div><br /><div>These two '?' shaped belts rotate around the vertical axis, and also rotate around their own axis by the same (but opposite) angle. The box ends up spinning twice the angle of either individual rotation.</div><div><br /></div><div>If we look at just the top belt, and distort it slightly then we can draw it as two of the same belt shapes, just different sizes. Here in red and green:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieINMfbdykHrfgzCmaRIYSH0Gn7hpluUJ8qFVG70Ebk3PqyWlkXZI5fALydbLM2p_KJHSRqIEcCmNW9FoMiqppKBhvVrrI9j3mlN2ol8uMKFFvDmomdf25qUQ42VZhu-teu2F6OZyG3tdmLLMfViaKzo7_HVhCNQU2dV1O6VZlInYe-olE8o6TGKXAMg/s1052/spin2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1052" data-original-width="707" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieINMfbdykHrfgzCmaRIYSH0Gn7hpluUJ8qFVG70Ebk3PqyWlkXZI5fALydbLM2p_KJHSRqIEcCmNW9FoMiqppKBhvVrrI9j3mlN2ol8uMKFFvDmomdf25qUQ42VZhu-teu2F6OZyG3tdmLLMfViaKzo7_HVhCNQU2dV1O6VZlInYe-olE8o6TGKXAMg/s320/spin2.png" width="215" /></a></div><div class="separator" style="clear: both; text-align: left;">From the top to the bottom, the red belt rotates around the vertical axis by angle A, and around its own axis by angle -A. The green belt rotates around the vertical axis by angle A and around its own axis by angle A. The combined motion rotates the inner cube the angle 2A around the vertical axis.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Unit quaternions also rotate around two independent axes by equal angles. We could describe it in 4D but it is easier to visualise in 3D by taking the stereographic projection of the quaternion space around the w axis. In this projection the two axes of rotation are the two axes of a torus, so around the torus and around its ring (a non-straight axis). Let's make the torus's axis of symmetry vertical here, to match the anti-twister example.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">A quaternion rotation of a vector v is first a right multiply vq' (the conjugate of q) which rotates the vector around the vertical axis by angle A and around its ring by angle -A:</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDMVsTIW5mmNfsL22a5t4Vs_ugafaSVn32OyRnAwsiGxOdbY0iyH1lBknAmYGIHF-wIhtDFo3-kpUtytaNCjF8ShawafleP0RxjxpBMgXkbIgkdkVDc7bu0ANYj2Br1budcWZoH2Rg7krJE_YFcLaS6Cx693shYXT2caj8ZUxIobxfnvFa6CYRrM46XA/s1024/clifford.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="869" data-original-width="1024" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDMVsTIW5mmNfsL22a5t4Vs_ugafaSVn32OyRnAwsiGxOdbY0iyH1lBknAmYGIHF-wIhtDFo3-kpUtytaNCjF8ShawafleP0RxjxpBMgXkbIgkdkVDc7bu0ANYj2Br1budcWZoH2Rg7krJE_YFcLaS6Cx693shYXT2caj8ZUxIobxfnvFa6CYRrM46XA/s320/clifford.jpg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: left;">Then a left multiply qv rotates around the vertical axis by angle A and around its ring by angle A. The result qvq' rotates an angle of 2A around the vertical axis.</div><br /><div>So as you can see, there is some similarity between a single quaternion multiplication and the transformation applied by the green or red belt in the anti-twister motion. </div></div></div></div><div><br /></div><div>They aren't exactly the same, but it would be tempting to say that a quaternion is a representation of half the anti-twister mechanism, and quaternion multiplication qvq' is a representation of the whole anti-twister mechanism, which itself is just a way of describing the interval of 3D space between the inner and outer radius, a bijection from R3 to R3 (it wouldn't be a bijection if the belts ever overlapped).</div><div><br /></div><div>HOWEVER, there is one problem with this identification of quaternions and anti-twisters. The anti-twister maintains a state, which is the yaw of the blue axis in the third video. The central object turns according to where the blue axis orients to, but the blue axis can only change in two dimensions, it has no effect if it twists (rotates about its own length). If you jump the blue axis to a different angle in order to modify the central rotation in any of its three possible degrees of freedom, then the belts still wouldn't tangle, but they could (probably) get an unlimited amount of stretch. </div><div><br /></div><div>I am not sure to what extent this is a problem with the identification. It may be that it is better to identify the quaternion with the superposition of belt configurations for all possible blue-axis orientations, or something like that. </div><div><br /></div><div>Some more details are given <a href="https://www.overleaf.com/read/ptdntqjnvkxr">here</a>.</div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-32484633620366507562022-06-27T21:22:00.003-07:002022-06-27T22:14:10.284-07:008 types of shape<p>A random thought from the other day is that shapes can be categorised by the presence or not of faces, edges and corners. That's a 3D table so I'll fill it in as two 2x2 tables:</p><h2 style="text-align: left;"><b>faces:</b></h2><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><table>
<tbody><tr>
<th><br /></th>
<th>Edges</th>
<th>No edges</th>
</tr>
<tr>
<td><b>Corners</b></td>
<td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSEb8dRFF_E-yPxAv_3o2qk4AqISP2K1aiB3ThEnPRNmKBq-lLILVeYRDN80v2T5hpIk6Lp892WKm4PH6-Ys8l3OCRKlik6b2L3LjliCrC2b3MlRfhgksxRjP24hAWdG_QGgy_ZnV5gQI8Yc-QeIYIAvKne2wksDkwvrrCLefI6igR_LaJZUdKXNp1Ew/s1024/cube.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1024" data-original-width="1024" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSEb8dRFF_E-yPxAv_3o2qk4AqISP2K1aiB3ThEnPRNmKBq-lLILVeYRDN80v2T5hpIk6Lp892WKm4PH6-Ys8l3OCRKlik6b2L3LjliCrC2b3MlRfhgksxRjP24hAWdG_QGgy_ZnV5gQI8Yc-QeIYIAvKne2wksDkwvrrCLefI6igR_LaJZUdKXNp1Ew/w187-h187/cube.jpg" width="187" /></a></td>
<td style="text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjds4W5CuI1tPLV6EBq0XncXkcxbo1WMcH7w1UzjAbxzdTj89C1JWuUYshCmgmgZeP3XpUbKtDJ-oYW4-e3G-c36ipuOhJ1lusorM7gypPG2tp33Z3SsVRo0kfNetHrXR3iTehhzIe9PYr8HfqaWFciFO5GeMdaSpMq3KDN8Q1Lo0oq6v4TpsTCf-Pl0w/s254/drop.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="254" data-original-width="198" height="177" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjds4W5CuI1tPLV6EBq0XncXkcxbo1WMcH7w1UzjAbxzdTj89C1JWuUYshCmgmgZeP3XpUbKtDJ-oYW4-e3G-c36ipuOhJ1lusorM7gypPG2tp33Z3SsVRo0kfNetHrXR3iTehhzIe9PYr8HfqaWFciFO5GeMdaSpMq3KDN8Q1Lo0oq6v4TpsTCf-Pl0w/w138-h177/drop.jpeg" width="138" /></a></div></td>
</tr>
<tr>
<td><b>No corners</b></td><td style="text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjwG3sKacQPA48TM1z6_ms1LC4W--eI0Djh9mcUWmwahxc8H1q3A_REBLdhE5xZbnC7Gqo5wYFXf-7DJm9DdrEPOpTZ9S58M54TNLHwWakVR2ju_-XzfmgnGig1YwWegsX1y125AMrfTo-BhjbDh9uZUwCDpS6Rg_ynLfVL-VIdMCOxtGem8yXpzIvcg/s225/apoll.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="225" data-original-width="225" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjwG3sKacQPA48TM1z6_ms1LC4W--eI0Djh9mcUWmwahxc8H1q3A_REBLdhE5xZbnC7Gqo5wYFXf-7DJm9DdrEPOpTZ9S58M54TNLHwWakVR2ju_-XzfmgnGig1YwWegsX1y125AMrfTo-BhjbDh9uZUwCDpS6Rg_ynLfVL-VIdMCOxtGem8yXpzIvcg/w174-h174/apoll.jpeg" width="174" /></a></div><br /></td>
<td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvg1jhVI-PkFtF_cQYlq0_cPzNfVDVwbMq8aF0iTKSoLjFPAE-c45jgE0LpEWS-hGAVBvEtTzLEzq2U6TXJm-swPz3qdoXN7YZhGRjmjBiXX83Dnx4Pn_-_l4_2kb66cCAZ7oKg0Xw3jxo_0WOFIQzKqr8NI9K8M-IzhyyZA-XROKaY7kQ9M6vUFtFgw/s875/anti4%20(1).jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="751" data-original-width="875" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvg1jhVI-PkFtF_cQYlq0_cPzNfVDVwbMq8aF0iTKSoLjFPAE-c45jgE0LpEWS-hGAVBvEtTzLEzq2U6TXJm-swPz3qdoXN7YZhGRjmjBiXX83Dnx4Pn_-_l4_2kb66cCAZ7oKg0Xw3jxo_0WOFIQzKqr8NI9K8M-IzhyyZA-XROKaY7kQ9M6vUFtFgw/w197-h169/anti4%20(1).jpg" width="197" /></a></td>
</tr>
</tbody></table>
<br /><h2 style="text-align: left;"><b>no faces:</b></h2><div><b><br /></b><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><table>
<tbody><tr>
<th><br /></th>
<th>Edges</th>
<th>No edges</th>
</tr>
<tr>
<td><b>Corners</b></td>
<td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4UnlhfQYokJFYGpVgBoYekwkAKKk4P55pIm6JBhh1YOY1Xen22XOPSiK50MvfAfisfgbMalPitYlT7FC4lp_B1yjsIP5zd5T_IHJxUxZgK3bjdKrt0-TGwhEHNaOLfCESm35TAnUXurjkRlZDZRP6sVMDD-TFBebLUqn7EuENwJ-Wy-tZM89YiDQGiA/s247/surface.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="233" data-original-width="247" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4UnlhfQYokJFYGpVgBoYekwkAKKk4P55pIm6JBhh1YOY1Xen22XOPSiK50MvfAfisfgbMalPitYlT7FC4lp_B1yjsIP5zd5T_IHJxUxZgK3bjdKrt0-TGwhEHNaOLfCESm35TAnUXurjkRlZDZRP6sVMDD-TFBebLUqn7EuENwJ-Wy-tZM89YiDQGiA/w187-h176/surface.png" width="187" /></a></td>
<td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKAJuyjgyOf70Qu8G3mbjKAns5JNSvkZGSUHxWttf2QUSsWiyxD-e2Sw-MJ81uMV5wMb1fGLfvRwXuCl28S0X7IYGev9rO2bKT8Jfhgx953vG31FmOZUq4gKphuoNqbSUny8B5IAX54cL6vcHi_OPNu4HfK-52D3oTkawhyooyjfeWv4mn9EfM3cm-wQ/s320/cone6.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="242" data-original-width="320" height="139" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKAJuyjgyOf70Qu8G3mbjKAns5JNSvkZGSUHxWttf2QUSsWiyxD-e2Sw-MJ81uMV5wMb1fGLfvRwXuCl28S0X7IYGev9rO2bKT8Jfhgx953vG31FmOZUq4gKphuoNqbSUny8B5IAX54cL6vcHi_OPNu4HfK-52D3oTkawhyooyjfeWv4mn9EfM3cm-wQ/w184-h139/cone6.png" width="184" /></a></td>
</tr>
<tr>
<td><b>No corners</b></td><td> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW5RkPMTY0B1HeH4V0FJ9Hsh5BgR4xiWvpKDJ_uVKqph_Orzkjdc89qXx2huz3SzhDN5JTlDGOa6ZWRDiKH0DY_NwYauI8YXvJ9zdkYsZma-CTvIUDwoYaLzB2AwnFY1RDFIVSnA2uWweJoAD_5kK5-85hlGlFiR7YG3qU-s7pIQjNI-l7riJdHnlWCw/s647/thing.jpeg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="647" data-original-width="602" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW5RkPMTY0B1HeH4V0FJ9Hsh5BgR4xiWvpKDJ_uVKqph_Orzkjdc89qXx2huz3SzhDN5JTlDGOa6ZWRDiKH0DY_NwYauI8YXvJ9zdkYsZma-CTvIUDwoYaLzB2AwnFY1RDFIVSnA2uWweJoAD_5kK5-85hlGlFiR7YG3qU-s7pIQjNI-l7riJdHnlWCw/w180-h193/thing.jpeg" width="180" /></a></td>
<td style="text-align: center;">.</td>
</tr>
</tbody></table><br />
</div><div>For the object with no faces but edges and corners, you can see the corners as protrusions on the top side, and the edges when viewed on the bottom side.</div><div><br /></div><div>The spikey object (bottom left) with only appears to have corners because I have cropped it to finite size, but the basic structure is unbounded and all those corners connect to another to make continued curved edges.</div><div><br /></div><div>The object with no faces, corners or edges is probably just a point, or just nothing.</div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-90403948130119456222022-06-21T00:52:00.011-07:002022-06-25T21:42:01.406-07:00Many-valued Polynomials<p>Multi-valued algebra promises to help with multi-valued problems such as: if x^2=1 and y = 2x then what is x+y? They aren't super popular as it is hard to make them into them into something consistent like a proper mathematical field. But never mind hey.</p><p>Let's define a multi-valued algebra as one where each element is a closed set of complex numbers, let's call the set of such closed sets <b>M</b>. Equality is set equality, summation is the Minkowski sum, and subtraction is the inverse of the Minkowski sum (which doesn't always have a solution).</p><p>Let's use capital letters for members of the multi-valued algebra, and lower case letters for single complex numbers.</p><p>In this system a 'complex linear multi-valued polynomial' means the complex-valued function:</p><p>y = aX + b</p><p>Which only occurs when X has a single element, so not very interesting.</p><p>a 'complex quadratic multi-valued polynomial' is: </p><p>y = aX^2 + bX + c</p><p>which for the specific case a=1, b=-1, c=0, can be written as:</p><p>X = X^2 + y</p><p>which is reminiscent of the Julia set iteration for each y. </p><p>Indeed the value of X is indeed a Julia set of that complex number, as it is the largest closed set that satisfies the equation. It also remains a Julia set when a,b,c are different values, just with a Euclidean transform applied.</p><p>So the function <b>M</b>-><b>C</b> is defined for Julia sets, and each Julia set is the <i>preimage</i> of its corresponding parameter y.</p><p>If we 'expand out' the domain into its individual complex elements then the function becomes a many-to-many map m(z): <b>C</b>-><b>C</b>, and m(0) is the Mandelbrot set. So the Mandelbrot set is the <i>image</i> of the number zero under this mapping. More generally m(x) are the generalised Mandelbrot sets that start at point x. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFB-PRh6nMDoznUG1K4fnN0qolQc0HTDm7s265Y0wyACNOpMbAWmJhKTKbA9aKAU5a8ML1KLPdzBNJRWB98-eCk3qGHx-LExHq4JAs_wvJsa2gUAwU6ag2h2UG0CrTmfOkEqDJpnmKU87DDcwVLrL7ypgG51yOY-OR-Z1GqC47D7IG_qJwIXTivzJAtA/s1655/mand0.3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="689" data-original-width="1655" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFB-PRh6nMDoznUG1K4fnN0qolQc0HTDm7s265Y0wyACNOpMbAWmJhKTKbA9aKAU5a8ML1KLPdzBNJRWB98-eCk3qGHx-LExHq4JAs_wvJsa2gUAwU6ag2h2UG0CrTmfOkEqDJpnmKU87DDcwVLrL7ypgG51yOY-OR-Z1GqC47D7IG_qJwIXTivzJAtA/w640-h266/mand0.3.png" width="640" /></a></div><div style="text-align: center;">Above: m(0.3i) and m(0.3-0.3i), these are variants of the Mandelbrot set.</div><p><br /></p><p>We could approximate this idea by saying that the quadratic polynomial's "multivalue-range" is the generalised Mandelbrot sets, and its domain is the Julia sets.</p><p>While we have done a lot of hand waving here, the interesting result is that Julia sets and Mandelbrot sets are fundamental elements of multi-valued quadratics. Fixed y cross section is a Julia set and the fixed z cross section is a Mandelbrot set. </p><p>I haven't explored higher order polynomials, but it seems probably that these produce higher order Julia sets and the higher order 'multibrots', and perhaps linear combinations of these at each order.</p><p><br /></p><p>This is a nice idea as it suggests that Julia and Mandelbrot/Multibrot sets are the fundamental elements of this multi-valued algebra. If we make the leap that standard algebra is missing something in its inability to answer questions such as the initial one, then we may even consider Julia and Multibrot sets to be fundamental quantities more widely in algebra.</p><p>To add to this, the Multibrot sets are universal objects, which loosely means that you will find them in bifurcating mappings. </p><p><br /></p><p>The mapping m() can also be seen as a four dimensional shape. In this shape the Julia sets are the horizontal cross-sections, and the generalised Mandelbrot sets are the orthogonal cross-sections. It would be interesting to see what diagonal cross-sections look like.</p><span><a name='more'></a></span><p>An additional interesting link is between the Mandelbrot set and <b>2</b>. I mean <b>2</b> in probably the most general sense as the fixed point of x^2-x. Just as <b>1</b> (or identity) is the fixed point of x^2 and <b>0</b> is the fixed point of 2x. These identities define <b>0</b> and <b>1</b> on other fields than just real numbers.</p><p>For many-valued quantities that would be the fixed point of X^2-X, which is X^2-X=X, which is probably the disk of radius 2. However, a slightly altered definition finds the set of complex values x such that X^2-X=x. This is the set of Julia set parameters that are in their own Julia set. This is the negative Mandelbrot set, a set that includes the number 2 in fact.</p>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-60119407334357993292022-06-15T05:00:00.002-07:002022-06-15T20:54:41.797-07:00Disk Cluster<p> Here is a nice example of a cluster.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4e78ygMQ4Z2spqKuhjJ_jQn_2pQBOg9ydMMqS9uYwHINSXXSodR5FN188BLLa6LeOp8i4nDnpRHs3cFz0Nk5gCyx3-mz3WjXCDGdia2_u-I20tl9Si53Z16xgP1FkwmOChA8NSnweJdw1uQzAzR28zkB0jmy5-KDBtJkjzwD1fkBaHJa1EZPHHl5A_A/s2048/disk_cluster.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="2048" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4e78ygMQ4Z2spqKuhjJ_jQn_2pQBOg9ydMMqS9uYwHINSXXSodR5FN188BLLa6LeOp8i4nDnpRHs3cFz0Nk5gCyx3-mz3WjXCDGdia2_u-I20tl9Si53Z16xgP1FkwmOChA8NSnweJdw1uQzAzR28zkB0jmy5-KDBtJkjzwD1fkBaHJa1EZPHHl5A_A/w640-h640/disk_cluster.png" width="640" /></a></div><br /><p>A cluster is a recursive set of separated solids. It isn't too hard to make an example of one using squares, but harder with disks. In this case I wanted an example with no smooth (differentiable) surface, just as the Koch curve and other fractals have no smooth parts to them. </p><p>It is a little hard to see in the image above, but you couldn't 'land' on any of these disks as there are increasingly small disks towards the surface. </p><p>My first attempt was quite interesting because it contains a Koch snowflake within it (can you see it?):</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWZWjh4rCScUrb1eQbHLty_p27bUcI8uS-QhJ3mDllFZC6WMjrpazvA2c4mst8eg4kz4lmrKBGVWoouDA4U8l86B-NIhiNKGcYbJQco5g3dgHRlWnJ8v2eYISF_VZZBZv5EZ05ub6frCrElOHEx4Aql47I5EPUmWjPfQfPDkgdez7WHK1_3qokOPEadg/s1024/disk_cluster1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1024" data-original-width="1024" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWZWjh4rCScUrb1eQbHLty_p27bUcI8uS-QhJ3mDllFZC6WMjrpazvA2c4mst8eg4kz4lmrKBGVWoouDA4U8l86B-NIhiNKGcYbJQco5g3dgHRlWnJ8v2eYISF_VZZBZv5EZ05ub6frCrElOHEx4Aql47I5EPUmWjPfQfPDkgdez7WHK1_3qokOPEadg/w400-h400/disk_cluster1.png" width="400" /></a></div>But the relative structure between clusters changes as you go inwards towards the centre, it also means that the outer shape almost definitely self-connects so isn't a cluster at all. <div><br /></div><div>The top image however applies Mobius transformations to each cluster so that the gap between clusters remains similar all the way down. Everywhere is disconnected, and it also gives it nice point corners.</div><div><br /></div><div>A less spikey cluster can be achieved by rotating the shape each iteration:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5gz-r7_tm85N_vlIL4XOVLkm6G6V0JBSrTZwvQ-ptgynklyeje7g2lu9T49NhQyFiMr3BcaT-JMbRITGQNaCkzyTySfVZoyih3eevi1vt6WjPpD3fEIbzORbBBRNTFZNxXUyobmdaErcHVh0MHAMEFLKcDmVT5wc1BLxnnc7cNqdS_B6XKyg4iIPlDA/s2048/disk_cluster_round2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="2048" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5gz-r7_tm85N_vlIL4XOVLkm6G6V0JBSrTZwvQ-ptgynklyeje7g2lu9T49NhQyFiMr3BcaT-JMbRITGQNaCkzyTySfVZoyih3eevi1vt6WjPpD3fEIbzORbBBRNTFZNxXUyobmdaErcHVh0MHAMEFLKcDmVT5wc1BLxnnc7cNqdS_B6XKyg4iIPlDA/w640-h640/disk_cluster_round2.png" width="640" /></a></div><br /><div><br /></div><div><p><br /></p></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-42931846931891645702022-02-19T23:46:00.008-08:002023-04-07T19:36:21.631-07:00Mean Brownian Paths<p></p><div class="separator" style="clear: both; text-align: center;"><br /></div><br />Brownian motion is a pure random process and produces paths that are each and very squiggly. In fact so squiggly that their fractal dimension is 2. <p></p><p>But what about the shape of the path on average?</p><p>For any particular section of a random (Brownian) path, we can perform a least squares alignment of every such path and draw the mean path shape:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjSd5ezhJlhgP5sbDncxaafo0vo4_D7gkXwVzeZDkTkjRr9usCeyWBHmFJ61y8TATNr3JipW7CnR_MPxvQeDCxMS8RgiRDfgNc7Za3_geggyH5UHzvxCml9iwmFOhREi6rOzDYktiG62ZSU-7x-X71xL0n3KukDenpq6O5QxkaCw9Gr9w-UEyhGUtICWg=s519" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="519" data-original-width="448" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEjSd5ezhJlhgP5sbDncxaafo0vo4_D7gkXwVzeZDkTkjRr9usCeyWBHmFJ61y8TATNr3JipW7CnR_MPxvQeDCxMS8RgiRDfgNc7Za3_geggyH5UHzvxCml9iwmFOhREi6rOzDYktiG62ZSU-7x-X71xL0n3KukDenpq6O5QxkaCw9Gr9w-UEyhGUtICWg=s320" width="276" /></a></div><p>It is straight because there are as many trajectories that bend anticlockwise as those that bend clockwise. But we are interested in paths rather than trajectories, and the time direction doesn't matter with paths. So here we find the closest Euclidean alignments for either time direction:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg_QSdxCdr3nLjcskrNLNbL8iqHhe91Wimy-JjyMtzLVwssQIpCensKeiiqHOD3BNJTxCD1r2c3NC7daqpYCDbabsaHGZkXCxi6xYQ39UMQgGmTgRHvYG1a5Qt7q8oBu3OZlUWdm8Xdgv18JvrUhdQtMfgnhyx8-c3z9Ry9OfJSvHgvQsW0E_rvSeiYiQ=s662" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="662" data-original-width="454" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEg_QSdxCdr3nLjcskrNLNbL8iqHhe91Wimy-JjyMtzLVwssQIpCensKeiiqHOD3BNJTxCD1r2c3NC7daqpYCDbabsaHGZkXCxi6xYQ39UMQgGmTgRHvYG1a5Qt7q8oBu3OZlUWdm8Xdgv18JvrUhdQtMfgnhyx8-c3z9Ry9OfJSvHgvQsW0E_rvSeiYiQ=s320" width="219" /></a></div>It is (I very much suspect) a circular arc. The angle of rotation of this arc would be an interesting constant to discover, it seems to be 1 radian, but that is a rough guess. The bulge is about 0.152 of the arc length, which is interesting because that is exceedingly close to the proposed solution to Moser's worm problem, which is an arc displaced 0.1528 at the centre (<a href="https://doi.org/10.1007%2Fs00454-002-0774-3">An Improved Upper Bound for Leo Moser’s Worm Problem</a>). Moser's worm problem is to find the minimum area shape to accomodate unit length curves, the above curve is the mean unit length curve, because Brownian motion over a unit length is statistically the set of all unit length curves with no bias. So it is interesting that the minimal area shape is potentially a reflected pair of these mean curves:<div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieRef0Ncf_T44E9saFFU6YanxCQ1Bi_DgEly8DkvVcykRD7hdXi-5A0dNrIS025dd2twfmt_XWOcU7q_CeHTYGCcRwgp9xWCJkMbs4xqfJzJ7kLcBXPqnisSygKbB4QsDRLlXIaopAhrZ6GnvXP05_yOl1tW5F03qLH64K_mBMyQneGP0BYu5XkbwtwQ/s556/mosers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="225" data-original-width="556" height="129" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieRef0Ncf_T44E9saFFU6YanxCQ1Bi_DgEly8DkvVcykRD7hdXi-5A0dNrIS025dd2twfmt_XWOcU7q_CeHTYGCcRwgp9xWCJkMbs4xqfJzJ7kLcBXPqnisSygKbB4QsDRLlXIaopAhrZ6GnvXP05_yOl1tW5F03qLH64K_mBMyQneGP0BYu5XkbwtwQ/s320/mosers.png" width="320" /></a></div><span style="font-size: x-small;"><div style="text-align: center;">potential minimum area solution to Moser's worm problem. Bounded by two similar arcs to the mean Brownian path.</div></span><div><br /><div>The mean curve has bilateral symmetry because we don't allow mirroring in our equivalence class of path shapes. If we do allow mirroring we get:</div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEheBEMOB2FjKvVUbbIxgOBqSCtEiWgTAIoPMUXazu7U5RohHfup1IlCi3ZQqitiKl5yHI63m2KU1wSgghr6PXcTXcqvNbXMsCT0EirS3PnE7HYSASV8jo-CCdzz2_Fdf5hN2m0NpcbcpQOKZecMq3i4DPAJuTajOH9Hu2kJDcm0tjUHFGjtJfFi16CKxw=s654" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="654" data-original-width="397" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEheBEMOB2FjKvVUbbIxgOBqSCtEiWgTAIoPMUXazu7U5RohHfup1IlCi3ZQqitiKl5yHI63m2KU1wSgghr6PXcTXcqvNbXMsCT0EirS3PnE7HYSASV8jo-CCdzz2_Fdf5hN2m0NpcbcpQOKZecMq3i4DPAJuTajOH9Hu2kJDcm0tjUHFGjtJfFi16CKxw=w194-h320" width="194" /></a><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgKdLJ1uf2Bh1hwkRB_qrapjCPd_qSCYwHqa7AsVqCvRsPIlBU2QWDFiMwEyAvJxdYr4WP2OtT7FFZUB9fBPusHmOEtU0GSeM376xjX_tgl-GC3c99cUZAwmhqc-AoGZI0SivhfkyjdOQaq5Ru1_4bKEebn8P9suzGVa_mMM-QSSzjp3Z1NWPW306mJXw=s656" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="432" data-original-width="656" height="211" src="https://blogger.googleusercontent.com/img/a/AVvXsEgKdLJ1uf2Bh1hwkRB_qrapjCPd_qSCYwHqa7AsVqCvRsPIlBU2QWDFiMwEyAvJxdYr4WP2OtT7FFZUB9fBPusHmOEtU0GSeM376xjX_tgl-GC3c99cUZAwmhqc-AoGZI0SivhfkyjdOQaq5Ru1_4bKEebn8P9suzGVa_mMM-QSSzjp3Z1NWPW306mJXw=w320-h211" width="320" /></a></div><br /><div>The two images were for a different number of vertices and different random values, to show that the shape is consistent. This is an average path if you allow flipping, so its mirror image is the other equivalent average path.</div><div><br /></div><div>You might be wondering what would happen if you don't allow time symmetry but you do allow mirror symmetry. The result appears to be exactly the same as just time symmetry and no mirror symmetry. This makes sense to me. </div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>Brownian motion in 2D inevitably crosses over itself to form a loop. If we look at just these loops when we get a similar set of results. If time symmetry is disabled then the average circuit is a straight line back-and-forth motion:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhStPfagKXqWVHbdHl-kAnghc3dBmrL0d8RLiAdSl0K_12g6OUYn5yPfic7WIslv2ZImUGT9cQZRFaxKDEJjNK7mV4pHWzgIn0W3KmQgEFCkPuB7YSkNOsvqXSqmMHo3CAVLHw21AAJ_OO0kkiAA3vWfvrTW4gPctWzG45d9__a__NjUEw0U6Hge6_iDg=s519" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="519" data-original-width="448" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEhStPfagKXqWVHbdHl-kAnghc3dBmrL0d8RLiAdSl0K_12g6OUYn5yPfic7WIslv2ZImUGT9cQZRFaxKDEJjNK7mV4pHWzgIn0W3KmQgEFCkPuB7YSkNOsvqXSqmMHo3CAVLHw21AAJ_OO0kkiAA3vWfvrTW4gPctWzG45d9__a__NjUEw0U6Hge6_iDg=s320" width="276" /></a></div><div>If it is enabled then we get a bilaterally symmetric shape:</div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEioUbUCporNIsPGdzQffMqT3hIVoY2AZ2TI94CZwIJawFQKjG1w2Px8O-6mxFbp2zFmDwIH28vqN21r0cIMXX7gqmeZWBw2mfosHfsStZKo9IHRdlRqyImgYJ8tJrcr0RI-WMHSq_AAbLYpclMj7dVcFi3GlOTwu3PbWMwJZsXkqACiJchzqtIPABabRw=s703" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="350" data-original-width="703" height="159" src="https://blogger.googleusercontent.com/img/a/AVvXsEioUbUCporNIsPGdzQffMqT3hIVoY2AZ2TI94CZwIJawFQKjG1w2Px8O-6mxFbp2zFmDwIH28vqN21r0cIMXX7gqmeZWBw2mfosHfsStZKo9IHRdlRqyImgYJ8tJrcr0RI-WMHSq_AAbLYpclMj7dVcFi3GlOTwu3PbWMwJZsXkqACiJchzqtIPABabRw=s320" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;">Here are the points (separate run):</div><a href="https://blogger.googleusercontent.com/img/a/AVvXsEi0lCvyxSB0HYPM9x7-ZIRRd1xXK_IKhSR6eIiBx_ki-KLADl-wcaL6AtTq0NUDiOkkcd0F2IH2tdQEzx3b0CKFU3mScjBs3ZZvTkmK3xgZS2xsqZHOgss-b-YCj0kF1V5pmMKH59bU6q2QVCUq5xhD7IH3edp2WKYGNKvOoKQVsQTDuNdecxMuDjjz7A=s1547" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="604" data-original-width="1547" height="125" src="https://blogger.googleusercontent.com/img/a/AVvXsEi0lCvyxSB0HYPM9x7-ZIRRd1xXK_IKhSR6eIiBx_ki-KLADl-wcaL6AtTq0NUDiOkkcd0F2IH2tdQEzx3b0CKFU3mScjBs3ZZvTkmK3xgZS2xsqZHOgss-b-YCj0kF1V5pmMKH59bU6q2QVCUq5xhD7IH3edp2WKYGNKvOoKQVsQTDuNdecxMuDjjz7A=s320" width="320" /></a><br /><br /></div><div>and if we allow mirroring in our equivalence class then we get this funny shape:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj4sgw5ur3G0QlAx4vCWFYfYIuBokhV5D1_s0WDdwplW068Ko54_xLLN6Ou7AaOx7WnTO09FtFqrQGtx5moUXDXMKaZsHx2gXkgpI1r7YwgCGDgWOrfaLMyNMsV9C_PWvjBxd2nD-lcXCfFKpqwmU0ohvC9s3valJ7IMFopWWGp_ECkLFQSiH9ysTOeAw=s396" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="354" data-original-width="396" height="286" src="https://blogger.googleusercontent.com/img/a/AVvXsEj4sgw5ur3G0QlAx4vCWFYfYIuBokhV5D1_s0WDdwplW068Ko54_xLLN6Ou7AaOx7WnTO09FtFqrQGtx5moUXDXMKaZsHx2gXkgpI1r7YwgCGDgWOrfaLMyNMsV9C_PWvjBxd2nD-lcXCfFKpqwmU0ohvC9s3valJ7IMFopWWGp_ECkLFQSiH9ysTOeAw=s320" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;">and its reflection (separate run):</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhiiPI29gfj12Qkexdo585MyZJBi1SPK6qWCVeEhejMtMpk8TaQJkfeXrbLMb2XivKbKJcf6CgWHGzQFOJl_1bpDhfn3RaaAyRjrzVrZJI3jr1qLqj_zcdTHGwiMOrPMJ_GyzVxSt8eEfbAAzeB7iCUbLUrJdTgkZEecpr-abXsg72Ucx0-yQKFGTl1GQ=s719" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="366" data-original-width="719" height="163" src="https://blogger.googleusercontent.com/img/a/AVvXsEhiiPI29gfj12Qkexdo585MyZJBi1SPK6qWCVeEhejMtMpk8TaQJkfeXrbLMb2XivKbKJcf6CgWHGzQFOJl_1bpDhfn3RaaAyRjrzVrZJI3jr1qLqj_zcdTHGwiMOrPMJ_GyzVxSt8eEfbAAzeB7iCUbLUrJdTgkZEecpr-abXsg72Ucx0-yQKFGTl1GQ=s320" width="320" /></a></div><div>We generate these loops because each axis in 2D is performing Brownian motion, which we can model at large scale as a normally distributed offset between each point in turn. In order to get a loop we need each axis to return to the original value, which is called a Brownian bridge. Rather than running a million times until it happens to return to the same value, we simply subtract the linear function from start to finish, which is proven to be equivalent. </div><div><p><br /></p><p>So there we go. Since Brownian motion is a purely random process, these shapes are sure quite relevant as the bulk shape traced by random paths and random loops. We might even think of them as archetypal paths and loops, as they don't seem to contain any prior information, just randomness.</p><p>Since there is no prior information in the formulation, the shapes are pretty much definied by the equivalence class used. If you know what your symmetries are when declaring two shapes to be the same, then this dictates what the shape will look like; the result is a function of your interpretation of what a shape is. </p></div></div></div></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-51126717176368409532021-08-25T03:55:00.007-07:002021-09-04T17:53:20.563-07:00Between a tetrahedron and a sphere<p>What's in between a tetrahedron and a sphere? You could smooth the tetrahedron partially but this no longer has any flat sides, or you could go to higher solids like an octahedron then an icosahedron, but these still have sharp edges, unlike a sphere.</p><p>A polyhedron has C0 continuity and a sphere has Cinfinity continuity. It makes sense that an intermediate could have C1 continuity, which is what this shape has:</p><p>We start with a tetrahedron:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUig5fhf_mrfwSdenAR7pgGa6IkP9Ju6shuS4ipp4fnPT3PAVBe6GWluWvleVFj6ZIz8v-OfOjL5NNNi9dn6mo4s80RiQcpVUdAE0ILLwwbiCqalAIFHFQjOVwfcR7z7ya6N_Z9J7fVdf1/s667/shapei0.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="588" data-original-width="667" height="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUig5fhf_mrfwSdenAR7pgGa6IkP9Ju6shuS4ipp4fnPT3PAVBe6GWluWvleVFj6ZIz8v-OfOjL5NNNi9dn6mo4s80RiQcpVUdAE0ILLwwbiCqalAIFHFQjOVwfcR7z7ya6N_Z9J7fVdf1/s320/shapei0.png" width="320" /></a></div>then slice off the corners and the edges:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitbQXaKIG7-8kCC1YlPHt3P9Vfq4TG-uKuCFdeunXnN0bXhMcX8A0B3mELoxrQKFKE0RNSKw0rQfWK-bf-DnBxBZEkWR9VbwL4diS2X2pLiXlnlNuCUHK09a3Wt3nN1qnR52JZIlg7ftt_/s690/shapei1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="638" data-original-width="690" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitbQXaKIG7-8kCC1YlPHt3P9Vfq4TG-uKuCFdeunXnN0bXhMcX8A0B3mELoxrQKFKE0RNSKw0rQfWK-bf-DnBxBZEkWR9VbwL4diS2X2pLiXlnlNuCUHK09a3Wt3nN1qnR52JZIlg7ftt_/s320/shapei1.png" width="320" /></a></div>and repeat:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz_LxfoxZ1RI3JCPwLFBvl3_skZISud-GbWny2RJep36P7sGJRSUWXoDJV1d7nFGmTqHuDE6tTFLYqpix8QwAtt1Lwi1CJNd8YEOhtvil-uLjNVrjoTIY5_U6SMgE2wTL-wf1RroID3QXz/s690/shapei2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="638" data-original-width="690" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz_LxfoxZ1RI3JCPwLFBvl3_skZISud-GbWny2RJep36P7sGJRSUWXoDJV1d7nFGmTqHuDE6tTFLYqpix8QwAtt1Lwi1CJNd8YEOhtvil-uLjNVrjoTIY5_U6SMgE2wTL-wf1RroID3QXz/s320/shapei2.png" width="320" /></a></div>the limit as the iterations goes up is:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_DBgxWTAPmUHkl_oqG6QdfcpkqlVV9JuMkHxKDWF0gmN3KKRQ8ucDNS9SrEoe14NYXh_zyaMafoYQZ3dFYctkpNeqoRmGG0XXF_fTeT-ZLEdNo5u72fgBP5ymW8Cmiw0Tkc79Ds7oT0O0/s690/shape2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="638" data-original-width="690" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_DBgxWTAPmUHkl_oqG6QdfcpkqlVV9JuMkHxKDWF0gmN3KKRQ8ucDNS9SrEoe14NYXh_zyaMafoYQZ3dFYctkpNeqoRmGG0XXF_fTeT-ZLEdNo5u72fgBP5ymW8Cmiw0Tkc79Ds7oT0O0/s320/shape2.png" width="320" /></a></div><br /><div>I am just showing the edges, but this is a convex solid with flat surfaces in all the circles. In this one the corners are cut off so the slices touch, and the edges cut off one third of the way along the sliced edges. The result has octahedral symmetry, with 8 largest circle faces. <br /><div><br /></div><div>It is C1 continuous because its face angles (the first derivative) follow a devil's staircase function across an edge, this is a continuous function. </div><div><br /></div><div>Here's the solid object:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjsaws9cyPRbpOm4Zyog0n771vHkcBGiVKyrcO50KQO6vVJU-eLCJvIHG6dCbQ4Ulae5QR19LUvR5zrS8xaTKA4V9RK3bDd_CBQhm1ac7WouOJtpX654DGwf6HVJAitGITIpIIaD7cBOvN/s778/octrahedral_fractal.png00.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="769" data-original-width="778" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjsaws9cyPRbpOm4Zyog0n771vHkcBGiVKyrcO50KQO6vVJU-eLCJvIHG6dCbQ4Ulae5QR19LUvR5zrS8xaTKA4V9RK3bDd_CBQhm1ac7WouOJtpX654DGwf6HVJAitGITIpIIaD7cBOvN/s320/octrahedral_fractal.png00.png" width="320" /></a></div><br /><div>and here's the same thing but starting with a cube:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUysA8s3iDBp9xtQ0fWdaU0fSk_iLBihDW2P1Ppwv-gDVaIYAwMr0kV8b3K1OuFPdARbKoXAJh5tYtsmo9zBA54zx_fsiS6r2CJImQUJ0AG56xzgaIEN1vQgE9j8J6MnCPmORM4TCLy55a/s594/cubic_fractal.png00.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="574" data-original-width="594" height="309" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUysA8s3iDBp9xtQ0fWdaU0fSk_iLBihDW2P1Ppwv-gDVaIYAwMr0kV8b3K1OuFPdARbKoXAJh5tYtsmo9zBA54zx_fsiS6r2CJImQUJ0AG56xzgaIEN1vQgE9j8J6MnCPmORM4TCLy55a/s320/cubic_fractal.png00.png" width="320" /></a></div><br /><div>Here is the Octahedral rendered with transparency and refraction:</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj6IlcGWIZwmV7rmGI2Vt2s-mIkvat9-bYz0MM4SptcHuLFRMd5Sm9xZzeoBaPdYoexf71fmyPe_1bg_SNou8BrI0rO6g5MjYF1VVsDmXJp2cWDZnmbxcG7HkDQB5hdYSio6u7cfnI-qEx/s875/anti4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="751" data-original-width="875" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj6IlcGWIZwmV7rmGI2Vt2s-mIkvat9-bYz0MM4SptcHuLFRMd5Sm9xZzeoBaPdYoexf71fmyPe_1bg_SNou8BrI0rO6g5MjYF1VVsDmXJp2cWDZnmbxcG7HkDQB5hdYSio6u7cfnI-qEx/s320/anti4.jpg" width="320" /></a></div><br /><div><br /><p><br /></p></div></div></div>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-26628138349064922612021-04-02T04:32:00.003-07:002021-04-02T22:20:12.286-07:00Mean Lumps<p>So what does a mean shape look like overall? I'm talking about any sort of blob-like shape. A rock, a piece of dough, a pebble, a chunk of ice in saturn's ring. </p><p>This parameter space is pretty hard to pin down, and each of the above have different processes that form them. But one common thing is that they are fairly smooth, and they have a continuous, simple surface. We aren't talking about sea urchins or sponges or tree shapes. </p><p>Regardless of the exact parameter space, the average shape is constrained by the equivalence class, and it is due to this that we can get a rough shape, without knowing the actual probability density of the parameter space. </p><p>In this post I make an attempt at an average shape using an octahedron with randomly selected radial distances of the six vertices, using a random distribution of 'energies' (the square of the distance) as used in previous posts. In fact we already have the result, it is from the dice numbers in the <a href="https://tglad.blogspot.com/2020/12/mean-textures.html">mean textures</a> post. The dice values for the sides 1,2,3,4,5,6 are: 3.35, 2.57, 2.86, 2.86, 4.58, 5.98, which translating to radial distances gives this shape:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWgOQJd-y4glGRUIKKkewdPv-KNtmlJZ5uDuQ1bK1s4hCMa3EAuYX_O9TlqV3w02hR4ZikH2MoP6ffubBpYoq9xAz5EY-zSt10J9eS-UQeLLc9fnvyvYrBpJ5jQM04wMWR2liEw-_JfTmH/s1969/cube_pic.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1969" data-original-width="1817" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWgOQJd-y4glGRUIKKkewdPv-KNtmlJZ5uDuQ1bK1s4hCMa3EAuYX_O9TlqV3w02hR4ZikH2MoP6ffubBpYoq9xAz5EY-zSt10J9eS-UQeLLc9fnvyvYrBpJ5jQM04wMWR2liEw-_JfTmH/s320/cube_pic.png" /></a></div><p>The left side is the octahedron from three angles, and the right is a smoothed version to give an idea of the blob shape. As you can see, it has bilateral symmetry, but is elongated and somewhat egg-shaped in the two other axes.</p><p>We can do the same thing with icosahedra. The result is:</p><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivpqL3zfjXFlLMtlopmDg0hB7_626ms41TD50GvMqq9913-A6_ytplVl_YpPoKEe3V-p2lnF_aJ43LgpryYsGz8BflZoIV94zaJUwt5Llr9OrjZIGga56J0TWxf2PEg-lNqGB7-PaMNax3/s1728/icos_pics.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1728" data-original-width="1637" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivpqL3zfjXFlLMtlopmDg0hB7_626ms41TD50GvMqq9913-A6_ytplVl_YpPoKEe3V-p2lnF_aJ43LgpryYsGz8BflZoIV94zaJUwt5Llr9OrjZIGga56J0TWxf2PEg-lNqGB7-PaMNax3/s320/icos_pics.png" /></a> <br /></div></div>vertices: x: 1,-1, 0, ϕ, ϕ, 0,-ϕ, 0, 1, 0,-ϕ,-1 <br /> y: 0, 0, ϕ, 1,-1,-ϕ, 1, ϕ, 0,-ϕ,-1, 0 <br /> z: ϕ, ϕ, 1, 0, 0, 1, 0,-1,-ϕ,-1, 0,-ϕ (ϕ is the golden ratio)<br /><p>lengths: 1.03,0.91,0.91,0.92,0.92,0.90,0.93,1.65,0.93,0.93,0.93,1.04 <br /></p><p><br /></p><p>The result is a bit different, but the main features are similar to the octahedron case: It has bilateral symmetry on one axis, and an egg-shaped elongation on the two other axes, the proportions of these two elongations are similar with the octahedral case, the main difference being that the icosahedral blob is fatter (bottom row).</p><p>Nevertheless, these two blobs are quite similar looking, and remind me of an almond a bit.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHi_9XKBx2poeIWsOnWfjHjiBCHM6-x8TFjW2G_uLYIPkQmXygaj2D6r6H2zStGEGJh_DR1rtgzQNhNoGYIzDBYi8eSpKoDNsY3YTZczKNqWeJDNiq2_Rb9xLamwqXFxEsvE3Z7AmIBVEN/s300/almond.jpeg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="168" data-original-width="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHi_9XKBx2poeIWsOnWfjHjiBCHM6-x8TFjW2G_uLYIPkQmXygaj2D6r6H2zStGEGJh_DR1rtgzQNhNoGYIzDBYi8eSpKoDNsY3YTZczKNqWeJDNiq2_Rb9xLamwqXFxEsvE3Z7AmIBVEN/s0/almond.jpeg" /></a></div><br /><p><br /></p><p><br /></p><p><br /></p><p><br /></p>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0tag:blogger.com,1999:blog-8438916308834541294.post-57624815064480801832021-01-01T23:28:00.008-08:002023-02-17T16:45:06.261-08:00Mean particles<p>The results of the <a href="https://tglad.blogspot.com/2020/12/mean-points.html">previous post</a> on mean points shows that average sets of points tend to not be next to each other. If we introduce time into the system, then this can be seen as a repulsion of the points. So let's try this out. </p><p>Looking at just points in a 1+1D world, where the spatial dimension is in a circle. We can evolve a set of points as follows:</p><ol style="text-align: left;"><li>Pick any set of starting points, these are also the current mean point set.<br /></li><li>Create a large population of sets, each set is equal to this starting set. </li><li>For each time step, add a random offset to each point set, and rotate it around the circle to be as close as possible to the mean set. Accumulate the deltas (relative angle of these rotated points to the mean points).</li><li>add the total delta onto the mean point set. (i.e. generate a new mean set)</li><li>go to 3.</li></ol><p> The results are shown with time going from bottom to top, with starting positions 1,1.1,7,8 (angles out of 10 ticks around the circle):</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7q84SS4GUb0Dxlw72beb_yXm89zwcAPwh7jyGZjow7WH2NpGtxwZ55a-QgOmoBEIvIPjextrSrnY9ZcIFk2VLqu0zu2ewndbEcFy5dkqaQ9v5FsybvjfNhZ0wMmhdUtORu3cLH1jmvAYE/s644/particle2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="644" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7q84SS4GUb0Dxlw72beb_yXm89zwcAPwh7jyGZjow7WH2NpGtxwZ55a-QgOmoBEIvIPjextrSrnY9ZcIFk2VLqu0zu2ewndbEcFy5dkqaQ9v5FsybvjfNhZ0wMmhdUtORu3cLH1jmvAYE/s320/particle2.png" width="320" /></a></div><p></p><p>Notice that points appear to repel each other, and the two points closest to each other repel the quickest.<br /></p><p>The size of the random offset applied at each time frame affects how fast the particles communicate and 'see each other', with no repelling until the random dispersion of each point starts to interfere with its neighbour.</p><p>Since we use a large population of random sets, it basically represents a uniform dispersion of the sets over time, with a chosen dispersion rate. The dispersion rate does not have any effect other than changing the time scale on the resulting trajectories. So the results are effectively parameter-free. They are simply the mean trajectories of a set of <i>n</i> points, given the circle's rotational symmetry, and a maximum communication speed. As such, the trajectories are otherwise entirely defined by the initial position of the points. <br /></p><p>The behaviour isn't particularly interesting though, but we can make it more so by going from first order to second order dynamics. This is done by adding the change in the mean points on to all the candidates at each time step, reflecting the nature of particles to maintain their velocity. The result has a little more oscillation:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8vl2L607nlc05eSGPHXKzxRmH86nIm3U4zHcsoKlGiauVwvXvtZye7BSCslzVGpGh4-VkEdR7X1_tgsXUM198wjPsifuP8qi_oNxqRa5r_fZmP4vrXGXw3mpDDUGps5HCNxHJ8ccU5-fa/s644/particlevel2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="640" data-original-width="644" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8vl2L607nlc05eSGPHXKzxRmH86nIm3U4zHcsoKlGiauVwvXvtZye7BSCslzVGpGh4-VkEdR7X1_tgsXUM198wjPsifuP8qi_oNxqRa5r_fZmP4vrXGXw3mpDDUGps5HCNxHJ8ccU5-fa/s320/particlevel2.png" width="320" /></a></div><p></p><p>This is basically degeneracy pressure in action, just without complex numbers. However, there is an additional behaviour in this system: unlike degeneracy pressure in absolute coordinates, which converges (if it loses energy over time) to equidistant points, with circular symmetry included the points stabilise to the non-uniform dispersal seen in the <a href="https://tglad.blogspot.com/2020/12/mean-points.html">previous post</a>. At least it would if the communication distance was wide enough.</p><p>This makes it a system that has repulsion and a sort of attraction (as the converged set of points cluster on one side of the circle). This is not visible on the above graph due to the communication distance being lower, but it would be interesting to investigate this behaviour further. </p><p>I expect the 2D version (on a sphere) to show even more unusual behaviour, it could well display orbiting behaviour around the lowest energy point locations (seen in the previous post). <br /></p><p>Also note that the set of particles conserves momentum. At least, it appears to.</p><span><a name='more'></a></span><p>Particles:</p><p>The above reminds me somewhat of the path integral methods of quantum mechanics. The average over all paths being very similar to the integration over all paths in the path integral, one difference is that the points in quantum mechanics are complex (in the simplest case), and the other being that I am applying the circle rotational symmetry constantly. </p><p>Next I would like to get closer to the path integral solution, to see what different the rotational symmetry part will make. <br /></p><p><br /></p><p><br /></p>TGladhttp://www.blogger.com/profile/01082123555974465066noreply@blogger.com0