Not really obfuscated, but very ugly.
I hope
system('clear')&&system('cls') will work on most systems, but if not, please adjust..Also, please adjust $w and $h to your terminal's width and height. (I could do it on Win32, but how can it be done cross-platform?)
close STDERR;
($w,$h,$")=(80,25);
@c='/GOoO#'=~/./g;
($t='X6X6X6X6X6X5XXXXXXXXX5XX5XX5XX5XX5XX5X1XXXXX1XXXXXX7X6X1XXXXX1X6X
+7XXXXXXXXXXXXX3
X6X6X6X6X6X4XXXXX1X5XX5XXXXXXXXX5XX5XX5XX4XXX3X1XX3X1XX2X2XX2X2XX1
+X3XXX4X1XXXXX1
X5XX5XX5XX5XX5X1XXXXX1XXXXXXX3X6X6X6X6X6X3X5XX5XX5XXXXXXXXX5XX5XX5
+XXXXXXXX6X6XXX
XXXXX6X6XXXXXXXX1XXXXXXX5XX5X1XXXXXX2X3X1X4XX5X1XXXXXXX5XX5X1XXXXX
+X6X6X6XXXXXXXX
6X6XXXXXXXX6X6XXXXXXXX1XXXXXXX5XX5X1XXXXXX2X3X1X4XX5X6X6X6X6X6X6XX
+XXXXXXX5XX5XX5
XXXXXXXXX5XX5XX5X1XXXXX1X5XX5XXXXXXXXX5XX5XX5XXXXXXX7X6X6X6X6XXXXX
+XX1X5X2X3X3X2X
4X1X3X2X2X3XX5XXXXXXXX6X6XXXXXXXX6X6XXXXXXXX1XXXXXXX5XX5X1XXXXXX2X
+3X1X4XX5X')=~s g\s+ggg;$t=~s/(\d)/' 'x$1/eg;
sub t{my@h;$h[$$_[1]][$$_[0]+$w/2-6]=$$_[3]for sort{$a->[2]<=>$b->[2]}
+@p;@h;sub p}s(())
(JsutAntoherPelrHcake);s qq@p=map{$y=$_;$t=~s/(.{7})//;map{$x=$_;
map{[$x*2+1,$y*2+6,$_,$_+3],[$x*2,$y*2+6,$_,$_+3],[$x*2+1,$y*2+7,$_,$_
++3],[$x*2,$y*2+7,$_,$_+3]}-2..2}
grep $1=~/^.{$_}(?! )/,0..-1+$1=~y cccc}0..6;
b(11/7);system('clear')&&system('cls'),p t,b(0.55/7)for 1..80qge;
sub p{print map "@c[@{$_[$_]}[0..$w-2]]\n",0..$h-2,select$c=>$c=>$c=>0
+.01}
sub b{@{$_}[0,2]=((cos($_[0])*($$_[0]-7)-sin($_[0])*($$_[2])+7),(sin($
+_[0])*($$_[0]-7)+cos($_[0])*($$_[2])))for@p}