From 8ce61262efde22673dbfaf8936a956e8755f89a8 Mon Sep 17 00:00:00 2001 From: ereddy12-pixel Date: Mon, 22 Sep 2025 11:13:27 -0400 Subject: [PATCH 1/4] Update tutorial-contributing.rst --- docs/source/tutorial-contributing.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/tutorial-contributing.rst b/docs/source/tutorial-contributing.rst index fc8eb1d..f12e950 100644 --- a/docs/source/tutorial-contributing.rst +++ b/docs/source/tutorial-contributing.rst @@ -368,6 +368,7 @@ List of tutorial participants - Sarah Kiefer (Brown University) - Olivia Maltz (Temple University) - Madeline Ephraim (University of Rochester) +- Emma Reddy (University of Maryland, College Park) Checking for and creating issues on Github ------------------------------------------- From 9e664ef60065dc1ae60b4f8235e4af69aa58a775 Mon Sep 17 00:00:00 2001 From: Wilder Date: Thu, 16 Oct 2025 15:01:10 -0700 Subject: [PATCH 2/4] Update contributors list in tutorial --- docs/source/tutorial-contributing.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/tutorial-contributing.rst b/docs/source/tutorial-contributing.rst index f12e950..00a54d0 100644 --- a/docs/source/tutorial-contributing.rst +++ b/docs/source/tutorial-contributing.rst @@ -369,6 +369,7 @@ List of tutorial participants - Olivia Maltz (Temple University) - Madeline Ephraim (University of Rochester) - Emma Reddy (University of Maryland, College Park) +- Wilder Hartwell (University of California, San Diego) Checking for and creating issues on Github ------------------------------------------- From 782dc2bafe9ddafa8ee2109108034036dfa9cdc6 Mon Sep 17 00:00:00 2001 From: kdob8 Date: Tue, 4 Nov 2025 14:49:18 -0500 Subject: [PATCH 3/4] Update tutorial-contributing.rst Adding my name and institution to the list of tutorial participants --- docs/source/tutorial-contributing.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/tutorial-contributing.rst b/docs/source/tutorial-contributing.rst index 00a54d0..31eb260 100644 --- a/docs/source/tutorial-contributing.rst +++ b/docs/source/tutorial-contributing.rst @@ -370,6 +370,7 @@ List of tutorial participants - Madeline Ephraim (University of Rochester) - Emma Reddy (University of Maryland, College Park) - Wilder Hartwell (University of California, San Diego) +- Kaitlin Dobkowski (Boston University) Checking for and creating issues on Github ------------------------------------------- From 3ab2e7c9099891be9f2feb91ad875fa934c9d073 Mon Sep 17 00:00:00 2001 From: Becky Gilbert Date: Thu, 20 Nov 2025 12:30:15 -0800 Subject: [PATCH 4/4] Update available jsPsych plugins/versions (#510) * add jsPsych plugins: video-keyboard-response, image-hotspots, video-hotspots * restructure info, add versions and links to changelogs * remove padding around li elements in jsPsych package lists * update CHS-jsPsych record and surveys package versions, and fix incorrect links to changelogs * remove jsPsych releases page - all release info is linked in jspsych-intro page * add wait_for_upload_message param examples to jspsych tutorial * add another step to tutorial - fullscreen plugin * fix text formatting for plugin class names * add instructions for checking session/trial recordings --- docs/source/_static/css/lookit.css | 2 +- docs/source/index.rst | 1 - docs/source/researchers-jspsych-intro.rst | 135 ++++++++++++++---- docs/source/researchers-jspsych-releases.rst | 7 - .../tutorial-jspsych-first-study.rst | 67 ++++++++- 5 files changed, 170 insertions(+), 42 deletions(-) delete mode 100644 docs/source/researchers-jspsych-releases.rst diff --git a/docs/source/_static/css/lookit.css b/docs/source/_static/css/lookit.css index f77bd40..b082f96 100644 --- a/docs/source/_static/css/lookit.css +++ b/docs/source/_static/css/lookit.css @@ -94,7 +94,7 @@ ul.tutorial-participants { column-count: 2; } -ul.tutorial-participants li { +ul.tutorial-participants li, ul.jspsych-plugins-extensions li { padding: 0; } diff --git a/docs/source/index.rst b/docs/source/index.rst index 1f74837..ff6a581 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -70,7 +70,6 @@ Families may take part in studies from multiple labs over time. Having one centr researchers-jspsych-intro Limitations - Releases .. toctree:: :maxdepth: 2 diff --git a/docs/source/researchers-jspsych-intro.rst b/docs/source/researchers-jspsych-intro.rst index 52aaeee..c6811b9 100644 --- a/docs/source/researchers-jspsych-intro.rst +++ b/docs/source/researchers-jspsych-intro.rst @@ -16,20 +16,77 @@ To learn more about jsPsych features, some other great places to start are the j jsPsych packages ============================== -The CHS jsPsych experiment runner automatically loads a set of packages from the standard jsPsych library for researchers to use. These are: +The CHS jsPsych experiment runner automatically loads a set of packages from the standard jsPsych library for researchers to use. The set of jsPsych packages/versions loaded by CHS is below, along with links to documentation and change logs (version history). -- `Core jsPsych library `__ v8.0.3 -- `HTML keyboard response plugin `__ v2.0.0: ``jsPsychHtmlKeyboardResponse`` -- `Image keyboard response plugin `__ v2.0.0: ``jsPsychImageKeyboardResponse`` -- `HTML button response plugin `__ v2.0.0: ``jsPsychHtmlButtonResponse`` -- `Image button response plugin `__ v2.0.0: ``jsPsychImageButtonResponse`` -- `Video button response plugin `__ v2.0.0: ``jsPsychVideoButtonResponse`` -- `Preload plugin `__ v2.0.0: ``jsPsychPreload`` -- `Survey text plugin `__ v2.1.0: ``jsPsychSurveyText`` -- `Survey multi-choice plugin `__ v2.1.0: ``jsPsychSurveyMultiChoice`` -- `Fullscreen plugin `__ v2.1.0: ``jsPsychFullscreen`` +.. rst-class:: jspsych-plugins-extensions -We will likely add more options in the future. If there are any specific jsPsych plugins/extensions that your experiment needs, please let us know! The best way to request access to a standard jsPsych package is by creating a ``lookit-api`` `Github issue `__, but you can also let us know on Slack. +- `Core jsPsych library `__ + + - v8.0.3 (`see changelog `__) + +- `HTML keyboard response plugin `__ + + - v2.0.0 (`see changelog `__) + - ``jsPsychHtmlKeyboardResponse`` + +- `Image keyboard response plugin `__ + + - v2.0.0 (`see changelog `__) + - ``jsPsychImageKeyboardResponse`` + +- `Video keyboard response `__ + + - v2.1.0 (`see changelog `__) + - ``jsPsychVideoKeyboardResponse`` + +- `HTML button response plugin `__ + + - v2.0.0 (`see changelog `__) + - ``jsPsychHtmlButtonResponse`` + +- `Image button response plugin `__ + + - v2.0.0 (`see changelog `__) + - ``jsPsychImageButtonResponse`` + +- `Video button response plugin `__ + + - v2.0.0 (`see changelog `__) + - ``jsPsychVideoButtonResponse`` + +- `Image hotspots `__ + + - v1.0.0 (`see changelog `__) + - ``jsPsychImageHotspots`` + +- `Video hotspots `__ + + - v1.0.0 (`see changelog `__) + - ``jsPsychVideoHotspots`` + +- `Preload plugin `__ + + - v2.0.0 (`see changelog `__) + - ``jsPsychPreload`` + +- `Survey text plugin `__ + + - v2.1.0 (`see changelog `__) + - ``jsPsychSurveyText`` + +- `Survey multi-choice plugin `__ + + - v2.1.0 (`see changelog `__) + - ``jsPsychSurveyMultiChoice`` + +- `Fullscreen plugin `__ + + - v2.1.0 (`see changelog `__) + - ``jsPsychFullscreen`` + +.. admonition:: Need something else? + + If there are any specific jsPsych plugins/extensions that your experiment needs, please let us know! The best way to request access to a standard jsPsych package is by creating a ``lookit-api`` `Github issue `__, but you can also let us know on Slack. .. _chs-jspsych-packages: @@ -39,30 +96,48 @@ Custom CHS jsPsych packages In addition to the jsPsych packages listed above, the CHS jsPsych experiment runner also automatically loads some custom packages. These custom plugins/extensions were designed to "fill in the gaps" in the sort of functionality that CHS researchers typically need for child development studies. This functionality includes: standardized webcam/mic configuration steps, video-recorded consent, trial/session recording, and standardized exit surveys. -The `CHS jsPsych documentation `__ contains more information about all of the parameters available in the CHS jsPsych plugins/extensions listed below. +The custom CHS-jsPsych packages/versions are listed below, along with links to documentation and change logs (version history). The `CHS jsPsych documentation `__ contains more information about all of the parameters available in the CHS-jsPsych plugins/extensions. -Do you need any types of trials (Lookit EFP "frames") or features that are not listed here, and are not available through the standard jsPsych library? Let us know! The best way to request a custom (CHS-specific) jsPsych plugin/extension or feature is by creating a ``lookit-jspsych`` `Github issue `__, but you can also let us know on Slack. +**CHS Record package** -.. _chs-jspsych-plugins: +Current version: 4.1.0 (`see changelog `__) -Plugins ---------------------- +.. rst-class:: jspsych-plugins-extensions -- `Video config plugin `__ in the CHS Record package: ``chsRecord.VideoConfigPlugin`` -- `Video consent plugin `__ in the CHS Record package: ``chsRecord.VideoConsentPlugin`` -- `Start session recording plugin `__ in the CHS Record package: ``chsRecord.StartRecordPlugin`` -- `Stop session recording plugin `__ in the CHS Record package: ``chsRecord.StopRecordPlugin`` -- `Consent survey plugin `__ in the CHS Surveys package: ``chsSurveys.ConsentSurveyPlugin`` -- `Exit survey plugin `__ in the CHS Surveys package: ``chsSurveys.ExitSurveyPlugin`` +- `Video config plugin `__ -.. _chs-jspsych-extensions: + - ``chsRecord.VideoConfigPlugin`` -Extensions --------------------------- +- `Video consent plugin `__ + + - ``chsRecord.VideoConsentPlugin`` + +- `Start session recording plugin `__ + + - ``chsRecord.StartRecordPlugin`` + +- `Stop session recording plugin `__ + + - ``chsRecord.StopRecordPlugin`` -jsPsych extensions are packages that extend the functionality of a plugin. +- `Trial recording extension `__ + + - ``chsRecord.TrialRecordExtension`` + +**CHS Surveys package** + +Current version: v4.0.1 (`see changelog `__) + +.. rst-class:: jspsych-plugins-extensions + +- `Consent survey plugin `__ + + - ``chsSurveys.ConsentSurveyPlugin`` + +- `Exit survey plugin `__ + + - ``chsSurveys.ExitSurveyPlugin`` -- `Trial recording extension `__ in the CHS Record package: ``chsRecord.TrialRecordExtension`` .. _chs-jspsych-translations: @@ -70,3 +145,7 @@ Translations -------------------------- All of these plugins/extensions support the automatic translation of hard-coded text through a ``locale`` parameter. + +.. admonition:: Need something else? + + Do you need any types of trials (Lookit EFP "frames") or features that are not listed here, and are not available through the standard jsPsych library? Let us know! The best way to request a custom (CHS-specific) jsPsych plugin/extension or feature is by creating a ``lookit-jspsych`` `Github issue `__, but you can also let us know on Slack. diff --git a/docs/source/researchers-jspsych-releases.rst b/docs/source/researchers-jspsych-releases.rst deleted file mode 100644 index d4aa623..0000000 --- a/docs/source/researchers-jspsych-releases.rst +++ /dev/null @@ -1,7 +0,0 @@ -.. _jspsych-releases: - -==================================== -jsPsych experiment runner updates -==================================== - -No updates yet. Watch this space! \ No newline at end of file diff --git a/docs/source/tutorial-jspsych/tutorial-jspsych-first-study.rst b/docs/source/tutorial-jspsych/tutorial-jspsych-first-study.rst index f19fc7f..02587ca 100644 --- a/docs/source/tutorial-jspsych/tutorial-jspsych-first-study.rst +++ b/docs/source/tutorial-jspsych/tutorial-jspsych-first-study.rst @@ -199,7 +199,12 @@ The full code so far: Step 6: Add session recording ------------------------------------------------- -We now have a bare-bones CHS experiment structure: webcam/mic configuration, video-recorded consent, our "experiment" (hello world trial), and an exit survey. The only thing we're missing for typical CHS experiments is webcam recordings that are captured during the experiment. We can do that using either: (a) session recording, where a webcam recording starts at a specified point in the experiment's trial sequence and ends at another point, with any number of experimental trials in between, or (b) trial recording, where a webcam recording is created at the start of a particular trial and ends when that trial finishes. +We now have a bare-bones CHS experiment structure: webcam/mic configuration, video-recorded consent, our "experiment" (hello world trial), and an exit survey. The only thing we're missing for typical CHS experiments is webcam recordings that are captured during the experiment. We can do that using either: + +.. rst-class:: jspsych-plugins-extensions + +- **session recording**, where a webcam recording starts at a specified point in the experiment's trial sequence and ends at another point, with any number of experimental trials in between, or +- **trial recording**, where a webcam recording is created at the start of a particular trial and ends when that trial finishes. .. admonition:: When should/shouldn't I use trial and session recording? @@ -258,6 +263,17 @@ Here's the full experiment code now: jsPsych.run([video_config, video_consent, start_rec, hello_trial, stop_rec, exit_survey]); +Now when you save your code and preview the experiment, your experiment will run as it did before, but you will also get a video recording that captures the duration between your ``start_rec`` and ``stop_rec`` trials. To see your recording, you will need to approve your own consent statement: from the study details page, click "Review Consent", find your most recent session, change it from "pending" to "accept", then click "Submit Rulings & Comments". Then go back to your study details page, click "Study Responses", click "Individual Responses", and find your most recent session in the table. With that response selected, you should see two videos listed in the "Download videos" box - one is your consent video and the other is your session recording. + +**Bonus step**: Use the ``wait_for_upload_message`` parameter to override the ``stop_rec`` trial's default message ("uploading video, please wait...") and present some custom HTML content instead. The example below will display some text and play a video. + +.. code:: javascript + + const stop_rec = { + type: chsRecord.StopRecordPlugin, + wait_for_upload_message: "

Please wait while we upload your video!