Here are 8 beautiful fractals based on chaos game technique.
'All the fractal rendered are based on chaos game technique and are adapted from wikipedia.
'19 Feb, 2019 Ashish
'https://en.wikipedia.com/wiki/Chaos_game
 
 
 
 
 
    i = i + 1
    drawFractal i, 300000 + i * 10000, 1 '1 for multiple colors, other value show fractal in only white color
 
 
 
SUB drawFractal 
(typ
, num_of_iterations
, colored 
AS _BYTE)     col~& 
= _RGBA(255, 255, 255, 80)    clr~&
(0) = _RGBA(255, 0, 0, 90)    clr~&
(1) = _RGBA(0, 255, 0, 90)    clr~&
(2) = _RGBA(0, 0, 255, 90)    clr~&
(3) = _RGBA(255, 255, 0, 90)    clr~&
(4) = _RGBA(0, 255, 255, 90)    clr~&
(5) = _RGBA(255, 0, 255, 90)        CASE 1 'Seirpinshki Triangle  
                vertColor
(0) = INT(p5random
(0, 5))                    f1: kk = 0
                        IF k 
= vertColor
(j
) THEN kk 
= 1                     vertColor(i) = k
            preVert = 1
                i = i + 1
                IF p_e 
> 0 AND p_e 
< 0.33 THEN px 
= px 
+ 0.5 * (x1 
- px
): py 
= py 
+ 0.5 * (y1 
- py
): preVert 
= 1                 IF p_e 
> 0.33 AND p_e 
< 0.66 THEN px 
= px 
+ 0.5 * (x2 
- px
): py 
= py 
+ 0.5 * (y2 
- py
): preVert 
= 2                 IF p_e 
> 0.66 AND p_e 
< 0.99 THEN px 
= px 
+ 0.5 * (x3 
- px
): py 
= py 
+ 0.5 * (y3 
- py
): preVert 
= 3  
 
        CASE 2 'I don't know the name of this fractal, but its nice. It is based on square vertices             x1 = 0: y1 = 0
            x4 = 0: y4 = y3
 
                vertColor
(0) = INT(p5random
(0, 5))                    f2: kk = 0
                        IF k 
= vertColor
(j
) THEN kk 
= 1                     vertColor(i) = k
            preVert = 1
 
                i = i + 1
                IF p_e 
> 0 AND p_e 
< 0.25 AND preVert 
<> 1 THEN px 
= px 
+ 0.5 * (x1 
- px
): py 
= py 
+ 0.5 * (y1 
- py
): preVert 
= 1                 IF p_e 
> 0.25 AND p_e 
< 0.5 AND preVert 
<> 2 THEN px 
= px 
+ 0.5 * (x2 
- px
): py 
= py 
+ 0.5 * (y2 
- py
): preVert 
= 2                 IF p_e 
> 0.5 AND p_e 
< 0.75 AND preVert 
<> 3 THEN px 
= px 
+ 0.5 * (x3 
- px
): py 
= py 
+ 0.5 * (y3 
- py
): preVert 
= 3                 IF p_e 
> 0.75 AND p_e 
< 1 AND preVert 
<> 4 THEN px 
= px 
+ 0.5 * (x4 
- px
): py 
= py 
+ 0.5 * (y4 
- py
): preVert 
= 4  
 
 
            x1 = 0: y1 = 0
            x4 = 0: y4 = y3
 
                vertColor
(0) = INT(p5random
(0, 5))                    f3: kk = 0
                        IF k 
= vertColor
(j
) THEN kk 
= 1                     vertColor(i) = k
            preVert = 1
 
                i = i + 1
                IF p_e 
> 0 AND p_e 
< 0.25 AND preVert 
<> 4 THEN px 
= px 
+ 0.5 * (x1 
- px
): py 
= py 
+ 0.5 * (y1 
- py
): preVert 
= 1                 IF p_e 
> 0.25 AND p_e 
< 0.5 AND preVert 
<> 1 THEN px 
= px 
+ 0.5 * (x2 
- px
): py 
= py 
+ 0.5 * (y2 
- py
): preVert 
= 2                 IF p_e 
> 0.5 AND p_e 
< 0.75 AND preVert 
<> 2 THEN px 
= px 
+ 0.5 * (x3 
- px
): py 
= py 
+ 0.5 * (y3 
- py
): preVert 
= 3                 IF p_e 
> 0.75 AND p_e 
< 1 AND preVert 
<> 3 THEN px 
= px 
+ 0.5 * (x4 
- px
): py 
= py 
+ 0.5 * (y4 
- py
): preVert 
= 4  
 
 
 
            x1 = 0: y1 = 0
            x4 = 0: y4 = y3
 
                vertColor
(0) = INT(p5random
(0, 5))                    f4: kk = 0
                        IF k 
= vertColor
(j
) THEN kk 
= 1                     vertColor(i) = k
            preVert = 1
 
                i = i + 1
                IF p_e 
> 0 AND p_e 
< 0.25 AND preVert 
<> 3 THEN px 
= px 
+ 0.5 * (x1 
- px
): py 
= py 
+ 0.5 * (y1 
- py
): preVert 
= 1                 IF p_e 
> 0.25 AND p_e 
< 0.5 AND preVert 
<> 4 THEN px 
= px 
+ 0.5 * (x2 
- px
): py 
= py 
+ 0.5 * (y2 
- py
): preVert 
= 2                 IF p_e 
> 0.5 AND p_e 
< 0.75 AND preVert 
<> 1 THEN px 
= px 
+ 0.5 * (x3 
- px
): py 
= py 
+ 0.5 * (y3 
- py
): preVert 
= 3                 IF p_e 
> 0.75 AND p_e 
< 1 AND preVert 
<> 2 THEN px 
= px 
+ 0.5 * (x4 
- px
): py 
= py 
+ 0.5 * (y4 
- py
): preVert 
= 4  
 
 
 
            x1 = 0: y1 = 0
            x4 = 0: y4 = y3
 
                vertColor
(0) = INT(p5random
(0, 5))                    f5: kk = 0
                        IF k 
= vertColor
(j
) THEN kk 
= 1                     vertColor(i) = k
            preVert1 = 1
 
                i = i + 1
 
                    IF preVert1 
<> 4 AND prevert2 
<> 2 OR preVert1 
<> 2 AND prevert2 
<> 4 THEN px 
= px 
+ 0.5 * (x1 
- px
): py 
= py 
+ 0.5 * (y1 
- py
): prevert2 
= preVert1: preVert1 
= 1  
                    IF preVert1 
<> 1 AND prevert2 
<> 3 OR preVert1 
<> 3 AND prevert2 
<> 1 THEN px 
= px 
+ 0.5 * (x2 
- px
): py 
= py 
+ 0.5 * (y2 
- py
): prevert2 
= preVert1: preVert1 
= 2                     IF preVert1 
<> 2 AND prevert2 
<> 4 OR preVert1 
<> 4 AND prevert2 
<> 2 THEN px 
= px 
+ 0.5 * (x3 
- px
): py 
= py 
+ 0.5 * (y3 
- py
): prevert2 
= preVert1: preVert1 
= 3                     IF preVert1 
<> 1 AND prevert2 
<> 3 OR preVert1 
<> 3 AND prevert2 
<> 1 THEN px 
= px 
+ 0.5 * (x4 
- px
): py 
= py 
+ 0.5 * (y4 
- py
): prevert2 
= preVert1: preVert1 
= 4  
 
 
 
 
            x1 = 0: y1 = 0
            x4 = 0: y4 = y3
 
                vertColor
(0) = INT(p5random
(0, 5))                    f6: kk = 0
                        IF k 
= vertColor
(j
) THEN kk 
= 1                     vertColor(i) = k
            preVert1 = 1
 
 
                i = i + 1
 
                    IF preVert1 
<> 2 AND prevert2 
<> 2 OR preVert1 
<> 4 AND prevert2 
<> 4 THEN px 
= px 
+ 0.5 * (x1 
- px
): py 
= py 
+ 0.5 * (y1 
- py
): prevert2 
= preVert1: preVert1 
= 1                     IF preVert1 
<> 1 AND prevert2 
<> 1 OR preVert1 
<> 3 AND prevert2 
<> 3 THEN px 
= px 
+ 0.5 * (x2 
- px
): py 
= py 
+ 0.5 * (y2 
- py
): prevert2 
= preVert1: preVert1 
= 2                     IF preVert1 
<> 2 AND prevert2 
<> 2 OR preVert1 
<> 4 AND prevert2 
<> 4 THEN px 
= px 
+ 0.5 * (x3 
- px
): py 
= py 
+ 0.5 * (y3 
- py
): prevert2 
= preVert1: preVert1 
= 3                     IF preVert1 
<> 1 AND prevert2 
<> 1 OR preVert1 
<> 3 AND prevert2 
<> 3 THEN px 
= px 
+ 0.5 * (x4 
- px
): py 
= py 
+ 0.5 * (y4 
- py
): prevert2 
= preVert1: preVert1 
= 4  
 
 
 
 
                        x1 
= rx 
+ rx 
* SIN(_PI(0.4 * i
)): y1 
= ry 
+ ry 
* COS(_PI(0.4 * i
))                        x2 
= rx 
+ rx 
* SIN(_PI(0.4 * i
)): y2 
= ry 
+ ry 
* COS(_PI(0.4 * i
))                        x3 
= rx 
+ rx 
* SIN(_PI(0.4 * i
)): y3 
= ry 
+ ry 
* COS(_PI(0.4 * i
))                        x4 
= rx 
+ rx 
* SIN(_PI(0.4 * i
)): y4 
= ry 
+ ry 
* COS(_PI(0.4 * i
))                        x5 
= rx 
+ rx 
* SIN(_PI(0.4 * i
)): y5 
= ry 
+ ry 
* COS(_PI(0.4 * i
)) 
                vertColor
(0) = INT(p5random
(0, 5))                    f7: kk = 0
                        IF k 
= vertColor
(j
) THEN kk 
= 1                     vertColor(i) = k
 
            preVert = 1
                i = i + 1
 
                IF p_e 
> 0 AND p_e 
< 0.2 AND preVert 
<> 1 THEN px 
= px 
+ 0.5 * (x1 
- px
): py 
= py 
+ 0.5 * (y1 
- py
): preVert 
= 1                 IF p_e 
> 0.2 AND p_e 
< 0.4 AND preVert 
<> 2 THEN px 
= px 
+ 0.5 * (x2 
- px
): py 
= py 
+ 0.5 * (y2 
- py
): preVert 
= 2                 IF p_e 
> 0.4 AND p_e 
< 0.6 AND preVert 
<> 3 THEN px 
= px 
+ 0.5 * (x3 
- px
): py 
= py 
+ 0.5 * (y3 
- py
): preVert 
= 3                 IF p_e 
> 0.6 AND p_e 
< 0.8 AND preVert 
<> 4 THEN px 
= px 
+ 0.5 * (x4 
- px
): py 
= py 
+ 0.5 * (y4 
- py
): preVert 
= 4                 IF p_e 
> 0.8 AND p_e 
< 1.0 AND preVert 
<> 5 THEN px 
= px 
+ 0.5 * (x5 
- px
): py 
= py 
+ 0.5 * (y5 
- py
): preVert 
= 5  
 
 
 
                        x1 
= rx 
+ rx 
* SIN(_PI(0.4 * i
)): y1 
= ry 
+ ry 
* COS(_PI(0.4 * i
))                        x2 
= rx 
+ rx 
* SIN(_PI(0.4 * i
)): y2 
= ry 
+ ry 
* COS(_PI(0.4 * i
))                        x3 
= rx 
+ rx 
* SIN(_PI(0.4 * i
)): y3 
= ry 
+ ry 
* COS(_PI(0.4 * i
))                        x4 
= rx 
+ rx 
* SIN(_PI(0.4 * i
)): y4 
= ry 
+ ry 
* COS(_PI(0.4 * i
))                        x5 
= rx 
+ rx 
* SIN(_PI(0.4 * i
)): y5 
= ry 
+ ry 
* COS(_PI(0.4 * i
)) 
                vertColor
(0) = INT(p5random
(0, 5))                    f8: kk = 0
                        IF k 
= vertColor
(j
) THEN kk 
= 1                     vertColor(i) = k
 
            preVert1 = 1
 
                i = i + 1
 
                    IF preVert1 
<> 1 AND prevert2 
<> 5 OR preVert1 
<> 5 AND prevert2 
<> 1 THEN px 
= px 
+ 0.5 * (x1 
- px
): py 
= py 
+ 0.5 * (y1 
- py
): prevert2 
= preVert1: preVert1 
= 1                     IF preVert1 
<> 1 AND prevert2 
<> 3 OR preVert1 
<> 3 AND prevert2 
<> 1 THEN px 
= px 
+ 0.5 * (x2 
- px
): py 
= py 
+ 0.5 * (y2 
- py
): prevert2 
= preVert1: preVert1 
= 2                     IF preVert1 
<> 2 AND prevert2 
<> 4 OR preVert1 
<> 4 AND prevert2 
<> 2 THEN px 
= px 
+ 0.5 * (x3 
- px
): py 
= py 
+ 0.5 * (y3 
- py
): prevert2 
= preVert1: preVert1 
= 3                     IF preVert1 
<> 3 AND prevert2 
<> 5 OR preVert1 
<> 5 AND prevert2 
<> 3 THEN px 
= px 
+ 0.5 * (x4 
- px
): py 
= py 
+ 0.5 * (y4 
- py
): prevert2 
= preVert1: preVert1 
= 4                     IF preVert1 
<> 1 AND prevert2 
<> 4 OR preVert1 
<> 4 AND prevert2 
<> 1 THEN px 
= px 
+ 0.5 * (x5 
- px
): py 
= py 
+ 0.5 * (y5 
- py
): prevert2 
= preVert1: preVert1 
= 5  
 
'function taken from p5js.bas
'https://bit.ly/p5jsbas
    p5random! 
= RND * (mx! 
- mn!
) + mn!
 
 
 
 [ This attachment cannot be displayed inline in 'Print Page' view ]