Autostereogram Art From Depth Maps
Turn bounded depth maps into deterministic autostereograms with geometric separation, constraint links, occlusion handling, viewing aids, access, and edition proof.
Autostereogram art hides a depth map inside one repeated field by constraining which pixels the left and right eyes are meant to pair.
This guide builds that illusion from geometric separation, row constraints, hidden-surface handling, deterministic texture, Canvas delivery, viewing aids, accessibility, and an edition receipt that preserves the actual depth source.
Autostereogram art begins with view geometry
Begin the studio study with viewing geometry: image width, display scale, assumed eye separation, viewing distance, and parallel or crossed fusion. These values determine the safe disparity range before any motif is drawn. A hidden form that demands impossible convergence is not mysterious; it is simply outside the chosen geometry.
Choose the physical or assumed viewing width, pixel density, eye separation, and comfortable depth range before drawing. These values determine pixel separation; arbitrary offsets may create an image that looks patterned yet is difficult or impossible to fuse. The stereogram studio puts single-image random-dot stereogram in front of the edition maker as the opening constraint on autostereogram art. Viewing assumptions are compositional constraints, not fine print added after export.
In the stereogram studio, a viewing geometry card is not supporting material; it is the decision record. The edition maker looks there for canvas size, display scale, assumed eye separation, viewing distance, depth range, and safety bounds.
Prepare a bounded depth map
Instead of accepting autostereogram art at face value, the edition maker reads the stereogram studio through SIRDS algorithm. A strong depth silhouette remains meaningful both inside and outside the stereoscopic effect.
The depth map is the sculpture behind the texture. Normalize near and far values, soften abrupt spikes, preserve readable silhouettes, and inspect ramps, planes, and thin features before encoding them. Publishing that grayscale source beside the illusion also gives readers an accessible account of the form they may not fuse binocularly.
Rehearse one uncomfortable move: use flat, ramp, step, thin line, hole, and out-of-range fixtures. If the renderer guesses whether white means near or far, the stereogram studio tells the edition maker to stop.
Normalize the source into a documented near-to-far convention, clamp unsupported discontinuities, and preserve a visible grayscale proof. Soften or redesign needle-thin features that cannot survive the horizontal correspondence geometry instead of blaming the final texture.
The geometric method and raster surface are grounded in Thimbleby, Inglis, and Witten SIRDS paper, and WHATWG Canvas element. The SIRDS paper explains symmetric constraint construction, depth correction, hidden surfaces, and common artifacts; Canvas supplies the browser raster surface. The composition still needs an honest viewing guide and a non-visual description because binocular fusion is not available to every reader.
- Depth: Bound near and far
- Separate: Map geometry
- Link: Solve visibility
- Texture: Color classes
Convert depth into pixel separation
Separation converts depth into horizontal correspondence. Write the equation with its units and clamp it to the viewing budget, then plot the result for a near plane, far plane, and ramp.
A monotonic depth change should produce a predictable disparity change without crossing or reversing linked pixel positions. For the edition maker, depth map is what makes the stereogram studio's autostereogram art boundary measurable. Plotting disparity makes the hidden geometry available to ordinary visual debugging.
Implement the chosen stereoscopic relationship as one named function that maps bounded depth to horizontal separation. Verify monotonicity, rounding, minimum pattern period, and output scale independently before introducing occlusion or color.
Compare a disparity calibration curve against a fresh attempt to sweep the full range and compare against hand-computed reference points. The edition maker uses the gap, not the prettier artifact, to revise the stereogram studio, at the intended viewing distance. A printed ruler can validate physical output scale before exhibition.
Solve row constraints symmetrically
Before another step, the stereogram studio requires row, depth sample, left index, right index, union decision, representative, conflict, and seed to live in a row equivalence trace. The edition maker treats an empty field as an unresolved decision.
Row construction is a constraint problem rather than random copying. Candidate left and right pixels become equivalent when geometry permits, and symmetric links prevent one traversal direction from dominating the result. A disjoint-set structure makes those equivalence classes inspectable before color is assigned.
For each scanline, create left-right equivalence constraints so paired pixels receive the same eventual color without directional bias. Use a clear disjoint-set or equivalent structure whose parent changes and conflict resolution can be tested apart from rendering. The practical autostereogram art test in this stereogram studio is Canvas rendering, and the result belongs to the edition maker. Constraint classes reveal the image's structure before color makes it difficult to see.
Remove hidden and conflicting surfaces
A background correspondence should not cross a nearer surface that would occlude it for one eye. Apply a documented visibility test and reject inconsistent links before union, because echoes and ghost contours often come from preserving impossible pairings. A change in single-image random-dot stereogram forces the edition maker to revisit how the stereogram studio handles autostereogram art. Occlusion handling protects crisp form boundaries from becoming doubled ghosts.
Hidden surfaces complicate naive links. A foreground point can occlude a deeper correspondence, while two proposed pairs may conflict over the same pixel. Visibility tests should reject impossible links before union, reducing echoes and tearing near depth discontinuities instead of trying to paint over them later.
Try to break the boundary by choosing to use a near rectangle over a far plane and inspect edges for echoes. The edition maker reopens the stereogram studio design as soon as every calculated separation becomes a constraint regardless of visibility.
| Fixture | Depth | Expected link | Risk |
|---|---|---|---|
| Plane | Constant | Period | Easy |
| Ramp | Smooth | Monotonic | Stretch |
| Step | Abrupt | Occlude | Echo |
| Needle | Thin | Unstable | Redesign |
Author texture after geometry passes
Texture arrives after geometry passes. Seeded noise, limited palettes, marks, or small drawn fragments can color each resolved equivalence class while preserving enough local variation for fusion. Large high-contrast symbols may look attractive alone yet overwhelm the subtle repetition that carries depth.
Repeat reuse one link graph across noise, stripe, typographic, and limited-palette textures and capture what changed in a seeded texture grammar. That contrast gives the edition maker a practical debugging view of the stereogram studio. Before approval, the edition maker uses SIRDS algorithm to expose a hidden autostereogram art premise in the stereogram studio. Texture should support binocular correspondence first and expressive surface style second.
Assign deterministic colors or marks to equivalence classes after the link structure is stable. Tune pattern frequency, palette, local contrast, and editorial motifs without encoding a second accidental depth signal that competes with the intended correspondence, under several seeded texture editions. Keep geometry hashes constant while comparing aesthetic treatments.
Render with Canvas predictably
Keep canonical pixels or class assignments separate from display scaling, then draw through Canvas at a known backing resolution. Avoid smoothing that blends class boundaries unintentionally and provide a static fallback when worker or bitmap transfer paths are unavailable.
The stereogram studio makes depth map an operating control rather than an implied part of autostereogram art for the edition maker. A canonical raster separates responsive presentation from the encoded optical edition.
Canvas rendering should make the edition reproducible. Fix pixel ratio, backing dimensions, seed, image smoothing, palette conversion, and export path, then compare canonical pixel digests. Responsive display can scale the finished raster, but regenerating at arbitrary CSS sizes would change the encoded viewing geometry.
The durable pair is a raster delivery proof plus canonical size, device scale, smoothing, worker mode, transfer path, output format, and pixel digest. It lets the edition maker audit the stereogram studio after the original session has disappeared.
- 1Depth
Bound near and far
- 2Separate
Map geometry
- 3Link
Solve visibility
- 4Texture
Color classes
Design viewing and access together
Run the hostile case until it can review with viewers who use different displays and with non-stereo access modes. If the article's thesis is available only to people who can fuse the image, the stereogram studio has handed the edition maker a specific redesign task. The edition maker keeps autostereogram art open until the stereogram studio has tested Canvas rendering under pressure. Access modes expand the artwork without pretending every viewer perceives depth identically.
Viewing guidance is part of the artwork's interface. Offer simple parallel-view instructions, optional guide dots, a calibration strip, zoom advice, and permission to stop if discomfort appears. Keep the visible depth source and textual description adjacent so the concept remains available without stereopsis.
Offer simple parallel-view instructions, optional guide marks, a small calibration strip, and permission to stop if viewing is uncomfortable. Always include the visible depth map or silhouette and a textual description so meaning does not depend on stereopsis.
The studio technique sits near anamorphic typography, canvas dithering, quadtree mosaics, and offscreen canvas posters. Anamorphic type, dithering, adaptive mosaics, and off-thread posters manipulate perception or raster structure for different reasons. Preserve each technique's named algorithm so the autostereogram is not presented as a generic texture filter.
Archive a reproducible hidden image
Release means the stereogram studio can show the edition maker a reproducible single-image random-dot stereogram result for autostereogram art. The edition record keeps an ephemeral illusion connected to durable authorship. Archive the piece as an edition rather than an isolated PNG. Geometry, depth source, correspondence algorithm, occlusion policy, texture seed, palette, dimensions, viewing assumptions, renderer version, and output digest describe how the hidden form was made and allow an exact clean-machine regeneration.
Save geometry, depth source, link algorithm, visibility rule, seed, palette, dimensions, viewing assumptions, renderer version, and export digest as one edition record. The final raster should be regenerable without claiming every viewer will perceive identical depth. No stereogram studio release is complete with an autostereogram edition receipt alone. The edition maker also needs a run that can regenerate on a clean machine and compare canonical pixels and constraint counts and an explanation for any mismatch.
The deterministic calibration fixture proves that greater normalized depth maps monotonically to the intended separation series.
Runnable artifact — autostereogram-depth-links.test.mjs
import assert from "node:assert/strict";
const separation=(depth,eye=8)=>Math.round(eye*(1-depth*.35));
const linkRow=depth=>{const parent=depth.map((_,i)=>i),find=x=>parent[x]===x?x:(parent[x]=find(parent[x]));for(let x=0;x<depth.length;x++){const s=separation(depth[x]),left=x-Math.floor(s/2),right=left+s;if(left>=0&&right<depth.length&&depth.slice(left+1,right).every(z=>z<=depth[x]))parent[find(right)]=find(left)}return parent.map(find)};
const plane=linkRow(Array(24).fill(0));const step=linkRow(Array.from({length:24},(_,i)=>i>=8&&i<16?1:0));
assert.equal(plane[8],plane[16]);assert.notDeepEqual(step,plane);assert.deepEqual(linkRow(Array.from({length:24},(_,i)=>i>=8&&i<16?1:0)),step);
console.log("PASS: depth links are deterministic");
Run node autostereogram-depth-links.test.mjs. Expected receipt: PASS: depth links are deterministic.
Build autostereogram art from a bounded, inspectable depth map and a deterministic constraint solver, then publish the source silhouette and text description beside the illusion. Reopen the edition when geometry, eye model, texture, occlusion, raster scale, or export medium changes.