|
gbSIRTS - Single Image Random Text Stereograms
Most users are familiar with stereograms, the random dot variety and those
which use tiled images in the background. But stereograms can also be made
using text - using characters where other types of stereograms use pixels.
gbSIRTS quickly and easily generates text stereograms - called Single Image
Random Text Stereogram (SIRTS). gbSIRTS also has a "mosaic" mode which
substitutes a small, colorful bitmap for each character.
See my Stereogram Information Center for background
information on stereograms and my gbStereogram
freeware program which supports the other types of stereograms.
gbSIRTS key features include:
- Text-based stereograms (random and custom text)
- Mosaic display
- Stereogram shimmering
- Animated stereograms
- Gradient backgrounds
- Colored text
- Paint mode for manual depth mask generation
- Text, Circle, Rectangle, and Fill paint tools
- Multiple stereogram creation algorithms
- Automatic depth mask generation for standard shapes
- Import standard stereogram depth mask
- Save image
- Online update
|

Text Stereogram (3D image of 2 overlapping squares)

Mosaic Stereogram (3D image of 2 overlapping squares)

Gradient Background
|

Colored Text
|
Manual Paint Mode
|
Imported Depth Mask
|
Text Depth Mask
|
Return to top of document
Overview
Historically, the invention of the stereoscope in 1832 was the first time that
3D images could be viewed, made possible by using two separate images - one for
each eye. But in 1990 it was demonstrated that a single image could also contain
3D image content. The first such single image stereograms used a background of
apparently random dots which hid the 3D content - hence the name Single Image
Random Dot Stereograms (SIRDS). Stereograms really took off when techniques
were introduced for using images as the background, resulting in sharper, more
colorful 3D imagery.
I've released a freeware program called gbStereogram
which can generate both types of stereograms.
This page, however, describes a second freeware program call gbSIRTS which generates
a lesser-known type of stereogram - one which uses text as a background. Stereograms
with text backgrounds are called single image random text stereograms (SIRTS).
The Bad News
Text stereograms are generally not the most popular type of stereogram because they suffer
from a more pronounced layering effect, whereby the 3D objects to appear to made of layers
with pronounced separation. This also limits a text sterograms to no more than about
10 total layers before the brain has trouble visualizing the 3D image.
The layering affect also happens in random dot stereograms, but because the dots are
small, graphical techniques can be applied which significantly smooth out the layering
effect. The smoothing is particularly effective on sterograms which use image backgrounds.
Unfortunately, there are no layer smoothing techniques for text stereograms so while they
are particularly convenient and fast to create using computers, text stereograms do not provde
the colorful eye-candy of the other types of sterograms.
I've considered generating a custom font which might be used to smooth a text stereogram.
The idea would be for the font to contain less white space and the font characters
would not be applied randomly, but rather placed at level transition points to help smooth
out the final image. I'll be looking into this approach and will add the results to gbSIRTS
if it works out!
The Good News
The eye-candy problem aside, text stereograms are every bit as exciting to view. I'm addicted
to 3D imagery in general and even the simplicity of text stereograms is fascinating. As a programmer
text stereograms are particuarly exciting becausing text manipulation of a screen full of data
is much faster than manipulation a screen full of pixels. gbSIRTS can generate text stereogram
images, including animations, far faster than full size images.
There are other tricks which help close the gap. Most importantly, gbSIRTS uses a computer font
which supports fonts down to size 6 - not dots, but small enough for most folks eyes to lose the
distinction of individual characters.
The other good news about gbSIRTS is that while it contains built-in Paint functions to generate
custom depth masks, it can also use the depth masks that are used to generate random dot and image
background stereograms. This means you can search the Internet for find hundreds of existing mask
which can be used in gbSIRTS.
Return to top of document
gbSIRTS Operation
Like most stereogram programs gbSIRTS uses a depth mask to define the depth level of each
point (pixel) on the stereogram. gbSIRTS divides a depth mask, which is the same size as the
stereogram, into a grid of elements. Each element is the size of the characters filling the
stereogram.
When started the first time gbSIRTS automatically generates a text stereogram using one of
the built-in depth masks. Pressing the "Create Stereogram" button will re-generate a new
stereogram using the current depth mask. Pressing the "Shimmer" button will repeatedly create
a steregraom using the current depth mask.
Use the "Shape" button to change to a new built-in depth mask, or to change to Paint Mode,
to create a customer depth mask.
All of the features of gbSIRTS are accessed from the toolbar or from the Depth Mask frame
which is displayed only when gbSIRTS is in Paint Mode
Depth Masks
gbSIRTS can import a depth mask from an existing file. It also allows the user to manually
create a depth mask using simple built-in paint tools. The paint tools provide the ability
to create depth masks from the following elements: square, circle, line, and text.
Built-In Depth Masks
In addition to allowing the creation of a custom depth mask, gbSIRTS can automatically
create depth masks of three types - squares, circles, and bars. When a built-in
shape is chosen from the toolbar, gbSIRTS automatically creates a depth mask with
the selected shapes and will display it when the "Create Stereogram" or "Shimmer" commands
are selected on the toolbar.
Note: In paint mode the custom mask is displayed, which the user can modify. Depth masks
for the built-in shapes are not displayed in paint mode.
Layers
In paint mode, gbSIRTS can generate a depth mask with up to 8 layers. The layer is
determined by the shade of gray used to make the depth mask image and gbSIRTS allows
the selection of eight different shades.
Eight was chosen because it represents the maximum number of layers most users can easily
visualize within a text stereogram.
When a depth mask is imported it may contain many more shades of gray than
gbSIRTS provides. By default, all shades of gray that do not match one of the
8 default layers are placed in a 9th layer.
However, the "Use Custom Levels" context menu selection can be used to have gbSIRTS
provide a finer control of the layers displayed in the 3D image. The context menu
"Custom Levels" allows the user to attempt to display up to 40 total layers. In most
cases, anything display with more than 10-12 layers is very difficult to see, but when
visible the greater number of layers more accurately represents the imported depth mask.
Shimmer
Shimmer refers to repeatedly creating/displaying a new stereogram using the same depth mask. Shimmering
is a means of helping view the 3D content. Even though each new stereogram has a different
set of random characters, the 3D image remains constant and the act of repeatedly displaying
the image within a changing background helps the brain focus on the hidden 3D image.
Animation
The animation capability of gbSIRTS can only be applied to the built-in depth masks. When
both shimmering and animation are activated each successive stereogram will display the
3D images in a new position.
Pattern Width
The algorithm used by gbSIRTS calls for a specified number of characters to be used as
the repeating stereogram background pattern. No one pattern
width is best for all depth masks, so gbSIRTS allows the user to adjust the pattern width
to optimize viewing of the stereograms.
Background Text
Even though a SIRTS is defined as a single image random text stereogram, the background
text does not actually have to be random. A fixed background text can also be used. As
part of creating the stereogram the background text is manipulated but remains easily
distinguised in the resulting stereogram.
Colored Text
By default, gbSIRTS uses black text because when all of the characters are the same color
the brain can readily detect level changes. By randomly colorizing the text the brain has
more difficulty in detecting the 3D image. I added the colored text option just to be able
to see experiment on the effect. You can still see the 3D images, but they are definitely
more difficult to keep visualized.
Font and Character Set
The output font of gbSIRTS is set to 'Courier New', a fixed width font because fixed width
fonts are most conducive to creating the 3D image within the stereogram. gbSIRTS supports
selecting a new font, but using a variable width font will give poor viewing results.
gbSIRTS also allows the selection of 3 sets of characters within the font - all capital letters, all lower case
letters, and all symbols (ASCII codes 33-122). The use of specific character sets changes the
amount of white space, which impacts the ease with which the 3D image can be viewed. However, viewing
is generally not greatly different with any of the three options, although some users may be more affected
than others.
Algorithms
There are four separate algorithms available in gbSIRTS.
- Pattern Reuse - Minimal
- Pattern Reuse - Basic
- Discard Character - Basic
- Image Plane
The first three are based on an
algorithm which creates a pattern of text, then applies modified versions of that pattern
repeatedly from left to right in the image. Two of the three algorithms are allowed to
reuse characters from the pattern, while the third prevents the reuse of characters.
The fourth algorithm (which does not work very well as of release 2.0 - I'm working on it!)
applies a totally different algorithm which positions text characters on the basis of the
separation they would have on an image plane between your eyes and the 3D object being viewed.
My Stereogram Information Center provides more information on
these algorithms.
Mosaic Display
Normally, gbSIRTS displays a text output but when the mosaic display option is selected,
each character is replaced by a small, built-in bitmap. The result is a much more colorful
display. Also, the 3D content is generally much easier to see.
The display of a mosaic takes about 0.3 seconds, so while the shimmering effect can be applied
it will not repeat as quickly as plain text.
Save Images
The Save option of gbSIRTS saves the depth mask, or stereogram - whichever is visible at the
time Save is pressed - to a specific file name in the installation folder of gbSIRTS.
The text stereogram is saved to 'gbsirts_stereogram.bmp'. The depth mask is saved to
'gbsirts_depth.bmp'. gbSIRTS does not support saving the images to specific filenames/locations.
Files are saved as .bmp only.
Also, when gbSIRTS is closed, the current custom depth mask is automatically saved to
the file 'gbsirts_depth.bmp'. This same file is automatically read into gbSIRTS when it
is started.
gbSIRTS can also save the stereogram image, stereogram text, or paint image to the clipboard.
Return to top of document
Paint Mode
gbSIRTS provides several basic functions which allow you to create you own depth masks.
You can create a depth mask from scratch, or you can tweak an imported mask. When the
"Paint Mode" toolbar button is pressed, the following frame is diplayed. The frame,
along with context menu functions, provide all Paint functions.
- Paint Tools
circle, rectangle, text, and fill tools are available
- Depth (Color) Selection
gbSIRTS Paint mode allows the use of up to eight
differnt grayscale colors, corresponding to eight depth levels
- Text
When the text tool is selected, this text is entered in the Paint window. Note that
the textbox supports multiple lines of text.
- Clear
clears the Paint window
- Gradient Colors
selects the start and stop gradient colors
Return to top of document
Toolbar Options
The following functions are available on the toolbar:
- Create SIRTS
display SIRTS using selected text/shape
- Shimmer
rapid recreation of SIRTS. two speeds are offerred. (makes 3D images easier to see)
- Animation
moves stereogram image diagonally up and down
- Speed
fast shimmer speed
- Paint Mode
allow creation of user-defined depth mask
- Copy
copy SIRTS or depth mask to clipboard, whichever is visible
- Save
save SIRTS to file
- Font Name
select text font name
- Font Size
select text font size
- Background Color
select background color
- Foreground Color
select text color
- Use Custom Text
apply custom text to SIRTS background
- Custom Text
specify user-defined text for SIRTS background
- Shape
select from pre-defined or user-defined shapes
- PatternWidth
select width of repeating pattern
- Algorithm
select the algorithm used to compute stereograms
- Mosaic
displays stereogram as colored mosaic rather than as text
- Information
display project information in messagebox
- Email
send email to author
- Exit
close gbSIRTS
Return to top of document
Menu Options
gbSIRTS provides a Help menu, with the following selections.
- Email Author
Opens default web client with email addressed to gbSIRTS author
- Online Help
Opens the default browser at the gbSIRTS Online Help page.
- Online Update
Opens a dialog window from which the latest version of gbSIRTS can be downloaded.
- About
Shows the revision level of the installed version of gbSIRTS
When in SIRTS mode, the following context sensitive menu options are provided:

- Print Form
sends an image of gbSIRTS to the printer
- Copy Stereogram Text
copies stereogram text to the clipboard
- Random Colored Text
randomly sets the color of the text characters
- Colored Text
sets a color, fixed for each character (easier to view than random colors)
- Bold Text
sets stereogram text to bold
- Double Size
doubles the size of the built-in depth masks (square, circle, bars)
- Use Gradient Background
determines whether gradient background colors are applies to
the stereogram. The start/end colors are set in Paint mode.
- Gradient Type
sets the direction of the gradient
- Use Custom Levels
enable display of up to 40 layers in the 3D image
- Custom Levels
select the maximum number of layers
- Character Set
selects between upper case letters, lower case letters, or all
characters with ASCII codes from 33 to 122
- Show Depth Map
prints an overlay showing how gbSIRTS interprets the level of
each area on the depth mask. once displayed, press 'Restore' to return to the depth mask.
When in Paint mode, the following context sensitive menu options are provided:

- Clear
Clears the image in Paint mode
- Restore
Restores the image to the state just before the last Clear command
- Import
Opens a depth mask
- AutoSize on Import
When selected, an imported depth mask is autosized to fit the
current gbSIRTS window. Aspect ratio is maintained.
- Restore/Resize Import Now
Reloads the last imported file
and resizes to the current windows, regardless of the setting
of "AutoSize on Import".
- Use Black Background
Determines whether black or white is used as level zero. Most
stereogram software uses a depth map to get level information, using black as the zero level.
However, when creating depth maps manually, it's easier to see the color levels when a white
background is used for level zero. So, gbSIRTS supports both schemes.
- Filled
Determines whether the circle/square are filled in Paint mode
- Wide Text Spacing
Puts extra space between letters (Paint mode) for easier viewing
- ShapeSize
Sets the size used to draw the circle/square/text in Paint mode
- DrawWidth
Sets the width of the drawing width in Paint mode
- Show Depth Map
prints an overlay showing how gbSIRTS interprets the level of
each area on the depth mask. once displayed, press 'Restore' to return to the depth mask.
- Invert
reverses the grayscale color of all pixels (Paint mode only)
- Print Form
sends an image of gbSIRTS to the printer
Return to top of document
Change History
- Ver 2.5 - 23 May 2006
- Colored Text (fixed color for each character for easier viewing)
- Ver 2.4 - 21 May 2006
- Gradient Background Colors
- Increased spacing between text (Paint mode)
- Ver 2.3 - 20 May 2006
- Animate custom stereograms
- Improvements in Image Plane algorithm
- Revisions to Paint user interface
- Ver 2.2 - 19 May 2006
- 10X speed increase in Mosaic display
- Ver 2.1 - 18 May 2006
- Mosaic font
- Multi-line text
- Fill tool
- Changed how AutoSize works (now applies only on import + manual resize option)
- Additional default color level
- Selection indicator on toolbar FontSize, PatternWidth, Algorithm, and Shape
- Additional Custom Level and ShapeSize options
- Ver 2.0 - 15 May 2006
- Multiple algorithms
- Image inversion
- Ver 1.5 - 12 May 2006
- Added option for multiple algorightms
- Improved accuracy of depth map location
- Increased number of shape size options
- Changed status bar to auto-adjust to width
- Match paint and stereogram windows sizes to remove gap in pattern at bottom of stereogram window
- Ver 1.4 - 9 May 2006
- Font selection
- Maximum number of levels increased
- Save stereogram text to clipboard
- AutoSize depth masks to fit window size
- Set text color and background color
- Ver 1.3 - 6 May 2006
- Color text in stereogram
- Improvements in built-in shapes
- Darkened 6pt font for easier viewing
- Ver 1.2 - 6 May 2006
- Text paint tool
- Filled paint option
- Show Depthmap feature
- New application icon
- Ver 1.1 - 5 May 2006
- user interface changes
- Shape size options
- Draw Width option
- Ver 1.0 - 3 May 2006
- Initial release
|