Background
Background
This specific illusion was designed by Akiyoshi Kitaoka, an experimental psychologist who studies visual illusions as well as makes illusion artworks:
Tiny rainbows in eyes trick brain to see 3D. Does 🟥 bulge up and 🟦 sink down? Close 1 eye. Dots are fully random - no special design here has information for the brain to interpret the protrusion of red and blue differently. This is why chromostereopsis is an optical illusion.
Light rays bend (refract) differently for different colors, passing through eye’s lens as they do passing through water droplets in the rainbow. What causes rainbows to appear colorful also triggers this 3D illusion in our brain. Blue and red rays land at different spots on eye retina and trick our brain in spatial depth interpretation. The illusion is fundamentally binocular - close one eye and it weakens. You can test the strength of the illusion by slowly closing and opening one eye.
Contrasting red-blue eyespots on butterfly wings perhaps were evolutionary features effective to confuse and scare off the predators. Known mentions of the effect go as far as Goethe. Artists used it quite early (already around Renaissance) to induce depth perception, for example in stained-glass.
Minimal few-liner
Minimal few-liner
Vertical:
Vertical:
In[]:=
ListPlot[SeedRandom[1];RandomReal[1,{10^4,2}],AspectRatio->1,Axes->False,Background->Black,PlotRangePadding->.05,PlotStyle->PointSize[.007],ImageSize->550,ColorFunction->Function[{x,y},Blend[Riffle[Table[Red,4],Blue],Mod[x,1]]]]
Out[]=
Horizontal:
Horizontal:
In[]:=
ListPlot[SeedRandom[1];RandomReal[1,{10^4,2}],AspectRatio->1,Axes->False,Background->Black,PlotRangePadding->.05,PlotStyle->PointSize[.007],ImageSize->550,ColorFunction->Function[{x,y},Blend[Riffle[Table[Red,4],Blue],Mod[y,1]]]]
Out[]=
Interactive app
Interactive app
ManipulateListPlotpts,,{s,0,1/waves},SaveDefinitions->True,Initialization{waves=3,SeedRandom[1];pts=RandomReal[1,{10^4,2}]}
Out[]=
GiF generation
GiF generation
waves=3;pts=(SeedRandom[1];RandomReal[1,{10^4,2}]);title=Framed[Column[{Style["CHROMOSTEREOPSIS",40,GrayLevel[.9],FontFamily->"Copperplate"],Style["3D depth illusion in 2D red–blue images",25,GrayLevel[.9],FontFamily->"Verdana"]},Alignment->Center],FrameStyle->Black,FrameMargins10];frames=TableListPlotpts,,{s,0,1/waves,1/waves/50};
In[]:=
SetDirectory[NotebookDirectory[]]
Out[]=
/Users/vitaliyk/Desktop
In[]:=
Export["wavechro2.gif",frames,ImageSize->550,"DisplayDurations"->.03]
Out[]=
wavechro2.gif
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Moving blue red chromostereopsis stripes by Akiyoshi Kitaoka
by Vitaliy Kaurov
Wolfram Community, STAFF PICKS, February 3, 2026
https://community.wolfram.com/groups/-/m/t/3632646
by Vitaliy Kaurov
Wolfram Community, STAFF PICKS, February 3, 2026
https://community.wolfram.com/groups/-/m/t/3632646

