labvanced logoLabVanced
  • Research
    • Publications
    • Researcher Interviews
    • Use Cases
      • Developmental Psychology
      • Linguistics
      • Clinical & Digital Health
      • Educational Psychology
      • Cognitive & Neuro
      • Social & Personality
      • Arts Research
      • Sports & Movement
      • Marketing & Consumer Behavior
      • Economics
      • HCI / UX
      • Commercial / Industry Use
    • Labvanced Blog
    • Services
  • Technology
    • Feature Overview
    • Code-Free Study Building
    • Eye Tracking
    • Mouse Tracking
    • Generative AI Integration
    • Multi User Studies
    • More ...
      • Reaction Time/Precise Timing
      • Text Transcription
      • Heart Rate Detection (rPPG)
      • Emotion Detection
      • Questionnaires/Surveys
      • Experimental Control
      • Data Privacy & Security
      • Desktop App
      • Mobile App
  • Learn
    • Guide
    • Videos
    • Walkthroughs
    • FAQ
    • Release Notes
    • Documents
    • Classroom
  • Experiments
    • Cognitive Tests
    • Sample Studies
    • Public Experiment Library
  • Pricing
    • Licenses
    • Top-Up Recordings
    • Subject Recruitment
    • Study Building
    • Dedicated Support
    • Checkout
  • About
    • About Us
    • Contact
    • Downloads
    • Careers
    • Impressum
    • Disclaimer
    • Privacy & Security
    • Terms & Conditions
    • Third-Party Licenses
  • Appgo to app icon
  • Logingo to app icon
Learn
Guide
Videos
Walkthroughs
FAQ
Newsletter Archive
Documents
Classroom
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 日本語
Guide
Videos
Walkthroughs
FAQ
Newsletter Archive
Documents
Classroom
  • 中國人
  • Deutsch
  • Français
  • Español
  • English
  • 日本語
  • Guide
    • GETTING STARTED

      • Task Editor
      • Frames
        • Canvas Frame
        • Page Frame
        • Website Frame
      • Trial Timeline
      • Stimulus Presentation
      • Correctness of Response
      • Objects
      • Events
      • Variables
      • Task Wizard
      • Trial System
      • Experiment Design
        • Creating a Study
        • Data Frame Patterns
        • Multi-user Experiment Design
        • Longitudinal Experiment Design
    • FEATURED TOPICS

      • Randomization & Balance
      • Eye Tracking
        • Presenting Stimuli in an Eye Tracking Task
        • How to Choose Eye Tracking Calibration Settings
        • Setting Up Eye Tracking in a Task
        • Recording and Exporting Gaze Data
        • Using Shapes as Areas of Interest (AOI) for Eye Tracking
        • The Participant Calibration Experience
      • Web Bridge
        • Selecting Website AOIs | Anchor, Adjust, and Verify AOI Tracking
        • Tracking Mouse Behavior on a Website AOI | Web Bridge Guide
      • Questionnaires
      • Desktop App
      • Sample Studies
      • Participant Recruitment
      • API Access
        • REST API
        • Webhook API
        • WebSocket API
      • Other Topics

        • Precise Stimulus Timings
        • Multi User Studies
        • Head Tracking in Labvanced | Guide
    • MAIN APP TABS

      • Overview: Main Tabs
      • Dashboard
      • My Studies
      • Shared Studies
      • My Files
      • Experiment Library
      • My Account
      • License & Services
    • STUDY TABS

      • Overview: Study-Specific Tabs
      • Study Design
        • Tasks
        • Blocks
        • Sessions
        • Groups
      • Task Editor
        • Task Controls
        • The Trial System
        • Frame Types
        • Objects
        • Object Property Tables
        • Variables
        • System Variables Table
        • The Event System
        • Text Editor Functions
        • Eye Tracking Options in the Task Editor
        • Head Tracking in a Task
        • Multi-User Studies
      • Settings
      • Variables
      • Media
      • Texts & Translate
      • Launch & Participate
      • Subject Management
      • Dataview and Export
        • Dataview and Variable & Task Selection (OLD Version)
        • Accessing Recordings (OLD Version)
  • Videos
    • Video Overview
    • Getting Started in Labvanced
    • Creating Tasks
    • Element Videos
    • Events & Variables
    • Advanced Topics
  • Walkthroughs
    • Introduction
    • Stroop Task
    • Lexical Decision Task
    • Posner Gaze Cueing Task
    • Change Blindness Flicker Paradigm
    • Eye-tracking Sample Study
    • Infant Eye-tracking Study
    • Attentional Capture Study with Mouse Tracking
    • Rapid Serial Visual Presentation
    • ChatGPT Study
    • Eye Tracking Demo: SVGs as AOIs
    • Multi-User Demo: Show Subjects' Cursors
    • Gamepad / Joystick Controller- Basic Set Up
    • Desktop App Study with EEG Integration
    • Between-subjects Group Balancing and Variable Setup
    • Building a Multi-user Study
    • Website Frame Eye Tracking Walkthrough
    • Conditional Webcam Eye Tracking
    • Text Segmentation Study Building
  • FAQ
    • Features
    • Support Policy & Guidelines
    • Security & Data Privacy
    • Licensing
    • Precision of Labvanced
    • Programmatic Use & API
    • Using Labvanced Offline
    • Troubleshooting
    • Study Creation Questions
  • Newsletter Archive
  • Documents
  • Classroom
Header illustration of a word-frequency reading study built with the Text Segmentation Object

Building a Reading Study with the Text Segmentation Object

This walkthrough follows the exact steps used to build a real demo study: a word-frequency reading task where participants read ten sentences, each containing one critical word that is either high or low frequency, while webcam eye tracking records per-word gaze metrics. It uses the Text Segmentation Object's CSV-to-data-frame text source, the headline capability, rather than the array-variable fallback.

Self-Paced Reading Study (Text Segmentation Object - Demo)

The real study this walkthrough builds: ten sentences, one per trial, with per-word AOI geometry and eye tracking metrics recorded automatically.

The Stimulus Set

The ten sentences are matched pairwise on critical-word character length (5 high-frequency and 5 low-frequency critical words, 6 to 7 letters each), to control for the word-length confound separately from frequency. Frequency values come from SUBTLEX-US (Brysbaert & New, 2009), the same corpus used on the Word Frequency Effect page.

#ConditionCritical wordSUBTLWFSentence
1Highkitchen58.31Every morning she wiped down the small kitchen counter before breakfast.
2Lowlantern2.02The old sailor carried a rusted lantern down to the dock.
3Highteacher55.73On the first day the new teacher welcomed every nervous student.
4Lowsatchel1.47Before dawn the apprentice packed his heavy satchel and left.
5Highwindow86.00Sunlight poured through the open window and warmed the whole room.
6Lowturret0.88Arrows struck the ancient turret just as the sun rose.
7Highletter82.61He carefully folded the short letter and placed it in an envelope.
8Lowchisel0.88The sculptor used a sharp chisel to carve the marble block.
9Highgarden26.55They spent the entire weekend digging up the old garden fence.
10Lowgoblet0.37During the ceremony the knight raised a golden goblet to the king.

Prerequisite Knowledge

Fundamental knowledge of Labvanced is advised, such as how frames and events work, to follow the terminology used below. This walkthrough also assumes you can launch a test run of your own study and find its exported data afterward: see Launch & Participate for running a session yourself and Dataview and Export for where the recorded tables in Step 7 actually live.

Illustration of the three frame types in Labvanced: Canvas, Page, and Website Frame

Frames

The building block that holds what participants see at each moment in a trial.

Illustration of the event system in Labvanced, showing a trigger and action combining to build a study's logic

Events

What a trigger and an action are, and how they combine to build a study's logic.

Text Segmentation Object reference page

Text Segmentation Object

Full object reference: properties, setup wizard, and the two recording actions.

Step 1: Add Text Segmentation Object and Upload Stimulus CSV

Add a Text Segmentation Object to a frame from the Text toolbar group.

Labvanced task editor toolbar with the Text group open and Text Segmentation Object highlighted

In the setup wizard's first step, choose Upload a CSV file of sentences and select the stimulus file. This parses it into a new data frame, one row per trial.

Text Segmentation Setup wizard's first screen, showing the Set Text Source radio options

After selecting the file, an Additional Options dialog appears with three checkboxes: Map strings to files, Use first row as header, and Transpose data. For this stimulus set, all three should stay unchecked, which is already how they default for a sentence CSV, so just click Ok.

Note

A CSV is a commonly used text source for the Text Segmentation Object: one row per sentence, one cell per word. The source spreadsheet for this study has no header row and holds one word per column, one sentence per row, with row lengths left ragged (10 to 12 words depending on the sentence) rather than padded. A sentence's trailing period stays attached to its last word as its own cell.

Spreadsheet preview of the stimulus sentences, one row per sentence, one word per cell

An example of preparing sentences for a study using the Text Segmentation Object with a CSV as the text source: one row per sentence.

The setup wizard offers two other text-source options not used in this walkthrough: Assign text from a variable, for a data frame or array that already holds the text rather than a fresh CSV upload, and Do not set the text source, to configure it later.

Step 2: Set the Row Index Method

With a data frame source, the wizard's second step asks how the row (sentence) is selected per trial. This study uses Use Trial_Id as row index, so the ten sentences appear in the experiment's randomized trial order rather than a fixed sequence.

Step 3: Turn On Eyetracking Metrics Recording

In the wizard's final step, leave Record the x, y, width and height of every word on each trial checked, and also check Record eyetracking metrics for every word on each trial. The per-word gaze metrics (dwell time, total fixations, total fixation duration, time to first fixation, mean fixation duration) are what makes this a reading eye tracking study rather than a plain stimulus display, and recording them needs this box checked.

Text Segmentation Setup wizard's second screen with both Record checkboxes checked

The wizard's second screen for this study: Use Trial_Id as row index selected, and both record checkboxes checked.

Note

Checking the metrics checkbox also turns on fixation detection for the whole task and sets fixations to conclude at frame end. This applies to the entire task, not just this object, and the wizard flags it before you can finish.

Checking this box is also what actually turns on eye tracking for the study, so it immediately opens the study's own Physiology Toolbox Version 2.0 setup wizard, asking who your participants are, then a tier (accuracy vs. effort) and, for tiers that support one, a screening level (accuracy vs. screen-out). See Choosing a Tier for what each choice means and how to change them later via the Settings tab, and also set up custom settings at the task level (see Setting Up Eye Tracking in a Task).

Step 4: Configure Layout & Trials

With the Text Segmentation Object selected, in Object Properties, set Split cells on whitespace to off, since the CSV already holds one word per column. Set Layout to Grid, which places every word into an equal-width cell and records the whole cell as its AOI, guaranteeing that no two words' recorded areas overlap or leave a gap between them.

See the Text Segmentation Object reference page for the full list of object properties, including the alignment, padding, and font settings not used in this walkthrough.

Text Segmentation Object in Grid layout showing the first stimulus sentence split into one cell per word, with the Record Text Segment AOIs event on the frame
The first stimulus sentence rendered with Grid layout, one word per cell. The record text segmentation event in the Events panel on the right is the automatically created On Frame Start trigger recording each word's AOI geometry.

Gap Between Cells is worth setting deliberately rather than leaving at its default, and the right value depends on the expected gaze accuracy from the calibration tier chosen in Step 3's setup wizard, not on layout preference alone. A study on a higher-effort tier (longer calibration, tighter expected error) can run smaller gaps between word AOIs without much risk of a gaze sample landing on the wrong word. A study on a shorter, lower-effort calibration has a wider expected error radius, so the same small gap makes neighboring words harder to tell apart in the recorded data, and a larger gap is the safer choice. See Choosing a Tier for the expected accuracy figures behind each tier.

Matching Trial Count to the CSV

The row index method chosen in Step 2 depends on a setting outside the wizard entirely: Trial_Id only reaches 1 through 10 if the task is actually set to run ten trials. This is set separately, in the Trials & Conditions table, not from within the wizard's dialog box: set #Trials to 10 there, so it matches the ten rows in the uploaded CSV, a mismatch here means some rows never get shown, or the task errors on a trial whose Trial_Id has no matching row.

Setting the trial number in the trial editor to match the number of rows in the CSV

Setting the trial number in the trial editor to match the number of rows in the CSV.

Beyond this basic count, Trials & Conditions and Factors & Randomization also support more advanced randomization, such as crossing factors or controlling condition order, see Randomization & Balance for the full set of options.

Step 5: Set Up Trial Progression

Each of the ten trials runs as two frames in sequence: a dedicated Fixation Cross frame, then the sentence frame holding the Text Segmentation Object. See Trial Timeline for how a trial is built from a sequence of frames like this.

Fixation Cross: build it as its own frame, not an element placed on the sentence frame. Add an Eyetracking Gaze Trigger targeting the fixation cross image itself, so the event fires once the participant is actually looking at it, not on a timer alone. Chain that into a Delayed Actions (Time Callback) action set to a fixed 1000 ms delay, with a Jump To action set to Next Frame as its sub-action. The delay is a one-shot timer, not a sustained-gaze check: it starts the moment the gaze trigger first fires and runs the Jump To once it elapses regardless of whether the participant is still looking at the cross a moment later.

This setup is inspired by the gaze-contingent fixation cross used in Serrano-Carot, Angele, Xu, & Vasilev (2025).

Advancing between trials: on the sentence frame, add a Keyboard Trigger set to any key with the Action dropdown set to Press Key, and give it a Jump To action set to Next Frame. Ending the frame this way is what causes the Frame End Trigger that Step 3's wizard already set up to fire, which is when the per-word metrics actually get recorded, so they are only written once the participant signals they are done reading that sentence, not on an arbitrary timer.

Resetting an interrupted trial: if a participant drifts out of the allowed head pose mid-trial, the virtual chinrest pauses the experiment and prompts them to realign. The realignment screen recenters their gaze on the middle of the display, which may not match where they actually were in the sentence when the interruption happened. Without handling this, the experiment would simply resume the sentence frame as-is, leaving the participant's gaze at center screen instead of the controlled starting position the fixation cross exists to establish. Wire a Global Experiment Event Trigger set to Experiment Continued, with a Jump To action set to Specific Frame targeting the Fixation Cross frame, so a realignment sends the participant back through the fixation cross and starts the trial over cleanly rather than resuming with a mismatched gaze position.

Self-Paced Reading Study (Text Segmentation Object - Demo)

Import this study directly into your account to review exactly how the frames, events, and trial progression above were actually built and structured.

Step 6: Confirm Eye Tracking at the Study Level

Checking the metrics checkbox in Step 3 already turned on eye tracking for the study, by triggering the Set Up Eye Tracking wizard, so there is nothing new to enable here. Open Settings tab → Physiology to confirm Eye-Tracking is on and review the tier and screening level the wizard set. See Setting Up Eye Tracking in a Task for the full study-level versus task-level mechanism.

Step 7: Confirm Both Recordings

Run the study yourself and check the exported data rather than assuming the setup worked. Two data frame tables should populate, one row per word per trial:

  • The AOI geometry table: word_index, word, line_index, x, y, width, height
  • The per-word metrics table: word_index, word, line_index, dwell_time, total_fixations, total_fixation_duration, time_to_first_fixation, mean_fixation_duration

A word you never looked at keeps its row with zeros across every metric column rather than a blank cell. Filter on total_fixations > 0 before averaging a time column, a zero does not distinguish "never fixated" from "fixated at exactly frame onset."

Further Reading

Text Segmentation Object reference page

Text Segmentation Object

Full object reference: properties, setup wizard, and the two recording actions.

Text Segmentation technology overview page

Text Segmentation Technology

The capability overview: mechanism, data output, and research use cases.

Setting up eye tracking in a Labvanced task

Setting Up Eye Tracking in a Task

The study-level vs. task-level Eye-Tracking toggle this walkthrough depends on.

Prev
Conditional Webcam Eye Tracking