Stereogram generator
Open Stereogram generator on Happytails.ai. This view has the same page content and links, with explicit tool capabilities. Read the processing notes before using a tool.
Tool capabilities
{
"id": "stereogram-generator",
"category": "image-tools",
"built": true,
"requirements": "Images stay in this browser and are never uploaded. Use a still PNG, JPEG or WebP depth map up to 20 MiB and 8 million pixels, plus an optional texture image up to 20 MiB and 4 million pixels. DPI 72 to 600, eye separation 1.5 to 3.5 inches, depth range 0.1 to 0.5, seed 0 to 4,294,967,295. The depth map must be wider than eye separation x DPI pixels. Processing stops after 30 seconds. You get a PNG at the depth map size and a JSON report.",
"implementation": {
"fields": [
{
"key": "fileOrder",
"label": "When two files are selected",
"value": "depth-first",
"type": "select",
"values": [
"depth-first",
"texture-first"
],
"labels": {
"depth-first": "First file is the depth map",
"texture-first": "First file is the texture"
}
},
{
"key": "dpi",
"label": "Print or screen resolution (DPI)",
"value": "96",
"type": "number",
"min": 72,
"max": 600,
"step": 1
},
{
"key": "eyeSeparation",
"label": "Eye separation in inches",
"value": "2.5",
"type": "number",
"min": 1.5,
"max": 3.5,
"step": 0.1
},
{
"key": "depthOfField",
"label": "Depth range (0.1 to 0.5)",
"value": "0.33",
"type": "number",
"min": 0.1,
"max": 0.5,
"step": 0.01
},
{
"key": "polarity",
"label": "Near parts of the depth map are",
"value": "white-near",
"type": "select",
"values": [
"white-near",
"black-near"
],
"labels": {
"white-near": "White",
"black-near": "Black"
}
},
{
"key": "dots",
"label": "Random dots",
"value": "black-white",
"type": "select",
"values": [
"black-white",
"color"
],
"labels": {
"black-white": "Black and white",
"color": "Color"
}
},
{
"key": "seed",
"label": "Random seed",
"value": "1",
"type": "number",
"min": 0,
"max": 4294967295,
"step": 1
},
{
"key": "guides",
"label": "Draw two focus dots",
"value": true,
"type": "checkbox"
}
],
"registrationFamily": "raster-masks-and-textures",
"files": true,
"input": false,
"multiple": true,
"accept": ".png,.jpg,.jpeg,.webp",
"maxFileBytes": 20971520,
"deferImagePreview": true,
"note": "Images are processed in this browser and never uploaded. Use still PNG, JPEG or WebP files up to 20 MiB each.",
"experience": {
"automatic": false,
"single": true,
"inputMaxLength": 1000000,
"inputMode": "text",
"label": "Depth map",
"placeholder": "Choose a grayscale depth map, plus an optional texture",
"help": "A still image up to 20 MiB and 8 million pixels; a second file is used as the repeating texture. Up to 1,000,000 characters. Review the settings before running.",
"helpParts": [
"A still image up to 20 MiB and 8 million pixels; a second file is used as the repeating texture.",
"Up to 1,000,000 characters.",
"Review the settings before running."
],
"action": null
},
"mode": "explicit",
"interactive": false
},
"execution": "Browser interface",
"api": null,
"browser_agent": {
"supported": true,
"name": "run_current_tool",
"discovery": "WebMCP on the human page in a supporting browser",
"verification": "See audit/API-AUDIT.md; availability is not verification"
}
}Page guide
Turn a grayscale depth map into a random-dot or textured autostereogram that shows a hidden 3D shape when you look through the page. Download it as a PNG sized for the DPI you choose.
How to use Stereogram generator
- Choose a grayscale depth map, and optionally a small repeating texture image as a second file.
- Set the DPI of the screen or printer and your eye separation in inches.
- Choose whether white or black is near, then run the tool.
- Download the PNG and view or print it at exactly the chosen DPI.
Useful next steps
How it works
The tool follows Thimbleby, Inglis and Witten, "Displaying 3D images: algorithms for single-image random-dot stereograms", IEEE Computer 27(10), 1994, including their hidden-surface removal. For each row, pixels that the two eyes would see on the same 3D point are linked so they get the same color; the separation shrinks for near parts of the depth map. Unlinked pixels get random black and white or color dots from a seeded generator, or colors from your texture tile.
Size, DPI and eye separation
Separation is worked out in pixels as eye separation x DPI, so the picture only shows the intended depth when it is displayed or printed at the DPI you enter. Print with scaling turned off. The depth map must be wider than eye separation x DPI pixels, so at least 241 pixels at 2.5 inches and 96 DPI. The two focus dots near the top are one far-plane separation apart; relax your eyes until they look like three dots.
Depth map tips
Depth comes from the brightness of the depth map, 0 far and 1 near, after the polarity setting. Smooth, simple shapes with large areas work best; fine detail and sharp edges are hard to see. The same depth map, settings and seed always give the same picture.