Motion Clouds: Synthesis of random textures for motion perception (Leon et al. 2012)

 Download zip file 
Help downloading and running models
We describe a framework to generate random texture movies with controlled information content. In particular, these stimuli can be made closer to naturalistic textures compared to usual stimuli such as gratings and random-dot kinetograms. We simplified the definition to parametrically define these "Motion Clouds" around the most prevalent feature axis (mean and bandwith): direction, spatial frequency, orientation.
1 . Leon PS, Vanzetta I, Masson GS, Perrinet LU (2012) Motion clouds: model-based stimulus synthesis of natural-like random textures for the study of motion perception. J Neurophysiol 107:3217-26 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Connectionist Network;
Brain Region(s)/Organism:
Cell Type(s):
Gap Junctions:
Simulation Environment: Python;
Model Concept(s): Pattern Recognition; Temporal Pattern Generation; Spatio-temporal Activity Patterns; Parameter Fitting; Methods; Perceptual Categories; Noise Sensitivity; Envelope synthesis; Sensory processing; Motion Detection;
#!/usr/bin/env python

Testing the role of different parameters in ther speed envelope.


import MotionClouds as mc

name = 'speed'

fx, fy, ft = mc.get_grids(mc.N_X, mc.N_Y, mc.N_frame)
color = mc.envelope_color(fx, fy, ft) #

# now selects in preference the plane corresponding to the speed with some thickness
name_ = mc.figpath + name
if mc.anim_exist(name_):
    z = color*mc.envelope_speed(fx, fy, ft)
    mc.figures(z, name_)

# explore parameters
if True:
    for V_X in [-1.0, -0.5, 0.0, 0.1, 0.5, 1.0, 4.0]:
        name_ = mc.figpath + name + '-V_X-' + str(V_X).replace('.', '_')
        if mc.anim_exist(name_):
            z = color * mc.envelope_speed(fx, fy, ft, V_X=V_X)
            mc.figures(z, name_)

    for V_Y in [-1.0, -0.5, 0.5, 1.0, 2.0]:
        name_ = mc.figpath + name + '-V_Y-' + str(V_Y).replace('.', '_')
        if mc.anim_exist(name_):
            z = color * mc.envelope_speed(fx, fy, ft, V_X=0.0, V_Y=V_Y)
            mc.figures(z, name_)

    for B_V in [0.001, 0.01, 0.05, 0.1, 0.5, 1.0, 10.0]:
        name_ = mc.figpath + name + '-B_V-' + str(B_V).replace('.', '_')
        if mc.anim_exist(name_):
            z = color * mc.envelope_speed(fx, fy, ft, B_V=B_V)
            mc.figures(z, name_)

Loading data, please wait...