Generating Single Image Stereogram (SIS) images has been an interest of programmers going back to the early-mid 1990's when it was quite a fad. In subsequent years the interest has waned but hardly disappeared as a quick perusal of the web will attest.
What is a SIS?
We're all familiar with the classic side-by-side 3D image-pair. The Viewmaster reels we enjoyed as kids held such pairs of left-right images. A SIS is a single image that contains a 3D image. On casual inspection the left-right pairings aren't so obvious, but nonetheless the optical principles aren't actually different from the classic method.
A SIS is produced on the computer from two components, a depthmap and a texture file. The depthmap is usually a monochrome image where white represents least depth and black furthest away. The computer program uses that information to plot where pixels from the texture image are placed in the final image. The result is a series of vertical texture "bands" that when visually fused reveal the 3D view encoded in the depthmap.
Even as a kid 3D photography was vastly appealing to me. Much later on in the late 1990's the artistic possibilities of SIS imagery were intriguing to me. Back then I developed a way to create sizeable screenprints of SIS subjects, in fact the methods I used then were substantially the same as I've employed recently.
The elusive 90's SIS program...
In 2019-2020 when I decided to re-explore SIS images, it turned out that currently available programs were inadequate. IMO they all had a big defect: they didn't produce symmetrical stereograms, that is, they were written to start at one one edge. The program I used in the 90's started with a texture strip in the center and grew left/right from there. That's the program I wanted to find.
A subsequent intensive (and extensive) search failed to find the software I remembered using. However there were a number of programs from that era, including one program from 1995, that were kinda sorta what I was looking for.
Transforming old software
A huge issue with stereogram programs is "artifacting". It means output of jagged, random-color lines that mar the image and intefere with 3D effects. The old programs that worked produced a lot of artifacts.
Artifacts are often due to mathematical rounding. Pixels are atomic, all or none, half pixels aren't possible. Let's say a sequence of computed image positions are 349, 350.5, 352 pixels from the left edge. But whole numbers only, so pixels are placed at 349, (then 350 or 351), 352, leaving a pixel at either 350 or 351 unfilled with a wrong color at that location.
On close inspection old (and recent) programs showed a number of common elements, boiled down they employed variations on the same basic methods to do their magic. This was useful information. Several weeks of work went into revising, updating and expanding the preliminary SIS program. The effort included developing a novel buffer look-behind algorithm to fill missing pixels solving 99% of the artifact problem. Bottom line, the final program produced nearly artifact-free SIS images, a better performance than other SIS programs I've tried out.
The SIS generator is a very nice console, command-line utility. But most Windows users wouldn't go near it, they're used to the point and click way of interacting with programs.
A "graphic user interface" (GUI) "frontend" was needed. To make it happen I reached for my old friend, the programming language Tcl and its graphic toolkit Tk. Truly the best choice for the purpose.
And it worked! The end result is a very usable Windows app capable of generating outstanding SIS images.
Just one more thing, the final step was making it painless for users to set up the program on their devices. Getting all the moving parts organized is a bit like herding cats but it got there and works right.
Here's the secret: everything needed to create high-quality SIS images has been bundled together on one place, a single folder, nothing else is necessary. Furthermore there's nothing to configure even if you really wanted to. Keep it simple, it's ready to run as soon as setup is done.
MkSIS is 100% free open source software, licensed under the same liberal terms as TclTk. (2-clause BSD license)