Previous Up Next

PostScript signature programs

Signature programs are short programs that people have been using as part of their signature. They are small (2 to 4 lines) programs, that are often rather cryptic because they have to save space as much as possible. The PostScript program language is rather compact programming language which allows to write cryptical code. For this reason it is not strange that it is often used for signature programs.

Peace symbol by Ben Mesander

{chinet,uokmax}!servalan!epmooch!ben  (Ben Mesander)   War in gulf:
newpath 288 396 216 0 360 arc 288 612 moveto 288 180 lineto 288 396
moveto 136 244 lineto 288 396 moveto 440 244 lineto 36 setlinewidth
stroke showpage

Signature of David Brooks

400 72 translate/L{lineto}def/C{curveto}def 0 0 moveto 0 24 L 9 24 10 0 5 0 C
18 14 L 21 -6 23 0 27 16 C 32 0 L 37 0 45 12 45 24 C 45 0 L 45 24 L 54 22 50 20
46 10 C 59 9 51 6 49 0 C 58 10 66 -4 78 4 C 87 20 L 93 0 99 3 104 6 C 108 0 L
1 setlinejoin stroke showpage (David Brooks, Open Software Foundation) pop

A Tank by Frank Tore Johansen

% Frank T. Johansen % Have you shot your wolf today?
(T,'''$T$<.'^L   I'''''''9!$O&$R   !2)24 24 scale newpath/P true
def 2 21 moveto{dup 36 eq{pop/P P not def}{dup 7 and 4 sub exch 56 and 8 div 4
sub P{rlineto}{rmoveto}ifelse}ifelse}forall stroke showpage %        *BOOM* 8)

Square and smiley by Shaun Lowry

5 setlinewidth/c{/y exch def/x exch def x y moveto -10 0 rmoveto 20 0 rlineto
-10 20 rmoveto 0 -40 rlineto stroke}def 206 750 moveto 406 750 lineto 406 550
lineto 206 550 lineto closepath stroke 306 410 90 360 0 arc stroke 276 260 c
336 260 c 306 200 60 180 0 arc stroke showpage

Random balls by Eric Noyau

% xxxxxxx@xxxx.xxx (Eric Noyau)                            Small NeXTMailok %
/d{def}def/i{add d}d/Z{rand 2147483647 div mul d}d 99 -2 9{-1 1/X 500 Z/Y 700
Z/C .3 Z{C setgray/r exch d X Y r 0 360 arc fill/X X .5 i/Y Y .6 i/C C 1 C sub
r div i}for}for showpage             % Be carefull ! I'm a .signature virus...

42 by Bertrand Petit

%!ps Bertrand Petit alias >elrond le demi-Elfe< -xxxxxx@xxxxxxxs.xxxxx.xx.xxx
550 0 translate 90 rotate /NewCenturySchlbk-Bold findfont 690 scalefont setfont
-5 15 moveto (42) true charpath clip /Helvetica-Bold findfont 8 scalefont
setfont 0 9 800 { dup 360 mod 360 div 1 1 sethsbcolor /y exch def rand 10 mod
neg 11 800 { y moveto (42) show }for }for clippath 4 setlinewidth 0 setgray
stroke showpage

Raytracing by Takashi Hayakawa

%!IOPSC-1993 %%Creator: HAYAKAWA Takashi<xxxxxxxx@xx.xxxxxx.xx.xx>
/C/neg/d/mul/R/rlineto/E/exp/H{{cvx def}repeat}def/T/dup/g/gt/r/roll/J/ifelse 8
H/A/copy(z&v4QX&93r9AxYQOZomQalxS2w!!O&vMYa43d6r93rMYvx2dca!D&cjSnjSnjjS3o!v&6A
X&55SAxM1CD7AjYxTTd62rmxCnTdSST0g&12wECST!&!J0g&D1!&xM0!J0g!l&544dC2Ac96ra!m&3A
F&&vGoGSnCT0g&wDmlvGoS8wpn6wpS2wTCpS1Sd7ov7Uk7o4Qkdw!&Mvlx1S7oZES3w!J!J!Q&7185d
Z&lx1CS9d9nE4!k&X&MY7!&1!J!x&jdnjdS3odS!N&mmx1C2wEc!G&150Nx4!n&2o!j&43r!U&0777d
]&2AY2A776ddT4oS3oSnMVC00VV0RRR45E42063rNz&v7UX&UOzF!F!J![&44ETCnVn!a&1CDN!Y&0M
V1c&j2AYdjmMdjjd!o&1r!M){( )T 0 4 3 r put T(/)g{T(9)g{cvn}{cvi}J}{($)g{[}{]}J}J
cvx}forall/moveto/p/floor/w/div/S/add 29 H[{[{]setgray fill}for Y}for showpage
A little long for a signature, but very nice. It takes some time to complete. If you cannot wait, have a look at this GIF.

Mandelbrot by Staffan Ulfberg

/D{def}def /d{.00017 add D}D /C{2 copy dup mul exch dup mul}D /g 150 string
D /y .29 D 150 150 8[.4 0 0 .4 -45 -90]{/x -1.2 D 0 1 149{x y /n 300 D{/n n
5 sub D C exch sub x add 3 1 roll 2 mul mul y add C add 4 gt n 5 eq or{exit
}if}loop pop pop g exch n put /x x d}for /y y d g}image showpage

A fractal signature by Markku Rossi

%!  -Markku Rossi
%--------------------------------------------------------------------------
/d{def}def/t{translate}d /r{rotate}d /F{0 0 moveto 0 10 rlineto stroke 0 10
t }d/P{22 r}d/M{-22 r}d/S{gsave}d/R{grestore}d 240 90 t/E{dup 1 eq{F}{dup 1
sub E E M S M E P E P E R P S P E M E M E R pop} ifelse} d 5 E pop showpage

Yin-Yang symbol by John Tromp

%!PS                       %  -John Tromp (http://www.cwi.nl/~tromp/)
42 42 scale 7 9 translate .07 setlinewidth .5 setgray/c{arc clip fill
setgray}def 1 0 0 42 1 0 c 0 1 1{0 3 3 90 270 arc 0 0 6 0 -3 3 90 270
arcn 270 90 c -2 2 4{-6 moveto 0 12 rlineto}for -5 2 5{-3 exch moveto
9 0 rlineto}for stroke 0 0 3 1 1 0 c 180 rotate initclip}for showpage
This was designed to be the logo of the Go Club Satori in Heerhugowaard, Holland. (See also his Maze signature.)

Another programming signature by him is this:

%!PS               %  -John Tromp (http://www.cwi.nl/~tromp/)
300 160 translate 2{-1 1 0 90 31 90 237 474 0 474 31 90 237 0
0 0 7 31 90 moveto{lineto}repeat scale}repeat stroke showpage
Or even shorter is this:
%!PS         %  -John Tromp (http://www.cwi.nl/~tromp/)
300 300 translate 2{-1 1 0 84 61 0 99 116 0 84 0 215 215
0 6 0 0 moveto{lineto}repeat scale}repeat stroke showpage

"acb" by Andrew C. Bulhak

/d/def/s/scale/u/dup/f/forall{load def}{loop}stopped pop/r{u 1 lt{-1 0 moveto 1
1 lineto stroke}{[[(ha_a0\211)(db\\h\(~)(eVhdOj)(jd_dbd)(dh\\bT\200)(f_ab^\211)
(c]ffe\201)(`@h`x\200)(cZhd#h)(hb^d0v)(`Lh`8t)(eVhd\223~)(gj^a\230j)(h_ab\210a)
(gd^c\211\205)]{[exch{96 sub}f]}f]{gsave 1 64 div u s concat u 1 sub r grestore
}f}ifelse pop}d 240 u s 1.25 1 translate 4 r showpage% -
This .signature renders his initials, "acb", as an iterated function system.

Funny face by Thomas Landgraf

%! Thomas (Landi) Landgraf,
/d{def}def/m{moveto}d/s{stroke}d/X{{52 sub 18 mul}forall}d/l{lineto}d/a{0 360
arc}d(@9J>@:J?I>JLJNORINNSHOMTGOLUFPKV0J2?>D<L@@AACE>@DFDFDDBE)X 3{m curveto s}
/r{repeat}d r 8{m l s}r(?9>8><?:@<@8@MAN6)X a s 7 a fill m 5{l}r fill showpage

Fractal by Alun Jones

/d{def}def/a{add}d/s{sub}d/u{usertime}d % Alun Jones, IBS, UW Aberystwyth
/x 0 d/y 0 d 9 9 scale 35 47 translate/b u d .1 setlinewidth{u b s 6e4 gt
{exit}if/x x 4 a d/v 1 x s d/x y 2 x mul 3 s abs sqrt x 0 lt{neg}if a d/y
v d x y moveto .1 0 rlineto stroke}loop showpage% You may need %!PS-Adobe
It's a fractal nicked from the X screensaver, in postscript. His original attempt was in colour, but was just too wide to get away with (78 cols):
/d{def}def/a{add}d/s{sub}d/r{rand 99 mod 99 div}d/u{usertime}d/x 0 d/y 0 d 320
430 translate 9 9 scale/n -1 d/b u d .1 setlinewidth{/n n 1 a d n 999 mod 0 eq
{r r r setrgbcolor u b s 6e4 gt{exit}if}if/x x 4 a d/v 1 x s d/x y 2 x mul 3 s
abs sqrt x 0 lt{neg}if a d/y v d x y moveto 0.1 0 rlineto stroke}loop showpage
He has never sent either to a postscript printer, and has only tried them on GhostScript, but RiScript (on Acorn) can hack them too.

He has some more signature programs.

Smiling Dog by Jonathan Monsarrat

%! Jon Monsarrat     Brown University %! Obfuscated PostScript
0 0 moveto 15 setlinewidth(qlllll-??LHHL??llH?hH7t,7olCAHH@)1 setlinejoin{dup
10 mul rotate 80 lt{50 0 rlineto}{50 0 rmoveto}ifelse}forall stroke showpage

Another Mandelbrot by David Allsopp

/d{def}def/u{dup}d[0 -185 u 0 300 u]concat/q 5e-3 d/m{mul}d/z{A u m B u
m}d/r{rlineto}d/X -2 q 1{d/Y -2 q 2{d/A 0 d/B 0 d 64 -1 1{/f exch d/B
A/A z sub X add d B 2 m m Y add d z add 4 gt{exit}if/f 64 d}for f 64 div
setgray X Y moveto 0 q neg u 0 0 q u 0 r r r r fill/Y}for/X}for showpage

Signature program by Goran "CHUPCKO" Lazic

He also has some signature programs in C and Brainf***.
 /d{def}def/i{index}d/a{add i}d/b{0 1 2 i 1 sub}d/f{for}d/e{exch}d/w{
 dup}d/m{2 mul}d 49 b{360 mul 1 i div w cos 3 1 roll sin e}f 0.0001
 setlinewidth 306 396 translate 250 w scale b{b{w m 4 a e m 3 a 2 i
 w m 6 a e m 5 a newpath moveto lineto stroke}f pop}f showpage quit

/d{def}def/i{index}d/a{add i}d/b{0 1 2 i 1 sub}d/f{for}d/e{exch}d/w{dup}d/m{
2 mul}d/r{2 roll}d 19 b{1 i div w 1 e sub w 1 5 r 0 e 6 r w 0 8 r 1 e 9 r} f
m m 0.0001 setlinewidth 56 146 translate 500 w scale b{b{w m 4 a e m 3 a 2 i
w m 6 a e m 5 a newpath moveto lineto stroke}f pop}f showpage quit % CHUPCKO

/d{def}def/t{2 index{neg exch}{exch neg}ifelse}d/n{3 2 r not 3 1 r}d/f{2
copy rlineto}d/p{4 3 r dup 0 ne {1 sub 4 1 r t n p n f n t n p f p n t n
f n p n t 4 3 r 1 add}if 4 1 roll}d/r{roll}d 0.0001 setlinewidth newpath
50 140 moveto 8 true 2 0 p stroke showpage quit% CHUPCKO's Peano Fractal

/t { 2 mul 3 add index add 2 div } def 106 223 506 223 306
 569 2 copy 49999 { rand 3 mod exch 1 index t 3 -2 roll t
exch 2 copy 0.0001 0 360 arc stroke } repeat showpage quit

Signature program by Laurent Demailly

%!PS-Adobe-1.0 EPSF-10.     %  PS GoBan (c) 1996 by Laurent Demailly
%%BoundingBox: 0 0 150 150  % *** http://www.demailly.com/~dl/go/ ***
/D{def} def/d{dup}D/e{exch}D/s{stroke}D/l{lineto}D/M{mul}D/f{fill}D/S {setgray}D
/R{grestore}D/m{moveto}D/z 9 D/c 15 D/x z c M D/p{42 sub d z mod 1  add e z idiv
1 add gsave 1 index c M 1 index c M c .5 M 1 0 arc gsave f R .5 S s c  M e c M e
c .3 M 270 360 arc s R}D 0 0 x 2 M 1 0 arc .9 .7 .5 setrgbcolor f s 0  S c c x{d
c m d x l d c e m x e l}for s(BeJR\\IHP>=6U){p}forall 1 S(?TS[QcGZFOC) {p}forall
He also has a Mandlebrot signature.

Signature program by André Auto Moreira

%!PS
/j 4 selectfont 0 0 99999{2 copy moveto(*)show rand 7 mod 0 eq{[-.2 .2 .2 .2 9 9]}{[.9 -.2 .2 .9 99 199]}ifelse transform}repeat


Signature programs | home and email