¡WARNING! Anomalous motion illusions might make sensitive observers dizzy or sick. If you start to feel dizzy after seing some images, please leave this page immediately!
While I was searching for other things (as usual), I found the page about optical illusions by Akiyoshi Kitaoka. Of all the illusions showed there, I liked specially the ones about “anomalous motion”. I was so intrigued by the effect that I decided to try to replicate it with POV-Ray and, of course, experiment with some variants of my own.
The effect only shows on the full size images, and when you are NOT fixating at it. At the end of this page you will find the rest of the variations I did until I started to feel sick (the first one of them replicates one of the illusions by Akiyoshi).
Here is the code for one of these variations:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | global_settings{max_trace_level 8} #include "colors.inc" #include "textures.inc" #include "functions.inc" // complementary colors //#declare c1=rgb <.75,0,.25>; //#declare c2=rgb <.25,.75,0>; #declare c1=rgb <1,.5,0>; #declare c2=rgb <0,.5,1>; // repeating pattern #declare r_op=seed(630); #declare xd=1000*rand(r_op); #declare yd=1000*rand(r_op); #declare f_pig=function{ pattern{ gradient x rotate 360*rand(r_op)*z warp{repeat x flip x} } } #declare p1= pigment{ function{ f_pig(x+xd,y+yd,0) } color_map{ [0.0 rgb 1] [0.1 rgb 1] [0.1 c1] [0.5 c1] [0.5 rgb 0] [0.6 rgb 0] [0.6 c2] [1.0 c2] } } plane{z,2 texture{ pigment{p1} finish{Luminous} scale .125 } } // kaleidoscope for the repeating #declare kd=.2; plane{y,0 texture{Mirror} translate -kd*y} plane{y,0 texture{Mirror} translate -kd*y rotate 120*z} plane{y,0 texture{Mirror} translate -kd*y rotate 240*z} // square camera camera{ location <0,0,-1> direction 1*z up 1*y right 1*x } |