@bdelab/roav-ran 1.0.33 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +27 -0
- package/README.md +81 -4
- package/lib/_sentry-release-injection-file.0975f6c0.js +2 -0
- package/lib/_sentry-release-injection-file.0975f6c0.js.map +1 -0
- package/lib/{index.f826742e.js → index.f868e005.js} +4 -4
- package/lib/index.f868e005.js.map +1 -0
- package/lib/index.html +3 -3
- package/lib/{worker.9a077607.js → worker.a823fc01.js} +3 -3
- package/lib/worker.a823fc01.js.map +1 -0
- package/package.json +6 -5
- package/lib/_sentry-release-injection-file.579b69fe.js +0 -2
- package/lib/_sentry-release-injection-file.579b69fe.js.map +0 -1
- package/lib/index.f826742e.js.map +0 -1
- package/lib/worker.9a077607.js.map +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
STANFORD ACADEMIC SOFTWARE LICENSE FOR ROAR™
|
|
2
|
+
Stanford Docket S21-342: "Rapid Online Assessment of Reading "ROAR™")"
|
|
3
|
+
|
|
4
|
+
Please address any communications to: jyeatman@stanford.edu and otl@stanford.edu
|
|
5
|
+
|
|
6
|
+
By accessing the software in this folder, you are agreeing to the license terms listed below.
|
|
7
|
+
|
|
8
|
+
1. THE BOARD OF TRUSTEES OF THE LELAND STANFORD JUNIOR UNIVERSITY (“Stanford”) has an assignment to "Rapid Online Assessment of Reading ("ROAR™")" ("Software"), described in Stanford Docket S21-342, which was developed by Professor Jason Yeatman in the Graduate School of Education.
|
|
9
|
+
2. By accessing, downloading, accepting, receiving, or using Software, including any accompanying information, materials or manuals you ("RECIPIENT") are agreeing to be bound by the terms of this License. If you do not agree to the terms of this License, do not download, use or view any files from this directory.
|
|
10
|
+
3. STANFORD grants to RECIPIENT a limited royalty-free, nonexclusive, and nontransferable license to use the Software furnished hereunder, upon the terms and conditions set out below.
|
|
11
|
+
4. RECIPIENT acknowledges that the Software is a research tool still in the development stage and that it is being supplied as is, without any accompanying services, support or improvements from STANFORD. STANFORD makes no representations and extends no warranties of any kind, either express or implied other than set out in this License.
|
|
12
|
+
5. RECIPIENT agrees to use the Software solely for internal academic, non-commercial purposes and shall not distribute or transfer the Software or any modifications, enhancements, adaptations, re-implementations, based on, or implementing the functionality of (“Derivatives”) from RECIPIENT to another location or to any other person without prior written permission from STANFORD. RECIPIENT may not further distribute this Software or any Derivatives thereof.
|
|
13
|
+
6. RECIPIENT agrees not to reverse engineer, reverse assemble, reverse compile, decompile, disassemble, or otherwise attempt to re-create the source code for the Software. RECIPIENT acknowledges that any programs created based on or with the same functionality as the Software will be considered a Derivative as defined in 5 above, of Software and owned by STANFORD.
|
|
14
|
+
7. RECIPIENT may make modifications to the Software and integrate Software into RECIPIENT's own software for its own internal non-commercial use academic research use. All Derivative works are owned by Jason Yeatman and Stanford.
|
|
15
|
+
8. RECIPIENT may not further distribute Software or its Derivatives without express written permission of STANFORD. If permission to transfer the Software or a Derivative is given, RECIPIENT warrants and agrees that:
|
|
16
|
+
RECIPIENT will not remove or export any part of the Software from the United States except in full compliance with all United States export regulations and all applicable laws;
|
|
17
|
+
Will include a copy of this License which all RECIPIENTS must agree to.
|
|
18
|
+
9. RECIPIENT will use the Software in compliance with all applicable laws, policies and regulations including, but not limited to, any approvals, informed consent and patient confidentiality principles.
|
|
19
|
+
10. RECIPIENT will indemnify, hold harmless, and defend STANFORD against any claim of any kind arising out of or related to the exercise of any rights granted under this License or the breach of this License by RECIPIENT.
|
|
20
|
+
11. Title and copyright to the Software, any Derivatives, associated documentation, and content shall at all times remain with the Yeatman Lab at STANFORD, and RECIPIENT agrees to preserve the same.
|
|
21
|
+
12. If RECIPIENT plans to publish any peer reviewed papers, abstracts, or similar publications, RECIPIENT agrees to acknowledge Software and its creator, Professor Jason Yeatman, in a manner consistent with academic (industry) practice in addition to the marking requirements outlined above.
|
|
22
|
+
13. If RECIPIENT decides to terminate this License, RECIPIENT shall destroy or return immediately all Software and all Derivative works.
|
|
23
|
+
14. RECIPIENT must display in any web-based application, interface, or hosted Derivative work using the Software a prominent attribution on its main dashboard or landing page. The attribution must read: “Powered by ROAR” and include a link to https://roar.stanford.edu (or equivalent site specified by Stanford). The attribution must be legible, visible during normal use, and placed in a standard UI location such as a header, footer, or corner banner.
|
|
24
|
+
15. RECIPIENT must acknowledge ROAR in a README file in the repository of any Derivative work. The README should include the lines: “This software is based on the Rapid Online Assessment of Reading (ROAR) and/or the Rapid Online Assessment Dashboard (ROAD), developed by the Yeatman Lab at Stanford University.” The README should also include a link to the upstream software on which the derivative is based.
|
|
25
|
+
16. RECIPIENT must cite the following paper in any academic publications for which the Software was used:
|
|
26
|
+
Yeatman, J. D., Tang, K. A., Donnelly, P. M., Yablonski, M., Ramamurthy, M., Karipidis, I. I., Caffarra, S., Takada, M. E., Kanopka, K., Ben-Shachar, M., & Domingue, B. W. (2021). Rapid online assessment of reading ability. Scientific Reports, 11(1), 6396.
|
|
27
|
+
|
package/README.md
CHANGED
|
@@ -1,7 +1,84 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Roav RAN
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Overview
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Roav RAN is a modular JavaScript-based framework for running RAN . The application begins at `src/experiment/index.js`, which manages and calls the various views that control different aspects of the test.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Structure
|
|
8
|
+
|
|
9
|
+
Each view is a separate JavaScript file located in the `views` folder. These views handle different parts of the experiment, from consent collection to calibration and the main crowding test. Below is a breakdown of each view and its purpose.
|
|
10
|
+
|
|
11
|
+
### Views Breakdown
|
|
12
|
+
|
|
13
|
+
#### Consent View
|
|
14
|
+
|
|
15
|
+
- **File:** `views/consentView.js`
|
|
16
|
+
- **Description:** Displays the consent form. Participants must accept before proceeding to the next step.
|
|
17
|
+
|
|
18
|
+
#### Configure Device View
|
|
19
|
+
|
|
20
|
+
- **File:** `views/configureDeviceView.js`
|
|
21
|
+
- **Description:** Requests camera (and/or microphone) access, ensures proper seating position, and allows configuration of device details such as screen size.
|
|
22
|
+
|
|
23
|
+
#### Calibration View
|
|
24
|
+
|
|
25
|
+
- **File:** `views/calibrationView.js`
|
|
26
|
+
- **Description:** Displays a blue stimulus for eye tracking calibration. A simple linear regressor estimates gaze position based on the response.
|
|
27
|
+
|
|
28
|
+
#### Menu View
|
|
29
|
+
|
|
30
|
+
- **File:** `views/menuView.js`
|
|
31
|
+
- **Description:** Displays available tasks, dynamically loading them from the storage bucket. For example, crowding tests may have different versions (e.g., letters vs. symbols).
|
|
32
|
+
|
|
33
|
+
#### Crowding View
|
|
34
|
+
|
|
35
|
+
- **File:** `views/RANView.js`
|
|
36
|
+
- **Description:** The core RAN test, where participants perform the task.
|
|
37
|
+
|
|
38
|
+
#### Story View
|
|
39
|
+
|
|
40
|
+
- **File:** `views/storyView.js`
|
|
41
|
+
- **Description:** Presents a story as part of the experiment.
|
|
42
|
+
|
|
43
|
+
#### Preload View
|
|
44
|
+
|
|
45
|
+
- **File:** `views/preloadView.js`
|
|
46
|
+
- **Description:** A blank screen that preloads files into cache to optimize performance.
|
|
47
|
+
|
|
48
|
+
## View Structure
|
|
49
|
+
|
|
50
|
+
Each view follows a consistent structure to maintain modularity and ease of testing. For example, `configureDeviceView` consists of three main components:
|
|
51
|
+
|
|
52
|
+
1. **HTML File:** Defines the layout and styling of the view.
|
|
53
|
+
2. **JavaScript File:** Contains the logic for user interaction and view functionality.
|
|
54
|
+
3. **View Loader (views.js):** Loads the corresponding HTML and JavaScript files, initializes a wrapper `div`, and injects it into the document body.
|
|
55
|
+
|
|
56
|
+
### View Lifecycle
|
|
57
|
+
|
|
58
|
+
- A view starts by creating a container `div`.
|
|
59
|
+
- It loads the necessary HTML and JavaScript files.
|
|
60
|
+
- The `div` is added to `document.body`.
|
|
61
|
+
- The view ends when a resolve flag is triggered (e.g., a button click or programmatic completion of a task).
|
|
62
|
+
|
|
63
|
+
## Design Philosophy
|
|
64
|
+
|
|
65
|
+
The structure was designed to be highly modular, allowing for easy swapping and modification of different views during the testing phase. While some aspects could be streamlined further, refactoring will only take place once the test design is finalized and stable.
|
|
66
|
+
|
|
67
|
+
## Eye Tracking
|
|
68
|
+
|
|
69
|
+
There are a few pertinent files related to handling eye tracking, which exist across the three web apps. These include `videoCapture.js`, `headeyetracking.js`, and `eyetrackingVars.html`.
|
|
70
|
+
|
|
71
|
+
### Video Capture
|
|
72
|
+
|
|
73
|
+
- **File:** `videoCapture.js`
|
|
74
|
+
- **Description:** Contains functions to start and stop the camera. This is essential as it is the first step in running the eye tracking model, which ingests webcam feeds.
|
|
75
|
+
|
|
76
|
+
### Head and Eye Tracking
|
|
77
|
+
|
|
78
|
+
- **File:** `headeyetracking.js`
|
|
79
|
+
- **Description:** Processes the webcam feed and passes it into the eye tracking model to predict x, y coordinates of gaze.
|
|
80
|
+
|
|
81
|
+
### Eye Tracking Variables
|
|
82
|
+
|
|
83
|
+
- **File:** `eyetrackingVars.html`
|
|
84
|
+
- **Description:** Initializes global variables needed to run the eye tracking model, such as `leftEyeCoordinates` and `rightEyeCoordinates`, which store the model's predictions. It also initializes FaceMesh (a Google product) to track the face and crop the eyes before passing them into the eye tracking model.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
;!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f805dfa3-8301-4ee4-afbb-66291177a5f6",e._sentryDebugIdIdentifier="sentry-dbid-f805dfa3-8301-4ee4-afbb-66291177a5f6")}catch(e){}}();("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"cd9832ac60c8c967b5081190cc904c023f77a0c6"};
|
|
2
|
+
//# sourceMappingURL=_sentry-release-injection-file.0975f6c0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_sentry-release-injection-file.0975f6c0.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|