Psychopy on mobile devices

I’m not sure if this has been covered somewhere else and I’ve just missed it, but I’m wondering how much support there is for using psychopy on Android or IOS. I found a discussion about this from 2012 that didn’t seem too encouraging, but I’m hoping the situation has changed in the last 4 years perhaps?

I have a simple program that would work much better if participants could respond by tapping on a touchscreen, and I’d rather just use my iPad or Nexus tablet than have to buy a windows tablet.

Generally speaking, being able to use a tablet in a psychophysics experiment seems like a very powerful advantage.

Thanks,
Fahed

1 Like

Hi @Fahed, I think one major limitation is Pyglet, which – to my knowledge – does not easily run on mobile devices (but correct me if I’m wrong!). PyGame, otoh, does support Android, but is not well supported by PsychoPy anymore. There is currently some ongoing development of a JavaScript interface to PsychoPy (which isn’t public yet), which will allow users to run PsychoPy experiments on many more platforms, including mobile ones!

Another major limitation is (good) support of touch interfaces. On touch devices there is usually no visible mouse cursor, and the entire UI must be redesigned. For example, I believe an ordinary rating scale would have to be changed to some kind of slider to create a good UX. There is still a very very long way to go, but I’m convinced that we will eventually get there.

1 Like

Yes, the app isn’t going to be ported over any time soon - as @richard points out there are many dependencies that won’t work there like pyglet - but we are working on a web engine for running the study and that will work anywhere.

I’ll add a forum section about “Online experiments” when it’s more ready for public viewing (in a few weeks hopefully)

3 Likes

Ok well looking forward to these developments in the future. I think I can use some work arounds with a macbook in the meantime.

Thanks for the quick reply.

1 Like

Hi @Fahed,

Although PsychoPy doesn’t run on Android, and given its dependencies probably won’t easily do so, at least two other Python-based tools do.

This works quite well, I’ve used it a lot myself. But it doesn’t support advanced stimuli, like drifting gratings etc.

Cheers,
Sebastiaan

Yes, if your experiment is simple then OpenSesame (which is written by Sebastiaan, in case you weren’t aware) or Expyriment might well suffice.

In the longer term, I think the web engine that we’re developing, PsychoJS, will offer a richer solution:

  • more options to run your study (android, iOS or anything else with a modern browser)
  • more flexibility in the study design itself (ie. all the flexibility of PsychoPy)

I know people done stuff in Unity , not really the same but may work for what you want

@jon is PsychoJs going to be like jsPsych http://www.jspsych.org/ ?

jspsych is less flexible. You define what “type” of trial this is (e.g. “text”, “single stim” etc) and if the thing you want to do in your study isn’t part of the boxed set then you’re stuck.

PsychoJS is basically the PsychoPy library ported to JavaScript/HTML5/WebGL and offers the same level of granularity/control. It has the same sort of components (Window, TextStim, ImageStim, Mouse, TrialHandler etc) and leaves it up to you to construct what you consider a “trial” or a “block”. There’s a little bit more to learn in using this though, because of the way JS/HTML pages load everything at once and try to do everything simultaneously (so we have to “schedule” things to occur whereas in Python we just write them in order and that determines the schedule).

I don’t really expect people to write their own PsychoJS scripts though - they will be generated by Builder (compatible with existing Builder experiments). As with the current Python lib though, you’ll be able to generate your PsychoJS script and then go and read/hack the code as you choose.

The 1.84 release of PsychoPy (imminent) allows you to “export html” from the Builder view to give a demo of roughly how the code will look.

2 Likes

5 years later, I actually have almost the same question! I am new to psychopy, but I would like to run an experiment locally on android tablets. We cannot do this online as most of our participants do not have access to the internet.

  1. Is this possible?

  2. Are there detailed instructions for a novice to follow for downloading and running on a tablet?

  3. Could I program the task on my own computer using the gui and then just run it on the tablets?

Any help would be greatly appreciated!

Thanks!
Kate

1 Like

No, there are still no plans to support this. We may, at some point, provide an app that can be installed to fetch experiments and push data back when online (in the office), but allowing you to run the study while offline (in the ‘field’). This would still essentially be built around the PsychoJS (web experiment) engine though, not the Python one

In principle, should the local testing of online experiments work for this?

No, local testing mode uses Python built-in web server to work

Thank you for replying and thanks for the info. That’s too bad it sounds like this isn’t feasible. So just to be clear, even if I could download the program and get it set up (with internet), when I go in the field to have participants run the task they still wouldn’t be able to complete the task if they didn’t have wifi?

Thanks again, and I apologize for naive questions!

Yes, at present, the participant needs wifi to fetch the experiment and then also at the end of the study (if connection is intermittent inbetween that won’t matter). We’re keen to build a mobile Pavlovia app to handle synchronising data whenever wifi comes back (rather than trying to do it always at the end of the study) but this work hasn’t begun yet so won’t be available for some time.