Readit News logoReadit News
CliffStoll · 3 months ago
Outstanding work and a delightful read.
chriskw · 3 months ago
Thanks Cliff, it means a ton coming from you! The videos from you and all the other folks on Numberphile always inspired me to see the beauty in math growing up :)
speeder · 3 months ago
Please you two, make an awesome YouTube vídeo out of this. It is fascinating and beatiful and deserves a chance to viralize a little :)
sakesun · 3 months ago
Wow
nico · 3 months ago
Amazing insightful and thoughtful write up, thank you!

Loved the 3d visualizations

It reminds me of this thing I built some time ago while playing with recursive decimation to generate effects similar to fractals from any image

You can play with it here: https://jsfiddle.net/nicobrenner/a1t869qf/

Just press Blursort 2x2 a couple of times to generate a few frames and then click Animate

You can also copy/paste images into it

There’s no backend, it all just runs on the browser

Don’t recommend it on mobile

Iwan-Zotow · 3 months ago
Curious if it would work in 3D
nico · 3 months ago
Very interesting! I wonder what that would look like

Right now, roughly, the algorithm recursively divides the image by doing decimation (ie. picking every other pixel), and keeps the decimated pixels as a second image

Not sure how that algorithm would apply to a 3d data structure

Do you know how 3d objects/images are usually represented?

It would be cool to recursively decompose a 3d object into smaller versions of itself :)

leni536 · 3 months ago
Got a bit nerd-sniped by this and came up with an L-system that fills out (I think) "the wallflower":

https://onlinetools.com/math/l-system-generator?draw=AB&skip...

edit: On second thought, this probably generates the other fractal, but I'm not sure.

leni536 · 3 months ago
Found a space-filling curve for the wallflower:

https://onlinetools.com/math/l-system-generator?draw=ABCD&sk...

The previous one fills out the Koch island.

chriskw · 3 months ago
That's really cool! I tried to get something to work last week on pen and paper but couldn't get anything to stick. Is there a strategy you used or did you just go by feel?

Edit: just noticed how you encoded a flip (AB <--> CD) between iterations like how the matrix flips the orientation of space. Super neat!

taeric · 3 months ago
Holy cow, I was expecting a quick read. Wound up having to skim some, as I need to get some work today. Will be coming back to this to play with some. Really well done!
baq · 3 months ago
This went much deeper and harder than expected. One has to admire the dedication.

Question to the author: what would you recommend to hang on my kid’s wall today?

chriskw · 3 months ago
I'm by no means a parenting expert, but my answer would be anything related to something they feel passion or wonder for in the moment. I snuck in a paragraph near the end about burnout. At the root of the problem for me was that I lost the feeling of fascination and curiosity I had for math and programming, and doing this write-up helped me tap into that feeling of childlike wonder that used to come easily.
Cogito · 3 months ago
Thought I'd check the arithmetic for 2 two-digit numbers, and it works!

I expect 41+14 to be 12 (two right plus two up equals two right and two up).

Long addition in long form below uses:

'=' to show equivalent lines (reordering of terms (1+2=2+1), spliting numbers (41=40+1), adding single digits (1+4=22))

'->' for when the algorithm gives a digit

'<' for when we move over a column

    41+14
    = (40+1)+(10+4)
    = 40 + 10 + (1+4)
    = 40 + 10 + 22
    -> 1s digit = 2
    < 4 + 1 + 2
    = 22 + 2
    = 20 + 2 + 2
    = 20 + 41
    -> 10s digit = 1
    < 2 + 4
    = 0
    -> done
    == 12
[edit] Just noticed the article has two different numbering systems, one where 10, 20, 30, 40 are clockwise and one where they are anticlockwise. In both, 1, 2, 3, 4 are clockwise. My addition is on the second, where 10s are anticlockwise (this is what is used in the addition table).

It still works in the alternative system (14+21 should equal 12)

    14+21
    =10+20+42
    ->2
    <1+2+4
    =13+4
    =10+3+4
    =10+31
    ->1
    <1+3
    =0
    ==12

CBLT · 3 months ago
Well written! Would you mind sharing how you came up with the "middle out" numbering system? I can never seem to come up with something this inspired when I'm doing math problems by myself.
chriskw · 3 months ago
The post presents it a bit out of order, but it was mostly from realizing at some point that the way the fractal grows by a factor of 5, base 5 number systems, and the "spiral" mentioned in the post can all fit together. I also thought a lot about how to programmatically draw the fractal and a natural way would be to start from the middle and zoom out.

There's an apocryphal story about Richard Feynman about how he used to keep a dozen or so random problems in the back of his mind and made a little bit of progress on them every time he saw a connection, until finally he'd solve one and everyone would think he magically figured it out instantly. This was a bit similar except I'm not nearly at that level and I've only been able to do that for one problem instead of a dozen.

cies · 3 months ago
I had this one up the wall (giant print) at a place I worked:

https://raw.githubusercontent.com/cies/haskell-fractal/refs/... [17MB, sorry Github]

It contains the Haskell code that produced it: https://github.com/cies/haskell-fractal

Especially the `sharpen` function was interesting to come up with (I used some now-offline tool to do curve fitting for me): https://github.com/cies/haskell-fractal/blob/master/fractal....

Fun little project. :)