Obfuscated Fractals

I created a Perl program to draw the Hilbert curve, which was itself in the shape of the Hilbert curve.

#!/usr/bin/perl
use strict;
use warnings;
;$  "=q%ef%;$_  =q~my($i,$  x,$y,$p)=(  0,0,0,pop|  |5);my$r=2  
<<  $p      ;m  y@      i=  ma      p[  (1      )x  $r      ,2  
],1..$  r;subi  {$i[$x  ][$y]-  -}i;su  bp{((1  <$_[0]  ?$y:$x  
        )-          =1          -(          $_          [0      
]&1)*2  ,i)for  -1,1}s  ubf{my  ($  p,$f)=  @_  ;$p--;  my@m=(  
$f  ,3      -$  f,      1-  $f  );  my  @o  =(  3-  $f      ,$  
f,  $f,$f-2)if  $p>0;($_&=  3)  for@o,  @m;@o&  &f  ($p,pop@o)  
,@                          m&                  &p              
(pop@m  )while(@o||@m)  }f$p,(  $p&1)*  2;subb  {y  ,y4102,b#\  
    n,  ;p          ri  nt      }m  ap  {b  fo  r@  $_      }@  
i~;y~   \n~~d;  ;s&b&b  &g;$;=  1;  eval;#  %$  _+28;$  x-=$y;  
my          ($  pi          )=  '3          .1          41      
59  26535'  ;$  ,=  2*2**$  [;  ;my@b=  map[5x  $pi],1  ..$[;s  
{}  {q  %S  {$  b[  $x  ][  $y      ]=  0}      S;  su      bp  
{($_[0  ]>1?$y  :$x+=-  1+$_[0  ]^2*2,  S)for(0,1)  }suba{($l,  
                                $d                              
)=@_;$  l--;@m  =map$_  *4,5-$  d,3-$d  ,$d;@h=map  $_*4,$d+2,  
$d  ,$  d,  3-  $d  if  $l  >0      ;{  a(      $l  ,s      hi  
ft  @h)if@  h;  @m  &&p(sh  if  t@m);(  @m+@h)  &&redo  }}a$l,  
$l          ^2  *2          ;p  ri          nt          @$      
_,$/fo  r@b($x  ,$y,$c  )=qw/0  0*  /;$l=s  hi  ft||4;  $r=$s*  
    2*  *$          l;  @b      =m  ap  [(  ''  )x  $r      ],  
1..$r;  for(0,1){eval[  qw/$x-  -$x++$  y--$y+  +/  ]->[i$_[0]  
];                          $b                  [$              
x]  [$y]=$c;}@  m=split//,  [q  w/rdll  urdruu  ld  /]->[i$d];  
@h  =s      pl  it      //  ,[  qw  /u  ll  dd  rr  ul      uu  
rrddl/  ]->[i$  d]if$l  >0;@m=  sp  lit//,  {q  w/lrdl  rlurud  
        ru          du          ld          /}          ->      
{$d};@  m=spli  t//,su  bstr'r  dllurd  ruuld'  ,3*i$d  ,3;@h=  
sp  li      t/  ,{      qw  /l      ul  ld      rd  rr      uu  
lu  urdrddl/}-  >{$d}if$l<  7;@m=split  //,substr'  ulldd'%}e;  
                                                                

(See a PerlMonks.com node about the obfu (or PM.net, if you prefer))

But, that wasn't enough. I created another “JAPH” with many more features to create L-system fractals.

#!/usr/bin/perl
use strict;
use warnings;
;$_=q~&6P+H;M`4K]N!L$5@QtDLBO1`4#]AKC(mdfFkDqXF$1dEc+D>$3uAA[>Fm9@P&QN[CZ>BJ
X:"*2Bf@Rj)h(@ZIXvH`P6DR0zHAJR#@admir{JKMP,NBZ8IC`*NB$xDHXPJ^DhAH;TVB(.kbyTJ
X>J"HbMBX&D!`al{        ]^m)NXnBhYd+ZCpC        MVEA0`H"8(JbX$L"PjDv`H'C,lOg
Y:MC,2EB@FT]m*CC  tFAD  G@9.%]p@PlPbEPqX  D"G1  E;eY=M@VdD$dx[q<bD|k`4OD8"rT
OBL`$yMELDDHc!tO  DHfD  DadnZ@4+sRF1\\9$  `b3z  Jq\\D2X#%Hd$PD@tieRZ@JTE\\)`
HD!hHA.H@4NaMZB@              iFL,"@&6HP              D>sOdDPY{ELj$H@ETm`P)P
T^`l!d<i`Q\\7P]aF;%NOw  0ne|  B$Yd@IF`r7DJy$5B  @PP%  tF@HEf?Fx>.YKJ@H]9bwem
!,a!`p]71aEH^`'NcwPXyT  K&0L  \\PEl(D<hLLn9PSS  SL%A  OD`PECT`p*!.0A4jyPV{;P
|gev        67`A                    XPDm              /PJ`)TC<OADOmP8apHA|HA
(x:0  `dJX  ALF!  XE@P  $T\\  H`3k  AHF>  fX^{  8@ws%tI@XB`n,Z@@&KfGxNh>J`G@
"AX8  `@Hp  'bdD  @_+>  aXJA  zV!T  E>"@  xB2N  @\\C`GKZA>CXiBJJ`*b$I0BBldpa
qLHH              jBJA        @uIP                    g1[`IC0BQ@@`\\#&q@OCP)
P'B(HpA@F@  hH@$KDdrWI(,C^FQVE\\J4L`HF08  BFX9  TA2?  $]Ap?`lGmDtTQU@dMP?DHx
Q0KLi`HH[1  G.R<k`|<Y*Ch+P[@:?DkqKD|T"]L  ;y13  M\\5  Q7Mp[@}O`!gnLT+0ZFs>TY
B@)H        `VrE4N.Y<AwCPO(`|tvchG                    mNKiSp,oMLUQ@zGXYPqGKH
bf{Q  W/D<`M@"^1WlbFuH@ZYMZOJBS724  w]J@  @R([  @P>YU,^_Sj'@kK$+V[I;MFK8PB*C
ka&Q  Z!|"gBHjKfHPNI<\\r@`HI{Sa>G+  >B[]  JDFt  BKdKUSXHMVK@IJ>D9$A6M@5CXMyn
!&\\        @;`D  aB@`P_hF@eS@)F0G        %k'l        JxdBRI$Y(B        D@8f
DDxDbvRhd6  2D|<  @HIHFi9"^JyF@pC@Bv(BAN48$!:V[`B&xR  9y_dXE,@r#+WzMXA  @D0h
2f:NJGce&)  Vbi%  .\\Y"V]J@QbB9"M@pn)LAD7Zg(hMeZU@[X  yi=8Xxo%wGt.(8az  Unq{
NCr?[NkU4[        Olm7[S,u5[Y.EuB:@`*DHx[$B![X              n6t>        lFb1
VRA[O]e4`L0@D`_SX8|YfPHHVx\\<X%"dY.G#`&@@[V_BF  H+af  vBbm  BPP`  J\\^Y_AVqj
;]$meQLd6@RNh>E`'mpTvnFzHP.8xJD!")X02b6HX$B%(S  \\83  ">Lx  pI0M  bJK@5"{8DD
`Q`xDJRHh(^Z|>U@DAPAFZ@P@D\\<8x@^AMJ^\\~;s{\s}        {}g;        s/(.)/join
"",map{ord$1&2**(5-$_)?1:0}0..5/ge;my(%d,%r);sub p{sprintf"%b",0+keys%d};$d{
chr$_}=p for 32..126;sub r{$;=1+int log(1+keys%d)/log(2);$_="0"x($;-length).
$_ for values%d;%r=reverse%d;s/(.{$;})//?$1:0}$a=$^=$r{r()};while($"=r){$^=~
/(.)/;$.=exists$r{$"}?$r{$"}:$^.$1;$a.=$.;$.=~/(.)/;$d{$^.$1}=p;$^=$.}eval$a

Download the obfuscated version (.txt) or the preƶbfuscation, post-golfing version.

Here are some examples of its output. (I haven't given proper credit on this page yet, but I've documented all the sources.)


penrose
S [7]++[7]++[7]++[7]++[7] 6 8F++9F----7F[-8F----6F]++ 7 +8F--9F[---6F--7F]+ 8 -6F++7F[+++8F++9F]- 9 --8F++++6F[+9F++++7F]--7F F N a=36

plant04
S X X F[+X]F[-X]+X F FF a 20

bush
S ++++F F FF-[-F+F+F]+[+F-F-F] a 22.5 i 4

hex
S F F -F+F+M[+F+F]- M MM a 60

hiway
S FX X FX+FY Y FX-FY F N i 9

dragon1
S FX X -FX++FY- Y +FX--FY+ F N a 45 i 8

circulartile
S X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X X [F+F+F+F[---X-Y]+++++F++++++++F-F-F-F] Y [F+F+F+F[---Y]+++++F++++++++F-F-F-F] a 15

sphinx
S X a 60 X=+FF-YFF+FF--FFF+++X+++F--YFFFYFFF+++ Y=-FF+XFF-FF++FFF+++Y+++F++XFFFXFFF+++ F MM M MM

doublepenrose
a 36 S HHHHH H ++[X][Y] W=YF++ZF----XF[-YF----WF]++ X=+YF--ZF[---WF--XF]+ Y=-WF++XF[+++YF++ZF]- Z=--YF++++WF[+ZF++++XF]--XF F N

kochcurve
a 60 S F F F+F--F+F

square
S F+F+F+F F FF+F+F+F+FF i 4

cantordust
S F F FMF M MMM

quartet
S FB A FBFA+HFA+FB-FA B FB+FA-FB-JFBFA F N H - J +

sierpinski1
a 60 S F F FXF X ++FXF--FXF--FXF++

koch4
a 30 S F++++F++++F F +F--F++F-

plant08
a 18 S XLFFF X [+++Z][---Z]TX Z +H[-Z]L H -Z[+H]L T TL L [-FFF][+FFF]F

hilbert
S X X -YF+XFX+FY- Y +XF-YFY-FX+

hilbert2
S X X=XFYFX+F+YFXFY-F-XFYFX Y=YFXFY-F-XFYFX+F+YFXFY i 3

sierpinski3
S F--F--F F F[--F]F a 60

koch5
S F+F+F+F F F+F-F-FFF+F+F-F i 3

sierpinski2
S FXF--FF--FF F FF X --FXF++FXF++FXF-- a 60

quadkoch
S F-F-F-F- F 'F+FF-FF-F-F+F+FF-F-F+F+FF+FF-F' i 2

fass1
S -L L 'LF+RFR+FL-F-LFLFL-FRFR+' R '-LFLF+RFRFR+F+RF-LFL-FR' i 3

fass2
S -L L 'LFLF+RFR+FLFL-FRF-LFL-FR+F+RF-LFL-FRFRFR+' R '-LFLFLF+RFR+FL-F-LF+RFR+FLF+RFRF-LFL-FRFR' i 2

quadgosper
S -FR L FLFL-FR-FR+FL+FL-FR-FRFL+FR+FLFLFR-FL+FR+FLFL+FR-FLFR-FR-FL+FL+FRFR- R +FLFL-FR-FR+FL+FLFR+FL-FRFR-FL-FR+FLFRFR-FL-FRFL+FL+FR-FR-FL+FL+FRFR F N i 2

terdragon
S F F F++F--F a 60

peano1
S F F F-F+F+F+F-F-F-F+F i 3

dekking
S WZYX F N W FW+F-XFW-F+Z X ++F--Y-F+Z++F--Y-F+Z Y ++F--Y+F-X Z FW+F-X i 5

pentive3
S Q F N P --FR++++FX--FU Q FT++FR----FX++ R ++FP----FQ++FT X FU--FP++++FQ-- T +FU--FP+ U -FQ++FT- a 36

cross
S FX X FX+FX+FXFY-FY- Y +FX+FXFY-FY-FY F N

sierpinskicarpet
S F F F+F-F-F-M+F+F+F-F M MMM i 4

pentigree
S F-F-F-F-F F F-F++F+F-F-F a 72 i 3

hiwaymed
S -X a 45 X X+F+Y Y X-F-Y i 12

sierpinski
S L--F--L--F L +R-F-R+ R -L+F+L- a 45 i 8

lace
a 30 S W W +++X--F--ZFX+ X ---W++F++YFW- Y +ZFX--F--Z+++ Z -YFW++F++Y--- i 6

dragonrnd
a 45 S X F N X FFX+FZ+FFY Y FFX-FZ-FY Z FZ

dragoncurd
S QU F N M N Q=FQ+M-X T=++F--U+M-X U=++F--U-M+Z V=FQ-M+Z W=MW+F-T X=++M--Y+F-T Y=++M--Y-F+V Z=MW-F+V i 11

border1
S H+H+H+H H XYXYXYX F N X FX+FX+FXFY-FY- Y +FX+FXFY-FY-FY i 4

ADH124a2
a 60 S F-F-F-F-F-F F H--H+M+H--H H F++F-M-F++F i 6

benizi1
a 60 S II I '+[H]+[H]+[H]' H F--F--F F 'F++[F++F]--F' i 6

boundary
S oTuz F=N o=Fo+F-T p=++F--u+F-x q=-F+v++F--q r=-F+zFs s=FW T=++F--u u=++F--y v=Fs W=Fo+F-p x=++F--y+F-x y=-F+r++F--q z=-F+zFW

doily
S HHHHHH H --F F '-F[--F--F]++F--F+' a 30

hiwayint
S s F N s=x+F-T T=++F--u+F-T u=z-F+v v=Fs-F+v W=FsW x=xy y=++F--uy z=zW i 10

lawninspring
S x a 22.5 x=[+++++F-F-Fz]Mx++++My y=[+++++F-F-Fz]Mx----My z=W W=u u=[[+++F]M++[+++F]M++[+++F]M++[+++F]M++[+++F]M++[+++F]M++[+++F]M++[+++F]M]z F N M N

moore
S X F N X=FX+FX+FXFYFX+FXFY-FY-FY- Y=+FX+FX+FXFY-FYFXFY-FY-FY i 4

pentant
S x-x-x-x-x F= x=Fx-Fx-Fx+Fy+Fy+Fx-Fx y=Fy+Fy-Fx-Fx-Fy+Fy+Fy a 72 i 3

pentaplexity-0
a 36 S F++F++F++F++F F F++F++F+++++F-F++F i 4

penty
S W F N W=++c15FX--c48FW--c48FY++ X=-c15FZ++c40FY- Y=--c15FZ++c40FY++c48FW-- Z=+c15FX--c40FW+ a 36 i 6

prelace
a 30 S +++c32FW----c15Fzc48FW+ F= y=+++FW----FzFW+ x=+FzFW----Fz+++ W=---Fy++++FxFy- z=-FxFy++++Fx---

strike_s
S UW F N U=FU+F-V V=++F--W++F--Z W=++F--W-F+X X=FUFY Y=+F-VFY Z=-F+X--F++Z

benizi2
a 30 S HHHHHH H '++[F]' F '[-F++M-]+F--M+' M '[-F++M-]+F--M+'

benizi3
a 15 S HHHHHH H '++++[F]' F '[-F++M-]+F--M+' M '[-F++M-]+F--M+'

benizi4
a 30 S LLLLLL L '++P[HHH]' P 'PMMMM' H ----I I +++c32FW----c15Fzc48FW+ F= y=+++FW----FzFW+ x=+FzFW----Fz+++ W=---Fy++++FxFy- z=-FxFy++++Fx--- i 6

benizi5
a 30 S JJ J ------[H----H----H] H +++c32FW----c15Fzc48FW+ F= y=+++FW----FzFW+ x=+FzFW----Fz+++ W=---Fy++++FxFy- z=-FxFy++++Fx---

peanogosper
S FX X X+YF++YF-FX--FXFX-YF+ Y -FX+YFYF++YF+FX--FX-Y a 60 i 4