<div dir="auto">BTW, some context:</div><div dir="auto"><div dir="auto"><a href="http://canonical.org/~kragen/bytebeat/">http://canonical.org/~kragen/bytebeat/</a></div></div><div dir="auto"><div><a href="https://arxiv.org/abs/1112.1368">https://arxiv.org/abs/1112.1368</a></div><br></div><div dir="auto">My experiment was just a first attempt after watching a video on viznut’s youtube channel, it’s not completely correct..</div><div dir="auto"><br><div class="gmail_quote gmail_quote_container" dir="auto"><div dir="ltr" class="gmail_attr">On Tue, Aug 26, 2025 at 02:37 Luciano Notarfrancesco <<a href="mailto:luchiano@gmail.com">luchiano@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="ltr">I made a weird little hack/toy today. Here it is in case anyone wants to try it. Print this on a workspace to get the morph embedded, or open it in the world:<div>    b := BytebeatMorph new scaleBy: 2.<br><div>And then play:</div><div>    b play</div><div>and try different generating functions:</div><div>    b generator: [:t| t].<br>    b generator: [:t| t//16].<br>    b generator: [:t| t//16 & (t*5//3)].<br>    b generator: [:t| t//8 & (t*4//3)].<br>    b generator: [:t| t//16 & (t*2//3) | ((t//32 & (t\\20)))].<br>    b generator: [:t| t*3 * (t >> 7)].<br><br>    b generator: [:t| t*5//3].<br>    b generator: [:t| t*4//3].<br><br>    b generator: [:t| t & (t // 8) - (t * 2 & (t>>13) & (t >> 5))].<br><br>    b generator: [:t| t>>6 | t | (t >> (t >> 16)) * 10 + ((t>>11)&7)].<br></div><div><br></div><div><div>Hope it works..</div><div><br></div><div>BTW, BoundFinderCanvas>>image:at:sourceRect: was missing (see attached, need it), and the implementation in VectorCanvas has a bug but the part of the method that uses WarpBlt seems to work correctly (that's why in the example I call scaleBy:.</div><div><br></div></div></div></div>
</blockquote></div></div>