Sorry, your browser doesn't support canvas element !
Sorry, your browser doesn't support canvas element !
Lilac Chaser Illusion
Stare at the center for a few seconds to experience the 3 phenomena of the illusion
0.5
deg
6
deg
6
positions per second
300
deg
v1.0
© 2020 KyberVision - Innovation in Vision Sciences
Send Feedback
The lilac chaser is a visual illusion also known as the Pac-Man illusion, invented by Jeremy Hinton in 2005: “the illusion illustrates Troxler fading, complementary colours, negative after-effects, and is capable of showing colours outside the display gamut.”

It consists of 12 lilac (or pink, rose, or magenta), blurred discs arranged in a circle (like the numbers on a clock), around a small black, central cross on a grey background. One of the discs disappears briefly, then the next, and the next, and so on, in a clockwise direction. When one stares at the cross for about 5 seconds or so, one sees three different things:
  • A gap running around the circle of lilac discs;
  • A green disc running around the circle of lilac discs in place of the gap;
  • The green disc running around on the grey background, with the lilac discs having disappeared in sequence.
The chaser effect results from the phi phenomenon illusion, combined with an afterimage effect in which an opposite color, or complementary color – green – appears when each lilac spot disappears (if the discs were blue, one would see yellow), and color adaptation of the lilac discs.

This widget lets you explore the role of various parameters:
  • The size and hue of the disks
  • The radius of the “clock”
  • The speed of the gap jump

References:

   O'Shea (2005) Lilac chaser. From Wikipedia, the free encyclopedia

  Bach (2010) Lilac Chaser. from Michael’s Visual Phenomena & Optical Illusions

  Zaidi et al. (2012) Neural locus of color after-image. Current Biology 22(3):220–224
Here is the math behind the basic element of the stimulus:
  
    deg = h+180; b = 1; s = 1
    hi = floor(deg/60); f = (deg-hi*60)/60; p = b*(1-s); q = b*(1-f*s); t = b*(1-(1-f)*s)
    red = rhsb(hi,b,p,q,t); green = ghsb(hi,b,p,q,t); blue = bhsb(hi,b,p,q,t)
    cnt = abs(mod(round(-speed*time),12)-i)>0
    gauss = cnt*exp(-(r*r)/(2*sigma*sigma))
    back = (1-gauss)*0.5
    zr = red*gauss + back
    zg = green*gauss + back
    zb = blue*gauss + back
  

This element is then replicated at different positions (xi, yi) and modified according to:

  nb = 12
  for i = 0 : 11
    xi = radius*cos(i*2*pi/nb)
    yi = radius*sin(i*2*pi/nb)

Where:

  'sigma' is the disk size [σ] (in deg)
  'radius' is the clock radius (in deg)
  'speed' is the gap jump speed (in positions per second)
  'h' is the hue (in deg)
The whole stimulus is generated in real-time using a GLSL shader that runs right inside your WebGL-compatible browser. The plain Math behind the stimulus was converted to this optimized GLSL shader using the new Psykinematix Pro Edition. Translation to Matlab and Python code is also possible !

This whole widget was also fully generated using Psykinematix Pro Edition. The parameters that control the stimulus properties through the sliders are the same as the ones you would define as dependent or independent variables when using the stimulus in an actual psychophysical experiment run in Psykinematix. The widget creation is otherwise fully customizable with your own logo, copyright, links, etc.

To learn more about the widget creation, click on the above "Made With" button !
v1.0
© 2020 KyberVision - Innovation in Vision Sciences