
Recursion and Fractals - sturza
https://en.scratch-wiki.info/wiki/Recursion_and_Fractals
======
uoaei
There is a common misconception, repeated here, that fractals are defined by
their self-similarity. This is not true. Fractals are mathematical objects
which have non-integral dimensionalities: that is, they exist in a space
somewhere between (n)D space and (n+1)D space for some integer _n_.[1] The
exact Hausdorff dimension, the number quantifying their dimensionality, is not
in general the same for each construction. For the Koch curve, the Hausdorff
dimension is ln(4)/ln(3) = log_3(4) approximately 1.2619.[2] This is because
for each iteration of the curve's construction, the perimeter of the curve
grows by a factor of 4 while the area enclosed by the curve only grows by a
factor of 3. That makes it fill space faster than a growing 1D line, but
slower than a growing 2D surface.

[1]
[https://www.youtube.com/watch?v=gB9n2gHsHN4](https://www.youtube.com/watch?v=gB9n2gHsHN4)

[2]
[https://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_...](https://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_dimension)

~~~
westoncb
To what extent is the concept of 'dimension' here the same as in everyday
experience? (or, e.g. Linear Algebra, where the number of vectors in a basis
correspond to dimension. I see that concept as roughly similar to the
'everyday' concept.)

From this comment I would guess this is an alternate meaning of 'dimension'
which captures one key property from the usual meaning (i.e. ratio of surface
to interior space depends on dimension), but leaves out the rest.

Like is there a sense in which we can rotate onto a fractional axis or
something like that?

~~~
andrepd
First it's useful to understand why e.g. a Koch curve has fractional
dimension. The answer informally is that it has "too much area" to be just a
line, but it's "too much a line" to be a 2d figure. Just notice that its
length (1D measure) is infinite (just like a square has "infinite length"), so
its dimension must be >1D, but also its area) 2D measure is zero (just like a
line has 0 area), so it must also be <2D.

Then if you want to make this intuition precise, you need to look into the
box-counting dimension, and then the Hausdorf dimension.

~~~
westoncb
That makes sense to me.

There was a specific thing I was looking for in my original question which was
to understand how related vs. arbitrary the shared term 'dimension' is.

I think I found an answer after browsing a few Wikipedia articles—but happy to
be corrected if it doesn't sound right:

The usual notion of dimension that people think of is topological only;
fractal dimension (i.e. Hausdorf dimension) is also concerned with metric
properties. These metric properties are what creates the need/possibility for
fractional measures.

In that case, the scenario I was considering with 'fractional axes/directions'
is _not_ implied by the fractal dimension concept: fractal dimension is
dealing with new subject matter, not just an extension of the old concept to
deal with real numbers.

------
Choco31415
This is the first time I've seen the Scratch Wiki listed on Hacker News, which
surprises me and doesn't. It's nice how Scratch easily supports simple
projects while having a high ceiling, as noted by people making 3D projects
and fractal art. That reflects somewhat in the wiki's diverse articles.

I'm a system administrator for the international Scratch Wikis. While I
haven't been that active recently, I'll try and answer any questions that
people want to ask. :)

~~~
samstave
Can you give some good pointers to how to best make use of the tool? Or other
great examples of how people are best using it?

~~~
sturza
There are 2 books on how to use their tool called Processing, if this helps

~~~
jvvw
Processing and Scratch are completely and totally different by the way -
Scratch is a visual programming language designed principally to teach kids
programming while Processing is the main language used for generative art and
is used by adults more than kids generally.

------
patrec
I love the idea behind blockly of bringing back structured editors to teach
beginners in a way that side-steps the time waste of syntactically malformed
code. And also the mix direct manipulation and indirect manipulation via
coding. But the drag and click input system seems horrendously inefficient
even for novice needs; it's not just super-slow to select the desired building
block but also seems very frustrating to re-arrange anything; e.g. I couldn't
work out a way to reliably select and move out a sub-block etc. Scratch also
doesn't save to some human editable format.

Is there some more UI depth that I've missed on my first spin that allows more
ergonomic usage?

------
peter_l_downs
This is the clearest explanation of how to render the Mandelbrot set. Very
cool, thanks for sharing.

------
pickdenis
Scratch is what got me into programming, and why I'm here today. It's awesome
to see that it's still growing and new things are possible. Back when I
started you couldn't define your own functions so you had to use a stack (and
that only worked after they added arrays) or BYOB (a scratch variant where you
could define functions).

