How to make a grating stimulus perceptually uniform in spatial frequency?

Hello, I’m new to the forum so go easy on me please! Let me know if I can edit this post to include anything else that would be helpful for finding a solution.

The problem: My goal is to present a grating stimulus which moves across the screen to elicit the optokinetic reflex in mice (sorry I had a link to a description of the reflex, but I can only include two links per post because I’m a new user). The spatial frequency of the grating would ideally be constant from the perspective of the viewer (i.e., the mouse) which means the period of the sine wave needs to increase as a function of the distance from the center of the screen. I also have a small square patch on the bottom center of the window which I flash to signal the beginning of a trial to the data acquisition system (the flash is captured by a light-to-frequency converter which generates a TTL pulse input to the data acquisition board).

My approach: So far, I’ve come across several options:

1.) create my own projection matrix via the viewtools sub-module and apply it to the window. I don’t know how to do this, but if it’s the best/recommended approach I’m all for figuring it out. Is there a tutorial or documentation which shows how to do this (something more comprehensive than PsychoPy’s docs)?

2.) let PsychoPy handle it by using the Warper object. I’m not sure this is actually what I want, but at first glance it seems to work as I expect it to; however, it warps all stimuli on screen which is not desirable as this changes the shape of my square patch I am using to signal the start of a trial. Is there a way to apply the warping to specific stimuli, but not others?

I’m sure this a problem many other people have encountered and has already been solved. Of the two solutions I described, which is the better approach, and are there any other solutions I haven’t considered/am not aware of?

Josh