Comparatif des outils d'expérimentation comportementale : jsPsych, PsychoPy, Gorilla, Qualtrics, lab.js et Potato
Compare jsPsych, PsychoPy, Gorilla, Qualtrics, lab.js et Potato sur l'hébergement, le coût, la précision temporelle documentée, l'affectation aux conditions et la prise en charge de Prolific et SONA.
jsPsych, PsychoPy, Gorilla et lab.js sont conçus pour des tâches comportementales au niveau des essais, où le chronométrage des stimuli et les temps de réaction sont les données, et Qualtrics est conçu pour les questionnaires, que Gorilla héberge aussi. Potato est conçu pour les études dans lesquelles les participants jugent, notent ou étiquettent des items, et sa configuration couvre l'affectation aux conditions, les questionnaires de sélection, les pages contrebalancées et le retour vers Prolific ou SONA. Depuis Potato 2.12.0, il exécute aussi une timeline jsPsych, un test de casque ou une tâche sur un autre serveur comme une page d'une telle étude, et il exécute des tâches de lecture auto-rythmée et de labyrinthe sur ses propres items.
Une expérience comportementale présente des stimuli aux participants et enregistre ce qu'ils font, par exemple quelle touche ils pressent, à quelle vitesse et quelle option ils choisissent. Dans un plan inter-sujets, chaque participant est affecté à une seule condition, et les études maintiennent généralement l'affectation équilibrée à mesure que les gens arrivent et abandonnent. Le contrebalancement fait varier l'ordre des blocs d'un participant à l'autre pour que les effets d'ordre se compensent, souvent selon les lignes d'un carré latin. Le temps de réaction est l'intervalle entre l'apparition du stimulus et la réponse, et dans un navigateur sa précision dépend du logiciel, du navigateur, ainsi que du clavier et de l'écran du participant.
Les outils ci-dessous diffèrent par la personne qui écrit la logique des essais, celle qui héberge l'étude, le fonctionnement de l'affectation et ce que chacun affirme sur le chronométrage. Le Comparatif des outils d'annotation couvre les outils d'annotation pour tous les types de données.
Les six outils en un coup d'œil
Le premier tableau montre comment chaque outil s'exécute, qui héberge l'étude, sa licence et son mode de financement. Les coûts ne sont décrits que par modèle, car plusieurs de ces outils donnent leurs prix sur demande ou par formule.
| Outil | Se présente comme | Hébergement | Licence | Modèle de coût |
|---|---|---|---|---|
| jsPsych | Bibliothèque JavaScript ; vous écrivez la timeline en code | Vous choisissez un hébergeur : JATOS, Pavlovia, Cognition.run ou votre propre serveur | MIT | Gratuit ; l'hébergeur peut être payant |
| PsychoPy | Builder et Coder pour ordinateur ; les études en ligne sont compilées en PsychoJS | L'ordinateur du laboratoire, ou Pavlovia en ligne | GPL-3.0-or-later (PsychoPy), MIT (PsychoJS) | Gratuit au laboratoire ; Pavlovia exige des crédits par participant ou une licence institutionnelle |
| Gorilla | Plateforme web hébergée avec des éditeurs graphiques | Gorilla | Propriétaire | Un jeton par participant, ou un abonnement ou une licence institutionnelle |
| Qualtrics | Plateforme de questionnaires hébergée | Qualtrics | Propriétaire | Sur devis ; les comptes gratuits ne peuvent pas rediriger vers une URL, et le JavaScript personnalisé n'est pas inclus dans toutes les licences |
| lab.js | Éditeur graphique dans le navigateur, plus une bibliothèque JavaScript (dernière version npm 20.2.4 ; dernier commit en octobre 2025, sur une alpha 23.0) | Vous choisissez un hébergeur : JATOS, Pavlovia, votre propre espace web, ou intégré dans Qualtrics | Apache-2.0 (bibliothèque), AGPL-3.0 (éditeur) | Gratuit |
| Potato | Serveur web Python configuré en YAML | Votre propre serveur, ou un Space Hugging Face | GPL-3.0-or-later | Gratuit |
Chaque outil sauf Qualtrics est décrit dans un article : jsPsych, PsychoPy, Gorilla, lab.js et Potato 2.0.
Quel outil pour quelle étude
Le tableau associe la partie d'une étude qui fixe ses exigences aux outils conçus pour elle.
| Étude | Outils adaptés |
|---|---|
| Paradigmes de temps de réaction (Stroop, flanker, IAT, recherche visuelle) | jsPsych, PsychoPy, Gorilla, lab.js |
| Études en laboratoire avec oculomètres matériels ou autres appareils | PsychoPy |
| Oculométrie par webcam dans le navigateur | jsPsych, Gorilla, PsychoPy en ligne (avec du code personnalisé) |
| Questionnaires et expériences par questionnaire | Qualtrics, Gorilla, Potato |
| Notations, étiquettes ou classements de nombreux items, répartis entre participants | Potato |
| Jugements rapides sur une liste d'items (décision lexicale, grammaticalité) | jsPsych, PsychoPy, Gorilla, lab.js, Potato |
| Tâches de lecture auto-rythmée et de labyrinthe | jsPsych (avec les plugins jspsych-contrib), Potato |
| Une tâche chronométrée suivie de notations ou de questionnaires, avec un seul code de complétion | Potato avec une page jsPsych, Gorilla, lab.js intégré dans Qualtrics |
| Construire une étude sans programmer (Potato par une configuration YAML) | Gorilla, Qualtrics, lab.js, PsychoPy Builder, Potato |
Gorilla apparaît dans de nombreuses lignes parce qu'il héberge les tâches, les questionnaires et le recrutement dans un seul produit. Potato apparaît là où les participants jugent des items ou répondent à des questionnaires, et ses tâches chronométrées s'exécutent soit avec trial_timing sur ces items, y compris la lecture auto-rythmée et le labyrinthe, soit comme une page jsPsych.
Affectation, sélection, recrutement et questionnaires selon l'outil
Le deuxième tableau compare le travail qui entoure les essais. Quand un outil laisse une étape à son hébergeur ou à du code personnalisé, la cellule l'indique.
| jsPsych | PsychoPy et Pavlovia | Gorilla | Qualtrics | lab.js | Potato | |
|---|---|---|---|---|---|---|
| Affectation équilibrée aux conditions | Par l'hébergeur, par exemple un modèle de session de lot JATOS | Routine Counterbalance (2024.1 et ultérieures), avec des groupes définis sur le Pavlovia Shelf en ligne | Nœud Randomiser avec un mode équilibré, plus les nœuds Quota et Allocator | Randomizer avec Evenly Present Elements | Par l'hébergeur | conditions, compté sur les participants affectés ou sur ceux qui ont terminé |
| Ordre des blocs contrebalancé | Randomisation des essais et des blocs en code | Fichiers de conditions et boucles imbriquées | Nœuds Counterbalance et Order | Randomizer sur les blocs | Boucles mélangées | phases.counterbalance, aléatoire ou en carré latin de Williams |
| Exclure un participant | jsPsych.abortExperiment() en code | Code personnalisé | Nœud Branch vers un nœud Reject | Branchement vers un élément End of Survey | Code personnalisé | exit_when, qui affiche un message ou renvoie le résultat d'exclusion de la plateforme |
| Prolific | Procédure documentée avec paramètres d'URL et redirection | Paramètres d'URL et URL de complétion documentés | Politique de recrutement intégrée | Intégration Marketplace publiée par Prolific | — | login.type: url_direct, ou crowdsourcing.provider: prolific |
| SONA | Documenté par Sona | Documenté par Sona, avec un lien depuis PsychoPy | Politique de recrutement intégrée, avec crédits automatiques | Documenté par Sona | — | crowdsourcing.provider: sona, avec des crédits accordés depuis le serveur |
| Oculométrie par webcam | Extension WebGazer, avec des plugins de calibration et de validation | WebGazer par du code personnalisé en ligne ; ioHub pour les oculomètres matériels au laboratoire | Composant WebGazer | — | — | — |
| Questionnaires | Plugin survey (SurveyJS) et plugins survey-* | Pavlovia Surveys, en ligne uniquement | Questionnaire Builder | Le produit principal | Formulaires HTML | Pages de questionnaire, plus 55 instruments publiés appelés par leur nom |
Un tiret signifie que nous n'avons rien trouvé à ce sujet dans la documentation de l'outil, vérifiée le 2026-10-22. Si une cellule est erronée, signalez-le-nous.
Ce que la documentation de chaque outil affirme sur le chronométrage
La précision des temps de réaction dans un navigateur a été mesurée sur plusieurs outils, par exemple dans la méga-étude sur le chronométrage, qui a comparé des générateurs d'expériences de laboratoire et en ligne. La documentation de chaque outil formule ses propres affirmations sur le chronométrage, résumées ci-dessous.
- jsPsych. La page sur la précision temporelle indique que les temps de réaction mesurés en JavaScript sont de 10 à 40 ms plus longs que dans les logiciels de laboratoire standard, avec une variance comparable, et cite la comparaison avec Psychophysics Toolbox parmi d'autres études.
- PsychoPy. La page sur le chronométrage indique que son chronométrage est aussi bon que celui de tout logiciel testé par l'équipe, et héberge les tables de données de la méga-étude.
- Gorilla. La page sur le chronométrage indique que les durées d'affichage sont des multiples de l'intervalle de rafraîchissement de l'écran, que les claviers et souris USB ajoutent jusqu'à 8,3 ms d'erreur, et que les écrans tactiles sont interrogés environ toutes les 20 ms. Elle cite une étude des plateformes en ligne, navigateurs et appareils.
- lab.js. La page sur le chronométrage indique que la bibliothèque atteint une grande précision de présentation et de réponse moyennant quelques précautions.
- Qualtrics. La question Timing enregistre le premier clic, le dernier clic, l'envoi de la page et le nombre de clics sur une page, comme une trace du temps passé sur la page plutôt qu'un temps de réaction.
- Potato. Une page
type: jspsychexécute jsPsych seul ; les chiffres de jsPsych s'y appliquent donc.trial_timingsur les items propres de Potato révèle le stimulus dans un callback d'image d'animation et mesure le temps de réaction à partir de l'image sur laquelle il a été dessiné ; l'apparition est donc connue à l'image près (environ 17 ms à 60 Hz). Chaque enregistrementtrial_timingstocke l'intervalle entre images et la résolution du minuteur mesurés par le navigateur, et le serveur signale les enregistrements qui ne concordent pas avec sa propre horloge.
Les claviers et les écrans ajoutent une latence que le navigateur ne peut pas mesurer, et elle varie d'une machine de participant à l'autre. Pour chacun de ces outils, comparez les temps de réaction au sein des participants ou modélisez-les avec un terme participant.
Études sur items et pages jsPsych dans Potato
Potato a commencé comme outil d'annotation ; son unité de travail est donc un item d'un fichier de données qu'un participant juge. Une étude qui recueille les notes de 400 titres de presse auprès de 60 participants, chacun voyant un ensemble différent de 40, correspond à ce modèle. Potato attribue les items, enregistre chaque jugement en le rattachant à l'item et au participant, et rapporte l'accord inter-annotateurs (fidélité inter-juges) sur les items notés par plus d'un participant.
Les réglages de déroulement de l'expérience s'appliquent aux études sur items et aux études comportant une tâche jsPsych. conditions affecte chaque participant à une condition à son arrivée, et chaque règle de la configuration peut tester condition.<factor>. show_when saute une page, exit_when exclut un participant, et phases.counterbalance ordonne les pages par participant. Les phases de questionnaire qui entourent la tâche, la phase de formation avec retour, et le retour vers Prolific ou SONA sont des entrées de configuration.
Quand une étude a besoin d'un contrôle au niveau des essais, les essais restent dans jsPsych. Une page type: jspsych exécute une timeline jsPsych 8.3.0 entre les autres pages de Potato, lui transmet l'identifiant et la condition du participant, et stocke les données d'essais dans le project.sqlite du répertoire de la tâche. Deux autres pages d'exécution occupent la même place : un test de casque noté par le serveur, et une tâche externe sur oTree, Empirica ou un questionnaire hébergé qui renvoie le participant avec des résultats signés. Venir de jsPsych fait correspondre les concepts de jsPsych aux clés de Potato et décrit pas à pas une tâche de Stroop au sein d'une étude Potato.
Une étude de notation inter-sujets dans Potato
La configuration ci-dessous exécute une étude sur la crédibilité de titres de presse pour un vivier de participants SONA. Les participants sont affectés à voir les titres avec ou sans leur source, et balance_on: completed ne compte que les participants qui terminent ; les deux conditions restent ainsi équilibrées quand des personnes abandonnent ou sont exclues. Un questionnaire de sélection met fin à l'étude pour quiconque ne lit pas d'actualités en anglais, et les deux questionnaires post-étude apparaissent dans l'ordre d'un carré latin.
annotation_task_name: Headline credibility study
task_dir: .
output_annotation_dir: annotation_output/
data_files:
- data/with_source.jsonl
item_properties:
id_key: id
text_key: text
user_config:
allow_all_users: true
users: []
conditions:
factors:
list: [with_source, without_source]
assignment: balanced
balance_on: completed
# Each condition gets its own item file, named after the factor's levels
assignment_strategy: batch
batch_assignment:
auto_assign_annotators: true
group_by_condition: list
groups:
- {name: with_source, data_file: data/with_source.jsonl}
- {name: without_source, data_file: data/without_source.jsonl}
phases:
order: [consent, screener, annotation, attitudes, media_use]
consent:
type: consent
file: surveys/consent.json
screener:
type: prestudy
file: surveys/screener.json
exit_when:
show_when:
- {schema: reads_news, operator: equals, value: "No"}
message: This study is for people who read English-language news. Thank you for your time.
attitudes:
type: poststudy
file: surveys/attitudes.json
media_use:
type: poststudy
file: surveys/media_use.json
randomize_questions:
pin_last: [comments]
counterbalance:
- pages: [attitudes, media_use]
method: latin_square
crowdsourcing:
provider: sona
sona:
hostname: yourdept.sona-systems.com
experiment_id: 123
credit_token: your-credit-token
annotation_schemes:
- annotation_type: likert
name: credibility
description: How credible is this headline?
size: 7 # an odd number of points gives a neutral midpoint
min_label: Not at all credible
max_label: Very credible
label_requirement:
required: trueLes deux fichiers d'items contiennent les mêmes titres, l'un avec la ligne de source et l'autre sans, et les identifiants d'items doivent différer entre eux, car Potato charge les deux fichiers dans un seul projet. L'export CSV écrit participants.csv, avec la condition de chaque participant, l'ordre des questionnaires et une éventuelle exclusion, à côté des notes.
Dans SONA, définissez l'URL de l'étude sur https://your-server.com/?sona_code=%SURVEY_CODE%. Quand un participant termine, Potato accorde lui-même les crédits par l'appel d'attribution de crédits côté serveur de SONA ; le participant n'a donc pas à suivre un lien de retour vers SONA.
Les limites de Potato pour les expériences comportementales
Les limites ci-dessous s'appliquent aux pages propres de Potato. La plupart peuvent être contournées par une page jsPsych, et chaque point indique laquelle.
- Pas de code d'essai sur les pages propres de Potato. Le dessin sur canvas, les masques calés sur les images et l'audio programmé avec Web Audio exigent une page jsPsych.
- Pas d'oculométrie ni d'enregistrement par webcam. L'extension WebGazer de jsPsych n'est pas fournie, car elle a besoin de
'unsafe-eval', que la Content-Security-Policy de la page jsPsych n'autorise pas. - Pas de trajectoires de souris sur les pages propres de Potato. Le bloc
authenticitycompte les déplacements et la distance du pointeur par item et ne conserve aucune position. Une page jsPsych avecextensions: [mouse-tracking]enregistre des échantillons x/y par essai. - Pas de plein écran d'un item à l'autre. Chaque item Potato est un chargement de page, et les navigateurs quittent le plein écran quand la page change. Une page jsPsych maintient le plein écran pendant toute sa timeline.
- Pas d'essais chronométrés sur téléphone. Les téléphones et tablettes reçoivent l'interface tactile de Potato, qui n'exécute pas
trial_timing. - Pas d'enregistrements
trial_timingni de donnéesparticipants.csvavec le backend MySQL. Les deux exigent le stockage par défaut. Les exécutions jsPsych sont stockées dansproject.sqliteavec l'un ou l'autre backend.
Pour aller plus loin
- Venir de jsPsych, pour la correspondance des concepts et une tâche jsPsych au sein d'une étude Potato
- Flux de travail multi-phases
- Instruments de questionnaire
- Mener une étude en crowdsourcing
- Échelles de notation
- Comparatif des outils d'annotation
- Déroulement de l'expérience, Phases d'exécution et Essais chronométrés
- Expériences comportementales en ligne, pour une étude de psychologie ou de linguistique dans Potato du début à la fin
Références
- de Leeuw, J. R. (2015). jsPsych: A JavaScript library for creating behavioral experiments in a Web browser. Behavior Research Methods, 47(1), 1-12. https://doi.org/10.3758/s13428-014-0458-y
- Peirce, J., Gray, J. R., Simpson, S., et al. (2019). PsychoPy2: Experiments in behavior made easy. Behavior Research Methods, 51(1), 195-203. https://doi.org/10.3758/s13428-018-01193-y
- Anwyl-Irvine, A. L., Massonnié, J., Flitton, A., et al. (2020). Gorilla in our midst: An online behavioral experiment builder. Behavior Research Methods, 52(1), 388-407. https://doi.org/10.3758/s13428-019-01237-x
- Henninger, F., Shevchenko, Y., Mertens, U. K., et al. (2022). lab.js: A free, open, online study builder. Behavior Research Methods, 54(2), 556-573. https://doi.org/10.3758/s13428-019-01283-5
- Jurgens, D., Chen, M., & Iyer, L. (2026). Potato 2.0: A Comprehensive Annotation Platform with AI-in-the-Loop Support. Proceedings of the 64th Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations), 374-386. https://aclanthology.org/2026.acl-demo.37/
- Bridges, D., Pitiot, A., MacAskill, M. R., et al. (2020). The timing mega-study: comparing a range of experiment generators, both lab-based and online. PeerJ, 8, e9414. https://doi.org/10.7717/peerj.9414
- de Leeuw, J. R., & Motz, B. A. (2016). Psychophysics in a Web browser? Comparing response times collected with JavaScript and Psychophysics Toolbox in a visual search task. Behavior Research Methods, 48(1), 1-12. https://doi.org/10.3758/s13428-015-0567-2
- Anwyl-Irvine, A., Dalmaijer, E. S., Hodges, N., et al. (2021). Realistic precision and accuracy of online experiment platforms, web browsers, and devices. Behavior Research Methods, 53(4), 1407-1425. https://doi.org/10.3758/s13428-020-01501-5