Jumper to Jumper

Previously I’ve looked at fractals created by a point moving half-way towards the random chosen vertex of a polygon. But you can also choose an initial vertex, then choose a new vertex by adding a random number to that initial vertex. Then repeat. For example, if the polygon is a square and the initial vertex is v = 1, then choose v + 3 = 4 or v – 1 = 3, and so on.

You can then ban or un-ban the choice of vertex-jump as you can ban or un-ban direct choices of vertex. These two methods of random choice are effectively the same, but one can be simpler to program than the other. That’s why I’ve come across some new fractals by using vertex-jumps. Here they are:

vertices = 4, vertex-jump = (1,2,3,4), ban on same choice twice in a row


vertices = 4, vertex-jump = (1,2,3,4), ban on 2 in row (black-and-white version)


v = 4, vj = (1,2,3,4), ban on choice c + 2 from previous choice c


v = 4, vj = (1,2,3,4), ban c + 2 (animated gif)


vj = (1,2,3,4), ban c + 2 (black-and-white)


vj = (1,2,3,4), ban c + 0 at time t+1 unless c + 0 at time t-1


vj = (1,2,3,4), ban c + 0 at t+1, unless c + 0 at t-1 (black-and-white)


vj = (1,2,3,4,5), ban c + 0


vj = (0,1,2,3,4), ban c + 0


vj = (0,1,2,3,4), ban c + 0 (black-and-white)


vj = (1,2,3,4), ban c + 2 at t+1 unless c + 2 at t-1 (animated gif)


vj = (1,2,3,4), ban c + various at t+1 unless c + various at t-1 (animated gif)


vj = (1,2,3,4,5), ban c + 0 at t+1 unless c + 0 at t-1


vj = (-2,-1,0,1,2), ban c + 0


vj = (-2,-1,0,1,2), ban c + 0 (black-and-white)


vj = (0,1,2,3,4), ban c + va unless c + va


v = 5, vj = (1,2,3,4), ban c + 0


v = 5, vj = (1,2,3,4), ban c + 2


v = 5, vj = (0,1,2,3), ban c + 3


v = 6, vj = (0,1,2,3), ban c + 2


v = 5, vj = va, ban c + va (animated gif)


Appointment with Distality

distal, adj. Anat. Situated away from the centre of the body, or from the point of origin (said of the extremity or distant part of a limb or organ); terminal. Opp. to proximal. [← stem of dist- (in distant adj.) + -al, after dorsal, ventral, etc.] — Oxford English Dictionary

When a point jumps inside a triangle, moving halfway towards a randomly chosen vertex each time, a fractal known as the Sierpiński triangle appears:
chaos_triangle

Point jumping halfway towards random vertex of a triangle


chaos_triangle_bw

Point jumping inside triangle (black-and-white version)


But when a point moves at random in the same way inside a square, no fractal appears. Instead, the interior of the square gradually fills with a haze of pixels:
random_fill

Point jumping halfway towards random vertex of a square


Now trying imposing restrictions on the point jumping inside a square. If it can’t jump towards a vertex twice in a row, this fractal appears:
select_1_0

Ban consecutive jumps towards same vertex


select_1_0_bw

Ban consecutive jumps towards same vertex (black-and-white version)


Suppose the vertices are numbered from 1 to 4 and the point can’t jump towards the vertex one lower than the previously chosen vertex. That is, if it jumps towards vertex 3, it can’t jump next towards vertex 2, but it can jump towards vertices 1, 3, or 4 (if the vertex is 1, it’s banned from moving towards vertex 4, i.e. 1-1 = 0 = 4). Now this fractal appears:
select_1_1

Ban jump towards vertex v-1


select_1_1_bw


This is the fractal when the point can’t jump towards the vertex two places lower than the one it has just jumped towards:
select_1_2

Ban jump towards vertex v-2


select_1_2_bw


But if you can ban, you can also un-ban. Suppose the point jumps towards vertex v at time t and is then banned from jumping towards vertex v-2 at time t+1 unless it had jumped towards vertex v-1 at time t-1. This interesting fractal appears:
select_2_1_1_2

Ban jump v-2 at t+1 unless jump v-1 at t-1


Here are some more fractals using the ban / un-ban technique:
select_2_1_various

Ban / un-ban various


select_2_1_0_1

Ban jump v+0 at t+1 unless jump v+1 at t-1


select_2_1_1_3

Ban jump v+1 at t+1 unless jump v+3 at t-1


select_2_1_2_0

Ban jump v+0 at t+1 unless jump v+2 at t-1


select_2_1_2_2

Ban jump v+2 at t+1 unless jump v+2 at t-1


select_1_2_various

Ban / un-ban various


You can also impose or lift bans based not on the vertex the point jumps towards, but on the distance the point jumps. For example, take the radius r of the circle circumscribing the square and divide it into four segments, 0 to ¼r, ¼r to ½r, ½r to ¾r, and ¾r to r. When the point is going to jump towards vertex v, test whether its jump will land in the same segment, measured from the center of the circle, as it currently occupies. If it does, ban the jump and choose another vertex. Or unban the vertex if the point occupied segment s + x at time t-1. Here are some of the fractals produced using this technique:
dist_2_1_various

Ban / un-ban based on distance jumped


dist_center_1_0

Ban jump into segment s+0 of 4


dist_center_1_1

Ban jump into segment s+1 from center


dist_center_1_2

Ban jump into segment s+2


dist_center_-2_1_2_2

Ban jump into s+2 at t+1 unless jump into s+2 at at t-1


dist_xy_1_0

Ban jump into s+0 from present point


dist_xy_1_2

Ban jump into s+2 from present point


dist_xy_1_3

Ban jump into s+3 from present point


dist_xy_2_1_1_0

Ban jump into s+0 at t+1 unless jump into s+1 at at t-1


It’s easy to think of variants on all these themes, but I’ll leave them as an exercise for the interested reader.

The Swing’s the Thing

Order emerges from chaos with a triangle or pentagon, but not with a square. That is, if you take a triangle or a pentagon, chose a point inside it, then move the point repeatedly halfway towards a vertex chosen at random, a fractal will appear:

triangle

Sierpiński triangle from point jumping halfway to randomly chosen vertex


pentagon

Sierpiński pentagon from point jumping halfway to randomly chosen vertex


But it doesn’t work with a square. Instead, the interior of the square slowly fills with random points:

square

Square filling with point jumping halfway to randomly chosen vertex


As I showed in Polymorphous Perverticity, you can create fractals from squares and randomly moving points if you ban the point from choosing the same vertex twice in a row, and so on. But there are other ways. You can take the point, move it towards a vertex at random, then swing it around the center of the square through some angle before you mark its position, like this:

square_sw90

Point moves at random, then swings by 90° around center


square_sw180

Point moves at random, then swings by 180° around center


You can also adjust the distance of the point from the center of the square using a formula like dist = r * rmdist, where dist is the distance, r is the radius of the circle in which the circle is drawn, and rm takes values like 0.1, 0.25, 0.5, 0.75 and so on:

square_dist_rm0_05

Point moves at random, dist = r * 0.05 – dist


square_dist_rm0_1

Point moves at random, dist = r * 0.1 – dist


square_dist_rm0_2

Point moves at random, dist = r * 0.2 – dist


But you can swing the point while applying a vertex-ban, like banning the previously chosen vertex, or the vertex 90° or 180° away. In fact, swinging the points converts one kind of vertex ban into the others.

square_ban0

Point moves at random towards vertex not chosen previously


square_ban0_sw405

Point moves at random, then swings by 45°


square_ban0_sw360

Point moves at random, then swings by 360°


square_ban0_sw697

Point moves at random, then swings by 697.5°


square_ban0_sw720

Point moves at random, then swings by 720°


square_ban0_sw652

Point moves at random, then swings by 652.5°


square_ban0_swing_va_animated

Animated angle swing


You can also reverse the swing at every second move, swing the point around a vertex instead of the center or around a point on the circle that encloses the square. Here are some of the fractals you get applying these techniques.
square_ban0_sw45_rock

Point moves at random, then swings alternately by 45°, -45°


square_ban0_sw90_rock

Point moves at random, then swings alternately by 90°, -90°


square_ban0_sw135_rock

Point moves at random, then swings alternately by 135°, -135°


square_ban0_sw180_rock

Point moves at random, then swings alternately by 180°, -180°


square_ban0_sw225

Point moves at random, then swings alternately by 225°, -225°


square_ban0_sw315

Point moves at random, then swings alternately by 315°, -315°


square_ban0_sw360_rock

Point moves at random, then swings alternately by 360°, -360°


square_swing_vx0_va_animated

Animated alternate swing


square_circle_sw45

Point moves at random, then swings around point on circle by 45°


square_circle_sw67

Point moves at random, then swings around point on circle by 67.5°


square_circle_sw90

Point moves at random, then swings around point on circle by 90°


square_circle_sw112

Point moves at random, then swings around point on circle by 112.5°


square_circle_sw135

Point moves at random, then swings around point on circle by 135°


square_circle_sw180

Point moves at random, then swings around point on circle by 180°


square_circle_sw_animated

Animated circle swing


Tri Again (Again)

I didn’t expect to find the hourglass fractal playing with squares. I even less expected it playing with triangles. Isosceles right triangles, to be precise. Then again, I found it first playing with the L-triomino, which is composed of three squares. And an isosceles triangle is half of a square. So it all fits. This is an isosceles right triangle:
isosceles_right_triangle

Isosceles right triangle


It’s mirror-symmetrical, so it looks the same in a mirror unless you label one of the acute-angled corners in some way, like this:

right_triangle_chiral_1

Right triangle with labelled corner


right_triangle_chiral_2

Right triangle reflected


Reflection is how you find the hourglass fractal. First, divide a right triangle into four smaller right triangles.

right_triangle_div4

Right triangle rep-tiled


Then discard one of the smaller triangles and repeat. If the acute corners of the smaller triangles have different orientations, one of the permutations creates the hourglass fractal, like this:

right_triangle_div4_1

Hourglass #1


right_triangle_div4_2

Hourglass #2


right_triangle_div4_3

Hourglass #3


right_triangle_div4_4

Hourglass #4


right_triangle_div4_5

Hourglass #5


right_triangle_div4_6

Hourglass #6


right_triangle_div4_7

Hourglass #7


right_triangle_div4_8

Hourglass #8


right_triangle_div4_9

Hourglass #9


right_triangle_div4_123_010

Hourglass animated


Another permutation of corners creates what I’ve decided to call the crane fractal, like this:
right_triangle_div4_123_001

Crane fractal animated


right_triangle_div4_123_001_static

Crane fractal (static)


The crane fractal is something else that I first found playing with the L-triomino:

l-triomino_234

Crane fractal from L-triomino


Previously pre-posted:

Square Routes
Tri Again

Square Routes

One of the pleasures of exploring an ancient city like York or Chester is that of learning new routes to the same destination. There are byways and alleys, short-cuts and diversions. You set off intending to go to one place and end up in another.

Maths is like that, even at its simplest. There are many routes to the same destination. I first found the fractal below by playing with the L-triomino, or the shape created by putting three squares in the shape of an L. You can divide it into four copies of the same shape and discard one copy, then do the same to each of the sub-copies, then repeat. I’ve decided to call it the hourglass fractal:

l-triomino_124

Hourglass fractal (animated)


l-triomino_124_upright_static1

Hourglass fractal (static)


Then I unexpectedly came across the fractal again when playing with what I call a proximity fractal:
v4_ban15_sw3_anim

Hourglass animated (proximity fractal)


v4_ban15_sw3_col

(Static image)


Now I’ve unexpectedly come across it for a third time, playing with a very simple fractal based on a 2×2 square. At first glance, the 2×2 square yields only one interesting fractal. If you divide the square into four smaller squares and discard one square, then do the same to each of the three sub-copies, then repeat, you get a form of the Sierpiński triangle, like this:

sq2x2_123_1

Sierpiński triangle stage 1


sq2x2_123_2

Sierpiński triangle #2


sq2x2_123_3

Sierpiński triangle #3


sq2x2_123_4

Sierpiński triangle #4


sq2x2_123

Sierpiński triangle animated


sq2x2_123_static

(Static image)


The 2×2 square seems too simple for anything more, but there’s a simple way to enrich it: label the corners of the sub-squares so that you can, as it were, individually rotate them 0°, 90°, 180°, or 270°. One set of rotations produces the hourglass fractal, like this:

sq2x2_123_013_1

Hourglass stage 1


sq2x2_123_013_2

Hourglass #2


sq2x2_123_013_3

Fractal #3


sq2x2_123_013_4

Hourglass #4


sq2x2_123_013_5

Hourglass #5


sq2x2_123_013_6

Hourglass #6


sq2x2_123_013

Hourglass animated


sq2x2_123_013_static

(Static image)


Here are some more fractals from the 2×2 square created using this technique (I’ve found some of them previously by other routes):

sq2x2_123_022


sq2x2_123_022_static

(Static image)


sq2x2_123_031


sq2x2_123_031_static

(Static image)


sq2x2_123_102


sq2x2_123_102_static

(Static image)


sq2x2_123_2011


sq2x2_123_201_static

(Static image)


sq2x2_123_211


sq2x2_123_211_static

(Static image)


sq2x2_123_213


sq2x2_123_213_static

(Static image)


sq2x2_123_033_-111


sq2x2_123_033_-111_static

(Static image)


sq2x2_123_201_1-11_static

(Static image)


sq2x2_200_1-11_static

(Static image)


sq2x2_123_132

(Static image)


Tri-Way to L

The name is more complicated than the shape: L-triomino. The shape is simply three squares forming an L. And it’s a rep-tile — it can be divided into four smaller copies of itself.

l-triomino

An L-triomino — three squares forming an L


l-triomino_anim

L-triomino as rep-tile


That means it can also be turned into a fractal, as I’ve shown in Rep-Tiles Revisited and Get Your Prox Off #2. First you divide an L-triomino into four sub-copies, then discard one sub-copy, then repeat. Here are the standard L-triomino fractals produced by this technique:

l-triomino_123_134

Fractal from L-triomino — divide and discard


l-triomino_234


l-triomino_124


l-triomino_124_upright


l-triomino_124_upright_static1

(Static image)


l-triomino_124_upright_static2

(Static image)


But those fractals don’t exhaust the possibilities of this very simple shape. The standard L-triomino doesn’t have true chirality. That is, it doesn’t come in left- and right-handed forms related by mirror-reflection. But if you number its corners for the purposes of sub-division, you can treat it as though it comes in two distinct orientations. And when the orientations are different in the different sub-copies, new fractals appear. You can also delay the stage at which you discard the first sub-copy. For example, you can divide the L-triomino into four sub-copies, then divide each sub-copy into four more sub-copies, and only then begin discarding.

Here are the new fractals that appear when you apply these techniques:

l-triomino_124_exp

Delay before discarding


l-triomino_124_exp_static

(Static image)


l-triomino_124_tst2_static1

(Static image)


l-triomino_124_tst2_static2

(Static image)


l-triomino_124_tst1


l-triomino_124_tst1_static1

(Static image)


l-triomino_124_tst1_static2

(Static image)


l-triomino_134_adj1

Adjust orientation


l-triomino_134_adj2


l-triomino_134_adj3


l-triomino_134_adj3_tst3

(Static image)


l-triomino_134_adj4


l-triomino_134_exp_static

(Static image)


l-triomino_234_exp

Radical Sheet

If you take a sheet of standard-sized paper and fold it in half from top to bottom, the folded sheet has the same proportions as the original, namely √2 : 1. In other words, if x = √2 / 2, then 1 / x = √2:

√2 = 1.414213562373…, √2 / 2 = 0.707106781186…, 1 / 0.707106781186… = 1.414213562373…

So you could say that paper has radical sheet (the square or other root of a number is also called its radix and √ is known as the radical sign). When a rectangle has the proportions √2 : 1, it can be tiled with an infinite number of copies of itself, the first copy having ½ the area of the original, the second ¼, the third ⅛, and so on. The radical sheet below is tiled with ten diminishing copies of itself, the final two having the same area:

papersizes

papersizes_static

You can also tile a radical sheet with six copies of itself, two copies having ¼ the area of the original and four having ⅛:

paper_6div_static

paper_6div

This tiling is when you might say the radical turns crucial, because you can create a fractal cross from it by repeatedly dividing and discarding. Suppose you divide a radical sheet into six copies as above, then discard two of the ⅛-sized rectangles, like this:

paper_cross_1

Stage 1


Then repeat with the smaller rectangles:

paper_cross_2

Stage 2


paper_cross_3

Stage 3


paper_cross_4

Stage 4


paper_cross_5

Stage 5


paper_cross

Animated version

paper_cross_static

Fractile cross

The cross is slanted, but it’s easy to rotate the original rectangle and produce an upright cross:

paper_cross_upright

paper_cross_upright_static

Performativizing the Polygonic

Maths is a mountain: you can start climbing in different places and reach the same destination. There are many ways of proving the irrationality of √2 or the infinitude of the primes, for example. But you can also arrive at the same destination by accident. I’ve found that when I use different methods of creating fractals. The same fractals appear, because apparently different algorithms are actually the same underneath.

But different methods can create unique fractals too. I’ve found some new ones by using what might be called point-to-point recursion. For example, there are ten ways to select three vertices from the five vertices of a pentagon: (1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5), (1, 4, 5), (2, 3, 4), (2, 3, 5), (2, 4, 5), (3, 4, 5). Find the midpoint of the first three-point set, (1, 2, 3). Then select two vertices to go with this midpoint, creating a new three-point set, and find the midpoint again. And so on. The process looks like this, with the midpoints shown for all the three-point sets found at each stage:

v5_p3_stage1

vertices = 5, choose sets of 3 points, find mid-point of each

v5_p3_stage2

v5_p3_stage3


At stage 5, the fractal looks like this:

v5_p3_static

v = 5, p = 3


Note that when pixels are used again, the colour changes. That’s another interesting thing about maths: limits can sometimes produce deeper results. If these fractals were drawn at very high resolution, pixels would only be used once and the colour would never change. As it is, low resolution means that pixels are used again and again. But some are used more than others, which is why interesting colour effects appear.

If the formation of the fractal is animated, it looks like this (with close-ups of even deeper stages):
v5_p3


Here are some more examples:

v4c_p2_static

v = 4 + central point, p = 2 (cf. Fingering the Frigit)

v4c_p2

v = 4c, p = 2 (animated)


v4_p3_static

v = 4, p = 3

v4_p3


v5_p4_static

v = 5, p = 4

v5_p4


v5c_p3_static

v = 5 + central point, p = 3

v5c_p3


v5c_p4

v = 5c, p = 4


v5c_p5

v = 5c, p = 5


v6_1_p6

v = 6 + 1 point between each pair of vertices, p = 6


v6_p2

v = 6, p = 2


v6_p3_static

v = 6, p = 3

v6_p3


v6_p4

v = 6, p = 4


v6c_p2_static

v = 6c, p = 2 (cf. Fingering the Frigit)

v6c_p2


v6c_p3_static

v = 6c, p = 3

v6c_p3


v6c_p4

v = 6c, p = 4


v7_p3

v = 7, p = 3


v7_p4_static

v = 7, p = 4

v7_p4


v7_p5_static

v = ,7 p = 5

v7_p5


v7_p4

v = 7c, p = 4


v3_1_p2

v = 3+1, p = 2


v3_1_p3

v = 3+1, p = 3


v3_1_p4

v = 3+1, p = 4


v3_2_p5

v = 3+2, p = 5


v3c_1_p2

v = 3c+1, p = 2


v3c_1_p4

v = 3c+1, p = 4


v3c_p2

v = 3c, p = 2


v3c_p3

v = 3c, p = 3


v4_1_p3

v = 4+1, p = 3


v4_1_p4

v = 4+1, p = 4


v4_1_p5

v = 4+1, p = 6


v4_1_p6

v = 4+1, p = 2


v4c_1_p4

v = 4c+1, p = 4


v4c_p3_static

v = 4c, p = 3

v4c_p3


v5_1_p4_va

v = 5+1, p = 4 (and more)


v5_p2

v = 5, p = 2


Polymorphous Perverticity

As I’ve explained before on Overlord of the Über-Feral, the planet’s premier purveyor of polygonic performativity (probably (possibly (perspectivistically))), it works with triangles and pentagons, but not with squares. And what is “it”? A simple procedure in which you create a polygon, choose a point inside it, then repeatedly move half-way towards a vertex chosen at random, marking each new position as you go.

pol3_4_5

When the polygon has three vertices, you get a Sierpiński triangle. When it has five, you get what might be called a  Sierpiński pentagon. When it has four, you get nothing. Or rather: you get everything, because the whole interior of the square gradually fills with points. But, as I’ve also explained before, there’s a simple way to change this. You can adapt the procedure so that a vertex can’t be chosen twice in a row, and so on.

When the rule is “No vertex twice in a row”, you get this fractal (colours change as a pixel is selected again):

pol4_0

But you can also use what might be a vertex increment, or vi, whereby you disallow vertices that are next to the previously chosen vertex, or two positions away, and so on. When the rule is “No vertex twice in a row”, the disallowed vertex is (v + 0), that is, vi = 0. If vi = 2 and the rule is disallow(v + 2), this fractal appears (when vi = 1, there’s no fractal):

pol4_2

v = 4, vi = 2

pol4_2_anim


You can extend these rules to apply not just to the previously chosen vertex, but also to the vertex chosen before that. Here are some fractals produced by the rule disallow(v[1] + vi[1], v[2] + vi[2]), where v[1] is the vertex previously chosen and v[2] is the vertex chosen before that:

pol4_1_2

v = 4, vi[1] = 1, vi[2] = 2

pol4_1_2_anim


pol4_2_0

v = 4, vi[1] = 2, vi[2] = 0

pol4_2_0_anim

pol4_2_0_white


pol4_2_1

v = 4, vi[1] = 2, vi[2] = 1

pol4_2_1_anim


pol4_2_2

v = 4, vi[1] = 2, vi[2] = 2

pol4_2_2_anim


And here are some fractals produced by the rule disallow(v[1] + vi[1], v[2] + vi[2], v[3] + vi[3]):

pol4_1_1_0

v = 4, vi[1] = 1, vi[2] = 1, vi[3] = 0

pol4_1_1_0_anim


pol4_1_1_2

v = 4, vi[1] = 1, vi[2] = 1, vi[3] = 2

pol4_1_1_2_anim


Applying these rules to pentagons rather than squares doesn’t produce such a dramatic difference, because the original procedure – choose any vertex at random, taking no account of previous choices – produces a fractal when v = 5, as noted above, but not when v = 4. Nevertheless, here are some fractals for v > 4:

pol5_0

v = 5, vi = 0


pol5_1

v = 5, vi = 1

pol5_1_anim


pol5_2

v = 5, vi = 2

pol5_2_anim


pol5_0_0

v = 5, vi[1] = 0, vi[2] = 0


pol5_1_0

v = 5, vi[1] = 1, vi[2] = 0


pol5_2_0

v = 5, vi[1] = 2, vi[2] = 0

pol5_2_0_anim


pol5_1_1

v = 5, vi[1] = 1, vi[2] = 1

pol5_1_1_anim


pol5_1_1_1

v = 5, vi[1] = 1, vi[2] = 1, vi[3] = 1


pol5_va2

v = 5, vi = various


pol6_1

v = 6, vi = 1

pol6_1_anim

Fingering the Frigit

Fingers are fractal. Where a tree has a trunk, branches and twigs, a human being has a torso, arms and fingers. And human beings move in fractal ways. We use our legs to move large distances, then reach out with our arms over smaller distances, then move our fingers over smaller distances still. We’re fractal beings, inside and out, brains and blood-vessels, fingers and toes.

But fingers are fractal are in another way. A digit – digitus in Latin – is literally a finger, because we once counted on our fingers. And digits behave like fractals. If you look at numbers, you’ll see that they contain patterns that echo each other and, in a sense, recur on smaller and smaller scales. The simplest pattern in base 10 is (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). It occurs again and again at almost very point of a number, like a ten-hour clock that starts at zero-hour:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9…
10, 11, 12, 13, 14, 15, 16, 17, 18, 19…
200… 210… 220… 230… 240… 250… 260… 270… 280… 290…

These fractal patterns become visible if you turn numbers into images. Suppose you set up a square with four fixed points on its corners and a fixed point at its centre. Let the five points correspond to the digits (1, 2, 3, 4, 5) of numbers in base 6 (not using 0, to simplify matters):

1, 2, 3, 4, 5, 11, 12, 13, 14, 15, 21, 22, 23, 24, 25, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 51, 52, 53, 54, 55, 61, 62, 63, 64, 65… 2431, 2432, 2433, 2434, 2435, 2441, 2442, 2443, 2444, 2445, 2451, 2452…

Move between the five points of the square by stepping through the individual digits of the numbers in the sequence. For example, if the number is 2451, the first set of successive digits is (2, 4), so you move to a point half-way between point 2 and point 4. Next come the successive digits (4, 5), so you move to a point half-way between point 4 and point 5. Then come (5, 1), so you move to a point half-way between point 5 and point 1.

When you’ve exhausted the digits (or frigits) of a number, mark the final point you moved to (changing the colour of the pixel if the point has been occupied before). If you follow this procedure using a five-point square, you will create a fractal something like this:
fractal4_1single

fractal4_1
A pentagon without a central point using numbers in a zero-less base 7 looks like this:
fractal5_0single

fractal5_0
A pentagon with a central point looks like this:
fractal5_1single

fractal5_1
Hexagons using a zero-less base 8 look like this:
fractal6_1single

fractal6_1


fractal6_0single

fractal6_0
But the images above are just the beginning. If you use a fixed base while varying the polygon and so on, you can create images like these (here is the program I used):
fractal4


fractal5


fractal6789