Subject: Random-letter stereograms

From: [email-masked] (William Lewis)
Date: 14 Feb 92 05:58:03 GMT

A while ago there was posted in one of the sources groups, probably
comp.sources.misc, a program named "rl3d" that can generate arbitrary
random-letter stereograms. These are different from the ones
posted here in that they contsin a separate block of text for
EACH eye, but still I'm able to get good effects. 

-- 
      [email-masked]       Seattle, Washington   
     (William Lewis)   |  47 41' 15" N   122 42' 58" W  
       (NeXTmail to [email-masked])

---

From: [email-masked] (David O. Dodge)
Date: 16 Feb 92 05:46:33 GMT

> EACH eye, but still I'm able to get good effects. 

I wrote rl3d, and posted it a few months back (and someone else announced it
on alt.3d when the group was started). It came from an idea someone had on
the 3d mailing list, where they gave a simple demonstration of a random-
letter stereogram (using two panels). I got bored back in December and wrote
up a program which could generate such stereograms.

Rl3d takes a "program" written in a language similar to LISP and generates
stereo pairs from the pictures described in the program. For example, here's
a little rl3d program I wrote last month as a demonstration for someone:

---------------------------------------------------------------------

;; canadian flag, with maple leaf and bars in front

(setq `mapleleaf (CreateStringPicture
"         1"
"        111"
"      1 111 1"
"      1111111"
"      1111111"
"      1111111"
"    1  11111  1"
" 11 11 11111 11 11"
" 11111111111111111"
"  111111111111111"
"1111111111111111111"
" 11111111111111111"
"  111111111111111"
"   1111111111111"
"    11111111111"
"     111111111"
"    11111111111"
"    111  1  111"
"         1"
"         1"
))

(setq `flagborder1 (CreateStringPicture
"11111 " "11111 " "11111 " "11111 " "11111 " "11111 " "11111 "
"11111 " "11111 " "11111 " "11111 "))
(setq `flagborder1 (ComposePictures flagborder1 (OriginAdd flagborder1 0 11)))

(setq `flagborder2 (CreateStringPicture
" 11111" " 11111" " 11111" " 11111" " 11111" " 11111" " 11111"
" 11111" " 11111" " 11111" " 11111"))
(setq `flagborder2 (ComposePictures flagborder2 (OriginAdd flagborder2 0 11)))
(setq `flagborder2 (OriginAdd flagborder2 29 0))

(setq `bigpicture
    (ComposePictures
        (CreateEmptyPicture 35 22 0)
        flagborder1
        flagborder2
        (OriginCenterInside mapleleaf 35 22)
    )
)

(setq `CharSet
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
)
(setq `ViewFormat "cross")
(DrawPicture bigpicture)

;; that's all, folks...

-------------------------------------------------------------------------

When I run this through the rl3d interpreter, I get this:

ha741olOR0LgZCxKXCpQP2J8NklubStYHur  Gha741lOR0LgZCxKXCpQP2J8NklubSctYHu
9WRK7qD4JkjERihMX4bkjGFkve161ghcjCN  g9WRK7D4JkjERihMXp4kjGFkve161gMhcjC
zibKTohgvQfI7g1ovEB0vMVarAZStSLg7ST  OzibKThgvQfI7g1o2vEBvMVarAZStSkLg7S
T8VcTA1GvyxOvg1YzWR8tIHId2tuPy1oLsv  WT8VcT1GvyxOvgs1yzWRitHId2tuPyI1oLs
xgDiBKrCr8h47qpw1Y34VuHYx8F6xOtIJUv  gxgDiBrCr8h47qWpw1Y34VHYx8F6xOItIJU
HcVwLODw363Glc7KFcLQZE5En8JSfA5kxy3  cHcVwLDw363Glci7KFcLQZ5En8JSfAe5kxy
Tkn2t0PwTct6dQPI1mL6fs3CN4pwLK78HKz  ITkn2tPwTct6dQaPI1mL6f3CN4pwLKS78HK
7ujgPQjQLmrA1MDA7wpedSNsrI7qbktiv8Z  E7ujgPjQLmrAA1DLA7wpeSoNrI7qbkwtiv8
3CVgFytSJKP4zIpoPA92pCzcxETitQ3Qlex  U3CVgFtSJHKPSzI3oPA92fCzoxEitQo3Qle
XYrmtkvIPkDmPCTubM3gpYvWVq7YpkDEbEv  sXYrmtvIP7kDmPCTubM3gpYvWVqYpk2DEbE
HUtc9sbAVuLuTMNgB0HKbkz6da7kxoXOZsd  cHUtc9bAVuILuTMNgB0HKbkz6d7kxoCXOZs
Foxifmt61gZUD4pChGNq9WtUxi5qJSlqhSD  mFoxift6o1gZUD4pChGNq9WtUxi5JS8lqhS
ZGBcXEjizSrutORunQJcjaRIJujgzITSrk5  4ZGBcXjizZSrutORunQJcjaRIJugzIYTSrk
hSlYlM14LoHmL2J6nsXmfO36tUVwlwNaLSR  ehSlYl14LoMHmL2J6nsXmfO36tVwlweNaLS
9IfWTIJOByZCXOFgdGvmnunMHSrE92nm5y5  G9IfWTJOByZPCXOFgdGvmnunMSrE92unm5y
1e9EZon6dAXyraDInIRyp4RmpOtWpYJ6V2R  u1e9EZn6dAXySraDInIRyp4RpOtWpYqJ6V2
NoZ0z0Jcl8vYz4NMFiPyVYry3YvKX4H47ez  CNoZ0zJcl8vYzN4NMFiPyVYy3YvKX4GH47e
T6r2pQhA5yzcbYZgBkRuNQbWtURydgFAj4v  YT6r2phA5yzcmbYZgBkRuNQbtURydguFAj4
lC5OZozeB2NyJgrWlsNs1aPYb4NQrqFKt8Z  UlC5OZzeB2NyyJgrlvssS1aPb4NQrqkFKt8
fE1EXG1otMXwFa7eJW1i1svIzEry36H8Jm9  KfE1EX1otMXwFa7eJ3Wi1svIzEry36aH8Jm
RkV410VKbqpWVY5qpeLEz6xEzcdgJal4JOV  cRkV41VKbqpWVY5qpjeEz6xEzcdgJaql4JO
bQhGrsXaXKnGlMjifOpcL8Z0byxaDqPivWJ  sbQhGrXaXKnGlMjifOpcL8Z0byxaDqSPivW

To view this cross your eyes until the panels line up, and the maple leaf
and bars on the flag should appear "in front".

Rl3d is a bit rough, since I did almost no design work and hacked it out
in two days, but it does seem to work. If I get around to it, I plan to
add some more commands that will make picture description easier, and
I will probably try to add commands for generating single-panel stereograms
and maybe even pbm-format bitmaps.

You can get pretty good random-*dot* stereo pairs with rl3d by using a
single pixel on/off font and fooling with the picture parameters to make
really BIG panels.

If you want the source, check out the alt.sources archives for the two
shar files or you can send me mail and I'll send you a
uuencoded-compressed-tar file.

                                      -Dave Dodge/[email-masked]