diff --git a/presentations/annotate-those-steps/Peterson and Ferris 2018 - eNeuro.pdf b/presentations/annotate-those-steps/Peterson and Ferris 2018 - eNeuro.pdf
new file mode 100644
index 0000000..2e31e8a
Binary files /dev/null and b/presentations/annotate-those-steps/Peterson and Ferris 2018 - eNeuro.pdf differ
diff --git a/presentations/annotate-those-steps/annotate-those-steps.json b/presentations/annotate-those-steps/annotate-those-steps.json
new file mode 100644
index 0000000..c8298a9
--- /dev/null
+++ b/presentations/annotate-those-steps/annotate-those-steps.json
@@ -0,0 +1,608 @@
+{
+ "presentation": {
+ "metadata": {
+ "title": "Annotate Those Steps",
+ "author": "Seyed Yahya Shirazi, Ph.D.",
+ "description": "How to curate analysis-ready MoBI datasets using HEDit",
+ "theme": "default",
+ "aspectRatio": "16:9",
+ "controls": {
+ "slideNumbers": true,
+ "progress": true
+ },
+ "customTheme": {
+ "colors": {
+ "primary": "#184A3D",
+ "background": "#FFFFFF",
+ "text": "#1E293B",
+ "accent": "#E99852"
+ },
+ "fonts": {
+ "heading": "Inter, sans-serif",
+ "body": "Inter, sans-serif"
+ }
+ }
+ },
+ "slides": [
+ {
+ "id": "title",
+ "layout": "title",
+ "transition": "fade",
+ "elements": [
+ {
+ "type": "text",
+ "content": "# Annotate those steps",
+ "style": {
+ "fontSize": "xxl",
+ "alignment": "center",
+ "fontWeight": "bold",
+ "color": "#184A3D"
+ },
+ "position": { "area": "center" }
+ },
+ {
+ "type": "text",
+ "content": "How to curate analysis-ready MoBI datasets",
+ "style": {
+ "fontSize": "large",
+ "alignment": "center",
+ "color": "#E99852"
+ },
+ "position": { "area": "center", "order": 1 }
+ },
+ {
+ "type": "text",
+ "content": "**Seyed Yahya Shirazi, Ph.D.**\nSwartz Center for Computational Neuroscience, UC San Diego\n\n[Annotation Garden Initiative](https://annotation.garden) -- HEDit project",
+ "style": {
+ "fontSize": "medium",
+ "alignment": "center",
+ "color": "#475569"
+ },
+ "position": { "area": "center", "order": 2 }
+ },
+ {
+ "type": "text",
+ "content": "Case study: ds003739 (Peterson and Ferris, 2018) -- beam walking with mediolateral pull and visual rotation",
+ "style": {
+ "fontSize": "small",
+ "alignment": "center",
+ "color": "#4B4967"
+ },
+ "position": { "area": "center", "order": 3 }
+ }
+ ],
+ "speakerNotes": "- Welcome. Today's talk is about the gap between the rich data a MoBI lab collects and the thin annotations that reach re-users.\n- The case study is one of the cleanest MoBI shares on NEMAR -- and even there, the events.tsv is one column.\n- Goal: show why HED + HEDit close that gap, and what is on the roadmap (hedify)."
+ },
+
+ {
+ "id": "what-is-mobi",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## MoBI -- one experiment, many streams",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/mobi-stack.svg",
+ "alt": "Subject silhouette surrounded by six modality cards (EEG, EMG, motion capture, VR, load cell, behavior), with a thin events.tsv strip at the bottom showing only 4 string labels survive sharing",
+ "width": "88%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- MoBI = Mobile Brain/Body Imaging. EEG + EMG + motion capture + VR + force + behavior. All recorded synchronously.\n- The data side is dense and synchronized. The metadata side -- what the events meant -- is much thinner.\n- Today's talk targets that asymmetry."
+ },
+
+ {
+ "id": "annotation-reality",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## The MoBI annotation reality",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/rich-vs-thin.svg",
+ "alt": "Left panel shows rich raw recording with EEG, EMG, motion capture, load cell, VR timestamps, task log. Right panel shows a thin events.tsv with only 4 columns: onset, duration, trial_type, value.",
+ "width": "92%",
+ "position": { "area": "content" }
+ },
+ {
+ "type": "callout",
+ "calloutType": "warning",
+ "content": "Source: **ds003739** (Peterson and Ferris, 2018). This is one of the **cleanest** MoBI shares -- a reasonable best case, not a worst case.",
+ "animation": { "fragment": true, "type": "slide-up", "index": 0 },
+ "position": { "area": "footer" }
+ }
+ ],
+ "speakerNotes": "- The raw side has six modalities. The shared side has four string labels.\n- This is not because the lab did poor work -- the opposite. The bottleneck is the format, not the data.\n- Frame the rest of the talk around closing that gap with HED + HEDit."
+ },
+
+ {
+ "id": "case-study",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## Case study -- ds003739: beam walking with pull and VR perturbations",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/figures/experiment-scene.svg",
+ "alt": "AI-generated scientific illustration. Two-panel side view. Left panel labeled 'Pull perturbation (1.0 s)': a subject in EEG cap and orange shirt stands on a wooden balance beam mounted on a treadmill, suspended by a chest harness from the ceiling, with a cable from the waist running through a pulley to an electromechanical motor + load cell on the floor; a red horizontal F_pull arrow points to the waist. Right panel labeled 'Visual field rotation (0.5 s)': the same subject, now wearing a black Oculus Rift DK2 VR headset, with an inset showing a 20-degree rotation of the virtual scene.",
+ "width": "82%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- Read aloud: 30 subjects, 4 sessions each (stand-pull, walk-pull, stand-rotate, walk-rotate).\n- 150 perturbations per session, balanced left/right or CW/CCW.\n- Pull is 1 s mediolateral via motor + cable + harness. Rotation is 0.5 s, 20 deg via Oculus Rift DK2.\n- This is dense, controlled MoBI. The experiment is well-described in the paper -- not in the sidecar."
+ },
+
+ {
+ "id": "one-trial",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## One trial = baseline + perturbation + recovery",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/one-trial.svg",
+ "alt": "Timeline of one perturbation trial showing baseline locomotion bar, perturbation event bar at t=0, and postural recovery bar. Gait phase pattern alternates underneath. Pull force trace rises briefly at t=0. A red callout shows events.tsv only captures the onset + label; a yellow callout below lists what is ALSO true and recoverable: gait phase, peak force, rotation angle/speed, balance-loss flag, recovery latency, task, direction.",
+ "width": "94%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- The trial has structure on a ~4-second window. events.tsv records exactly one timestamp + one label per trial.\n- Everything else -- gait phase at onset, force magnitude, recovery latency, whether the subject lost balance -- is in the raw data but does not reach re-users.\n- The thin column is a triage decision (format + culture), not a data limitation."
+ },
+
+ {
+ "id": "missing-gait",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## Gap #1 -- gait phases and balance loss are recoverable, but not shared",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/figures/gait-cycle.svg",
+ "alt": "AI-generated scientific illustration of five sequential gait-cycle poses of the same subject walking heel-to-toe on a balance beam: heel strike, double support, mid stance, leg swing, and balance loss (in red). Title overlay reads 'Gait phases derivable from motion capture, but missing from events.tsv'. Caption notes that all five phases are in raw motion-capture markers but only the perturbation onset reaches the shared events.tsv.",
+ "width": "82%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- 16 motion-capture markers track foot, sacrum, neck, head.\n- Heel-strike timing comes out of foot marker peaks. Balance-loss flag comes out of beam-foot distance or harness load.\n- The information exists. It is not surfaced in events.tsv, so any re-analysis that needs it has to start by recomputing it from raw data."
+ },
+
+ {
+ "id": "missing-physics",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## Gap #2 -- physical parameters of the perturbation itself",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/missing-physics.svg",
+ "alt": "Three cards. Left card (pull mechanics) shows hip pulled by cable through a load cell to a motor, with recorded but unshared values: peak_force_N, cable_side, pull_duration_s, motor_rotation_deg. Center card (VR rotation parameters) shows a dial at 20 deg with values: rotation_angle_deg, rotation_direction, rotation_duration_s, angular_velocity. Right card (trial context) shows a 2x2 grid of stand/walk by pull/rotate sessions and values implied by filename only: task_locomotion, perturbation_modality, session_index, harness_active.",
+ "width": "94%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- Pull force is measured by load cell. Rotation angle is set by the VR rig. Both are known per trial, neither is in events.tsv.\n- Trial context (stand vs walk, pull vs rotate) is implied only by the BIDS filename, which is a poor primary source.\n- A dose-response study on theta as a function of peak pull force is, today, blocked by the format."
+ },
+
+ {
+ "id": "missing-context",
+ "layout": "two-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## Gap #3 -- the why behind the trial",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "bullets",
+ "items": [
+ {
+ "text": "**Was the subject standing or walking?** -- only in the filename.",
+ "animation": { "fragment": true, "type": "fade", "index": 0 }
+ },
+ {
+ "text": "**Modality** -- was the perturbation visual or physical? Re-user infers from the value string.",
+ "animation": { "fragment": true, "type": "fade", "index": 1 }
+ },
+ {
+ "text": "**Block / session structure** -- only via BIDS path conventions.",
+ "animation": { "fragment": true, "type": "fade", "index": 2 }
+ },
+ {
+ "text": "**Safety / scaffolding** -- harness on; beam dimensions; this matters for kinematic comparisons.",
+ "animation": { "fragment": true, "type": "fade", "index": 3 }
+ }
+ ],
+ "bulletStyle": "disc",
+ "style": { "fontSize": "large" },
+ "position": { "area": "left" }
+ },
+ {
+ "type": "callout",
+ "calloutType": "important",
+ "content": "**Filenames are not metadata.** A re-user opening `sub-003_ses-02_task-pullwalk_events.tsv` learns the condition from the filename string, not from the event row. That is fragile and not machine-queryable.",
+ "animation": { "fragment": true, "type": "slide-up", "index": 4 },
+ "position": { "area": "right" }
+ }
+ ],
+ "speakerNotes": "- This is the quietest gap. Filenames are human-readable but not designed to be parsed.\n- The right callout is the headline: filenames are not metadata. Sidecars are."
+ },
+
+ {
+ "id": "analysis-blocked",
+ "layout": "two-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## Re-analyses you can not do (today)",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "bullets",
+ "items": [
+ {
+ "text": "**Phase-lock theta to heel-strike** -- requires gait phase column.",
+ "animation": { "fragment": true, "type": "fade", "index": 0 }
+ },
+ {
+ "text": "**Dose-response of beta to pull force** -- requires peak_force_N column.",
+ "animation": { "fragment": true, "type": "fade", "index": 1 }
+ },
+ {
+ "text": "**Compare ERSPs across labs** -- requires shared perturbation magnitude and modality semantics.",
+ "animation": { "fragment": true, "type": "fade", "index": 2 }
+ },
+ {
+ "text": "**Train across studies** -- requires controlled vocabulary for event types.",
+ "animation": { "fragment": true, "type": "fade", "index": 3 }
+ }
+ ],
+ "bulletStyle": "disc",
+ "style": { "fontSize": "large" },
+ "position": { "area": "left" }
+ },
+ {
+ "type": "callout",
+ "calloutType": "warning",
+ "content": "Each of these would take **days** to recover from the raw data; with proper annotation, they are one filter and one `groupby`.",
+ "animation": { "fragment": true, "type": "slide-up", "index": 4 },
+ "position": { "area": "right" }
+ }
+ ],
+ "speakerNotes": "- This is the concrete cost slide. Every gap above maps to a science question that does not get asked because the metadata is missing.\n- These re-analyses are the reason curating annotations is worth the effort."
+ },
+
+ {
+ "id": "hed-anatomy",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## The fix in principle -- HED",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/hed-anatomy.svg",
+ "alt": "Top orange callout shows one HED tag as a comma-separated path through the schema tree on two lines: Sensory-event, Visual-presentation, Move, Rotation/(Direction/Clockwise), (Magnitude, deg, #). Underneath, left panel shows the HED hierarchy as inheritance of meaning with Event, Item, Action branches. Right panel shows a sidecar example with HED nested under value with pull_left and rotate_cw tag strings.",
+ "width": "94%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- HED = Hierarchical Event Descriptors. Controlled vocabulary. Composable. Validatable.\n- One tag is a comma-separated path. Tags inherit from parents in the hierarchy. Value slots (the `#`) accept a typed number with units.\n- Crucially: the schema is the contract. If your tag is in the schema, it means the same thing across labs."
+ },
+
+ {
+ "id": "hed-sidecar",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## The HED sidecar pattern -- timeseries unchanged",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/hed-sidecar.svg",
+ "alt": "Left: events.tsv table with onset, duration, trial_type, value columns unchanged. Right: events.json with HED keys nested under each column, mapping pull_left, pull_right, rotate_cw, rotate_ccw to full HED tag strings.",
+ "width": "94%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- The events.tsv does not change. Existing analyses keep working.\n- All semantic richness lives in events.json -- column-level, value-level HED tags.\n- This is the same sidecar pattern BIDS already uses, just with HED keys."
+ },
+
+ {
+ "id": "workflow-pain",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## Why HED workflows stall for MoBI labs",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/workflow-pain.svg",
+ "alt": "Four-step horizontal pain pipeline: Read the paper (hours per session, extract experiment structure by hand) -> Learn the schema (~2000 tags, expert-only) -> Write the sidecar (column-level levels, value slots, error-prone) -> Validate, Repeat (JS validator, cryptic messages, loop until clean). Bottom red bar: HED adoption stays in the labs that build HED.",
+ "width": "94%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- Frame this as a workflow problem, not a will problem.\n- The labs that produce the schema can tag fluently. Everyone else looks at a 2000-tag tree and stops.\n- This is where HEDit enters."
+ },
+
+ {
+ "id": "hedit-intro",
+ "layout": "two-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## HEDit -- what it does, today",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "bullets",
+ "items": [
+ {
+ "text": "**You describe** the events in plain English (one description per `value` level).",
+ "animation": { "fragment": true, "type": "fade", "index": 0 }
+ },
+ {
+ "text": "**HEDit converts** that natural-language description into a valid HED tag string.",
+ "animation": { "fragment": true, "type": "fade", "index": 1 }
+ },
+ {
+ "text": "**LangGraph multi-agent** pipeline: Parser -- Tagger -- Validator, with the HED JS validator in the loop.",
+ "animation": { "fragment": true, "type": "fade", "index": 2 }
+ },
+ {
+ "text": "**Output**: BIDS-compliant `events.json` with HED keys plus a provenance trail.",
+ "animation": { "fragment": true, "type": "fade", "index": 3 }
+ }
+ ],
+ "bulletStyle": "disc",
+ "style": { "fontSize": "large" },
+ "position": { "area": "left" }
+ },
+ {
+ "type": "callout",
+ "calloutType": "tip",
+ "content": "**Scope today (v0.6):** one **detailed** natural-language description -> one HED tag string per event value.\n\n**Not yet:** composite tags for events that co-occur (e.g. pull-while-walking). Lands in hedify with paper PDF extraction, events.tsv ingestion, and GUI review.",
+ "animation": { "fragment": true, "type": "slide-up", "index": 4 },
+ "position": { "area": "right" }
+ }
+ ],
+ "speakerNotes": "- Make the scope explicit. HEDit today is a natural-language to HED converter. It does not parse papers; you do.\n- The reason that boundary matters: tagger fidelity depends on the description. Garbage-in stays garbage. We do not want to hide a hallucination behind a 'paper reader' chip.\n- hedify (the planned GUI) will close the input loop with PDF extraction and event-row suggestions."
+ },
+
+ {
+ "id": "hedit-overview",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## HEDit -- the architecture",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/hedit-overview.svg",
+ "alt": "Left panel: user-provided natural-language descriptions for pull_left and rotate_cw. Middle: HEDit engine with three LangGraph agents (Parser, Tagger, Validator) on top of a HED schema + OpenRouter LLMs strip, with a loop arrow indicating re-tag with validator feedback. Right panel: HEDit returns a valid HED sidecar with pull_left and rotate_cw tag strings. Bottom note clarifies Today (v0.6) is natural language to HED and Planned (hedify) adds paper PDF extraction, GUI review, auto-suggest from events.tsv columns.",
+ "width": "92%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- Left to right: user input -> agents -> validated HED.\n- Note the bottom strip: this slide is explicit about what HEDit does TODAY versus what is roadmap.\n- Why this matters: prevent overpromising and keep the boundary between automation and human-in-the-loop clear."
+ },
+
+ {
+ "id": "hedit-pipeline",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## Inside the pipeline -- three agents, one schema",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/hedit-pipeline.svg",
+ "alt": "Horizontal pipeline of three stages: Parser (natural language to structured facts: action, body-part, direction, magnitude, unit), Tagger (retrieves HED nodes via RAG over schema, composes the tag string), Validator (HED JS validator on the composed tag, checks tag exists, units valid, value slot well-formed). A red dashed loop returns from Validator back to Tagger with validator error context if invalid. A bottom rail shows the HED schema v8.x is the single source of truth tagger queries and validator checks.",
+ "width": "94%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- Parser: extract structured facts from the user's plain English (one body part, one direction, one number, one unit, ...).\n- Tagger: query the HED schema (RAG over node names + definitions) and compose a tag string.\n- Validator: run the official HED JS validator against the composed tag. If invalid, feed the error back to the tagger for another shot.\n- The schema is the contract. No agent invents vocabulary."
+ },
+
+ {
+ "id": "demo-input",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## Demo -- write one rich description per event",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "code",
+ "language": "json",
+ "code": "{\n \"pull_left\":\n \"Mediolateral motor-driven pull on the\n participant's waist belt, leftward, 1.0 s,\n peak force ~60 N (load cell measured).\n Sensorimotor balance perturbation during\n beam standing or walking.\",\n\n \"rotate_cw\":\n \"Visual field rotation, 20 degrees clockwise,\n via head-mounted VR display (Oculus Rift\n DK2), 0.5 s. Sensorimotor balance\n perturbation during beam standing or walking.\"\n}",
+ "position": { "area": "content" }
+ },
+ {
+ "type": "callout",
+ "calloutType": "tip",
+ "content": "**HEDit is tuned for detail.** Each description should include: action + body part + direction/laterality + magnitude with units + duration + modality + experimental context. \"mediolateral\", not \"lateral\". \"20 degrees\", not \"rotated\". HEDit will not invent the magnitude -- garbage in, garbage out.",
+ "animation": { "fragment": true, "type": "slide-up", "index": 0 },
+ "position": { "area": "footer" }
+ }
+ ],
+ "speakerNotes": "- This is what HEDit's parser is tuned to consume. Each description is a paragraph, not a tag.\n- For the hands-on portion of the talk, two well-formed examples are enough -- pull_left and rotate_cw. Run them live.\n- HEDit v0.6 returns one HED tag string per description. It does NOT yet annotate multiple co-occurring events (e.g. pull-while-walking) as a single composite -- that lands in hedify.\n- Frame the input task as 'paragraph per event-value' -- it is the same paragraph you would write in your README."
+ },
+
+ {
+ "id": "demo-output",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## Demo -- the output HEDit returns",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/before-after.svg",
+ "alt": "Side-by-side. Left panel shows the events.json currently shipped on NEMAR/OpenNeuro: human-readable level descriptions for stimulus, pull_left, pull_right, rotate_cw with no HED. Right panel shows the same events.json after HEDit: HED keys on onset, duration, trial_type, and value with composed tag strings for pull_left (Move, Push/Direction/Leftward, Body-part/Hip, Force N #, Mechanical-pull), pull_right (same with Rightward), rotate_cw (Visual-presentation, Rotation/Direction/Clockwise, Magnitude deg #, Visual-perturbation), and rotate_ccw. The center has an orange arrow labeled HEDit, 3 min.",
+ "width": "92%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- Same dataset. Same events.tsv. Now machine-queryable.\n- The right side is what HEDit returns. The user wrote the four prose descriptions; HEDit composed and validated the eight tag strings.\n- This is the value proposition in one slide."
+ },
+
+ {
+ "id": "hedify-preview",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## What's next -- hedify, the GUI",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/hedify-preview.svg",
+ "alt": "Mock GUI window titled hedify -- annotation studio. Three panes: left (source documents) shows a paper PDF preview, events.tsv mini-table, and an auto-extract candidates strip with a highlighted phrase 'mediolateral pull at the waist'. Center (HED tag editor) shows chips for Move, Push, Direction/Leftward, Body-part/Hip, (Force, N, 60), and a 'suggest more' chip, plus a preview block and Apply HEDit / Validate buttons. Right (Validator panel) shows three status rows: all tags valid (green check), consider adding Perturbation (yellow warn), tag traces to paper section (green plus), a provenance trail listing Peterson 2018 p.4, HED schema v8.3, HEDit Tagger v0.6, and a ready-to-commit green box. Bottom note explains hedify adds paper-aware extraction, drag-and-drop tag editing, and reviewer provenance on top of the same HEDit conversion engine.",
+ "width": "94%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- This is a design mock, not a screenshot of shipping software. Be honest about that.\n- hedify adds: paper PDF reader (auto-extract candidate descriptions), drag-and-drop tag editor, reviewer provenance.\n- HEDit stays as the conversion engine underneath; hedify is the human-in-the-loop layer."
+ },
+
+ {
+ "id": "garden-roadmap",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## How it all fits -- Annotation Garden",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "image",
+ "src": "./assets/icons/garden-roadmap.svg",
+ "alt": "Three stacked tiers. Top (orange, shipping): HEDit (today, v0.6) -- natural language to HED tag converter, LangGraph multi-agent, validator in the loop, CLI + JSON, BIDS-compliant, OpenRouter-backed, hosted at api.annotation.garden/hedit. Middle (purple dashed, design phase, 2026 Q4 target): hedify (planned) -- GUI annotation studio with paper PDF reader, drag-and-drop tags, reviewer audit trail. Bottom (green, launching): Annotation Garden Initiative (AGI) -- open infrastructure for collaborative annotation of naturalistic neuroscience stimuli, with badges for image-annotation, HEDit / hedify, flagship datasets, curation governance.",
+ "width": "94%",
+ "position": { "area": "content" }
+ }
+ ],
+ "speakerNotes": "- HEDit is the shipping engine. hedify is the next product on top. AGI is the ecosystem.\n- The path: ship the CLI now, ship the GUI next, share datasets through the same channel.\n- Strategic point: HEDit alone is useful even without hedify. The CLI is enough to enrich a dataset before sharing."
+ },
+
+ {
+ "id": "try-it",
+ "layout": "single-column",
+ "transition": "slide",
+ "elements": [
+ {
+ "type": "text",
+ "content": "## Try it / contribute / cite",
+ "style": { "fontSize": "xl" },
+ "position": { "area": "header" }
+ },
+ {
+ "type": "bullets",
+ "items": [
+ {
+ "text": "**Project:** [github.com/Annotation-Garden/hedit](https://github.com/Annotation-Garden/hedit) -- MIT licensed, contributions welcome.",
+ "animation": { "fragment": true, "type": "fade", "index": 0 }
+ },
+ {
+ "text": "**API:** `api.annotation.garden/hedit` -- POST your description, get HED back.",
+ "animation": { "fragment": true, "type": "fade", "index": 1 }
+ },
+ {
+ "text": "**Install:** `uv pip install hedit` (PyPI, planned for v0.6.0 release).",
+ "animation": { "fragment": true, "type": "fade", "index": 2 }
+ },
+ {
+ "text": "**Cite the case study:** Peterson SM and Ferris DP (2018). *Differentiation in theta and beta electrocortical activity between visual and physical perturbations to walking and standing balance.* eNeuro. doi:10.1523/ENEURO.0207-18.2018",
+ "animation": { "fragment": true, "type": "fade", "index": 3 }
+ },
+ {
+ "text": "**Acknowledgements:** Steven Peterson and Daniel Ferris for the open dataset; the HED working group; SCCN; the AGI contributors.",
+ "animation": { "fragment": true, "type": "fade", "index": 4 }
+ }
+ ],
+ "bulletStyle": "disc",
+ "style": { "fontSize": "large" },
+ "position": { "area": "content" }
+ },
+ {
+ "type": "text",
+ "content": "**Questions?** [shirazi@ieee.org](mailto:shirazi@ieee.org) - [annotation.garden](https://annotation.garden)",
+ "style": { "fontSize": "medium", "alignment": "center", "color": "#184A3D" },
+ "position": { "area": "footer" }
+ }
+ ],
+ "speakerNotes": "- Land the call to action. Three audiences: try it (researchers), contribute (developers), cite (anyone using the case study).\n- The Peterson 2018 paper is genuinely the right citation -- they did the hard work, we are just curating the metadata.\n- Last 60 seconds: thank-yous and open the floor for questions."
+ }
+ ]
+ }
+}
diff --git a/presentations/annotate-those-steps/annotate-those-steps.md b/presentations/annotate-those-steps/annotate-those-steps.md
new file mode 100644
index 0000000..2d58a74
--- /dev/null
+++ b/presentations/annotate-those-steps/annotate-those-steps.md
@@ -0,0 +1,102 @@
+# Annotate Those Steps -- how to curate analysis-ready MoBI datasets
+
+> *Source content (abstract + blog body) for the talk. The deck source lives next to this file as `annotate-those-steps.json`. The rendered presentation viewer and the blog page are hosted by the [Annotation Garden documentation site](https://docs.annotation.garden).*
+
+## Abstract
+
+Mobile Brain/Body Imaging (MoBI) experiments capture rich synchronized streams: high-density electroencephalography (EEG), motion capture, electromyography (EMG), force, and virtual reality (VR). The annotations that reach re-users are typically a handful of string labels. Peterson and Ferris (2018) shared one of the cleanest MoBI datasets on NEMAR (ds003739) and even there, the events.tsv carries no pull force, no rotation angle, no gait phase, and no balance-loss flag. That gap is a format and culture problem, not a data limitation; the motion-capture markers, load-cell traces, and condition metadata are already on the lab's disk.
+
+This talk frames that asymmetry as the central MoBI annotation problem. The Hierarchical Event Descriptors (HED) sidecar pattern carries column-level semantics in events.json without touching the timeseries, but hand-tagging stalls in practice. HEDit, a multi-agent LangGraph pipeline, converts plain-English event descriptions into validated HED tags. The Annotation Garden Initiative wraps that engine and a future GUI (hedify) into a community-curated commons. The case study walks through what ds003739 shares today, what is missing, and what a HEDit-enriched sidecar restores for downstream analysis.
+
+## The MoBI annotation gap
+
+A MoBI session captures six or more synchronized streams: 128-channel EEG at 512 Hz, lower-leg and neck EMG at 1 kHz, full-body motion capture with 16 reflective markers, force from load cells in the perturbation rig, VR rotation timestamps, and a task/behavior log. Each is recorded with timing that lines up to the millisecond on the lab's disk.
+
+What reaches NEMAR, OpenNeuro, or any downstream re-user is `events.tsv` -- a small text file with four columns: `onset`, `duration`, `trial_type`, `value`. For ds003739, the `value` column is one of `pull_left`, `pull_right`, `rotate_cw`, `rotate_ccw`. That is it.
+
+This is not a worst case. ds003739 is one of the cleanest MoBI shares in existence; Peterson and Ferris published the dataset under CC0 with extensive documentation, and the events file is unambiguous within the four labels it provides. The point of the case study is that even the cleanest shared dataset hides most of the experiment's metadata behind a paper paywall and the lab's local hard drives.
+
+## Three concrete gaps
+
+**Gait phases and balance-loss events.** The 16 motion-capture markers track foot, sacrum, neck, and head trajectories. Heel-strike timing falls out of foot-marker velocity peaks; balance loss is detectable from harness-load spikes or from center-of-mass displacement crossing a threshold. None of this reaches the shared events file. A re-analysis that wants to phase-lock theta oscillations to heel-strike has to start by re-deriving the heel-strike column from raw motion capture.
+
+**Physical parameters of the perturbation.** The mediolateral pull is delivered by an electromechanical motor with an inline load cell on the cable. Peak force on each trial varies between roughly 40 and 80 N. Visual rotations are 20 degrees over 0.5 seconds, but the per-trial direction and angular velocity are recorded only in the experimenter's MATLAB log. A dose-response analysis on theta as a function of pull force is, today, blocked by the format.
+
+**Trial context.** Was the subject standing or walking? Pull or rotate? Which session? All of that is implied by the BIDS filename (`task-pullstand`, `task-pullwalk`, etc.). Filenames are human-readable but not designed to be parsed; a re-user opening `sub-003_ses-02_task-pullwalk_events.tsv` learns the condition from the string in the filename, not from a column in the event row.
+
+## HED in 60 seconds
+
+Hierarchical Event Descriptors (HED) is a controlled vocabulary maintained at [hedtags.org](https://hedtags.org). A HED tag is a comma-separated path through a schema tree: `Sensory-event, Visual-presentation, Rotation/(Direction/Clockwise), (Magnitude, deg, #)`. Tags inherit meaning from their parents, compose with one another, and validate against the schema. Value slots (the `#`) accept typed numbers with units. The schema is a contract; if a tag is in it, the tag means the same thing across labs.
+
+HED rides on the BIDS sidecar pattern. `events.tsv` stays unchanged; `events.json` grows a `HED` key under each column, attaching tag strings either to the column as a whole or to the levels of a categorical value. This keeps existing analyses working while making every event row machine-queryable.
+
+## Why manual HED tagging stalls
+
+Three frictions stall HED adoption in MoBI labs that did not co-author the schema:
+
+1. **Reading the paper** to extract event semantics at the right granularity takes hours per session.
+2. **Learning the schema** -- roughly 2000 tags, deep hierarchy, value-slot conventions -- is an expert-level task.
+3. **Writing JSON** with the right escaping, value-slot syntax, and column-versus-value scope is error-prone, and the validator messages are cryptic.
+
+The net effect is that HED stays in the labs that build it. Everyone else ships `events.tsv` with four string labels.
+
+## HEDit -- what it does today
+
+HEDit (v0.6) is a natural-language to HED tag converter. The user writes a plain-English description of each event level -- what would already go in the README -- and HEDit returns a validated HED tag string ready to drop into `events.json`.
+
+Under the hood, three LangGraph agents grounded in the HED schema:
+
+- **Parser** extracts structured facts from the description: action, body part, direction, magnitude, unit.
+- **Tagger** retrieves candidate HED nodes via retrieval-augmented generation over the schema and composes the tag string.
+- **Validator** runs the official HED JavaScript validator on the composed tag. If it fails, the error context is fed back to the tagger for another shot.
+
+The schema is the contract; agents do not invent vocabulary. The output is a BIDS-compliant `events.json` with HED keys plus a provenance trail noting which paper section and which schema version each tag was derived from.
+
+Today's scope is deliberately narrow: **one detailed natural-language description in, one validated HED tag string out, per event-value level.** Two shape constraints follow from that:
+
+- HEDit is tuned for *paragraph-grade* detail. Terse inputs ("same, right side") produce thin tags. Each description should include action, body part, direction, magnitude, unit, duration, modality, and experimental context.
+- HEDit does not yet emit composite tags for events that co-occur (e.g. *pull while walking*). Each event-value level is tagged independently. Compositional annotation, paper PDF parsing, `events.tsv` ingestion, and a GUI editor all land in the planned `hedify` layer (target: 2026 Q4).
+
+## The Annotation Garden Initiative
+
+HEDit is one component of the [Annotation Garden Initiative](https://annotation.garden), an open infrastructure for collaborative annotation of naturalistic neuroscience stimuli. The initiative combines Stim-BIDS (BEP044), HED, and GitHub-versioned annotations into a community-curated commons. Companion projects include `image-annotation` (vision-language-model-based image annotation), `hedify` (the planned GUI editor), and flagship-dataset curation (Natural Scenes Dataset, Forrest Gump, the HBN movies).
+
+The journey is: write descriptions today (HEDit CLI), get an audited GUI tomorrow (hedify), share validated annotations with the field (annotation.garden).
+
+## Talk outline (slide map)
+
+The 20-slide deck (`annotate-those-steps.json`) covers, in order:
+
+1. Title slide
+2. MoBI as a multi-stream experiment
+3. The annotation reality: rich raw data, thin shared annotations
+4. Case study: ds003739 -- beam walking with pull and visual-rotation perturbations
+5. One trial = baseline + perturbation + recovery
+6. Gap #1 -- gait phases and balance loss
+7. Gap #2 -- pull force and rotation parameters
+8. Gap #3 -- the why behind the trial
+9. Re-analyses you cannot do today
+10. The fix in principle -- HED
+11. The HED sidecar pattern
+12. Why current HED workflows stall
+13. HEDit -- what it does, today
+14. HEDit -- the architecture
+15. Inside the pipeline -- three agents, one schema
+16. Demo -- the input you write
+17. Demo -- the output HEDit returns
+18. What's next -- hedify, the GUI
+19. How it all fits -- the Annotation Garden
+20. Try it / contribute / cite
+
+## References
+
+- Peterson, S. M. and Ferris, D. P. (2018). Differentiation in theta and beta electrocortical activity between visual and physical perturbations to walking and standing balance. *eNeuro* 5(4). [doi:10.1523/ENEURO.0207-18.2018](https://doi.org/10.1523/ENEURO.0207-18.2018)
+- Dataset: [ds003739 on NEMAR](https://nemar.org/dataexplorer/detail?dataset_id=ds003739) / [OpenNeuro](https://openneuro.org/datasets/ds003739)
+- HED schema and validators: [hedtags.org](https://hedtags.org)
+- Stim-BIDS (BEP044): [bids.neuroimaging.io](https://bids.neuroimaging.io)
+- HEDit repository: [github.com/Annotation-Garden/HEDit](https://github.com/Annotation-Garden/HEDit)
+- Annotation Garden Initiative: [annotation.garden](https://annotation.garden)
+
+## Acknowledgements
+
+Steven Peterson and Daniel Ferris for the open dataset; the HED working group and the EEGLAB team; the Swartz Center for Computational Neuroscience; and contributors to the Annotation Garden Initiative.
diff --git a/presentations/annotate-those-steps/assets/figures/agi-theme.json b/presentations/annotate-those-steps/assets/figures/agi-theme.json
new file mode 100644
index 0000000..3d716ee
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/figures/agi-theme.json
@@ -0,0 +1,47 @@
+{
+ "theme_id": "agi-mobi-talk",
+ "palette": {
+ "primary": "#184A3D",
+ "accent": "#E99852",
+ "secondary": "#4B4967",
+ "neutral": "#1E293B",
+ "bg": "#FFFFFF",
+ "warn": "#DC2626"
+ },
+ "stroke": {
+ "weight_px": 2,
+ "linejoin": "round",
+ "linecap": "round"
+ },
+ "style_tokens": [
+ "clean scientific illustration",
+ "Nature Neuroscience editorial style",
+ "soft flat shading",
+ "limited palette",
+ "side-on orthographic view",
+ "modern infographic",
+ "no labels in image",
+ "publication-ready"
+ ],
+ "negative_tokens": [
+ "text",
+ "labels",
+ "captions",
+ "watermark",
+ "letters",
+ "numbers",
+ "arrows",
+ "annotations",
+ "logos",
+ "photorealistic skin",
+ "blurry",
+ "cartoonish",
+ "ugly",
+ "low quality"
+ ],
+ "composition": {
+ "aspect": "16:9",
+ "padding_pct": 5,
+ "perspective": "orthographic"
+ }
+}
diff --git a/presentations/annotate-those-steps/assets/figures/experiment-scene-labels.json b/presentations/annotate-those-steps/assets/figures/experiment-scene-labels.json
new file mode 100644
index 0000000..d244c88
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/figures/experiment-scene-labels.json
@@ -0,0 +1,69 @@
+{
+ "width_mm": 240,
+ "labels": [
+ {
+ "text": "EEG cap",
+ "x": 80,
+ "y": 90,
+ "color": "#184A3D",
+ "font_size_pt": 22,
+ "arrow_to": [285, 115]
+ },
+ {
+ "text": "safety harness",
+ "x": 100,
+ "y": 340,
+ "color": "#184A3D",
+ "font_size_pt": 22,
+ "arrow_to": [255, 340]
+ },
+ {
+ "text": "F_pull →",
+ "x": 470,
+ "y": 470,
+ "color": "#DC2626",
+ "font_size_pt": 28,
+ "arrow_to": [380, 530]
+ },
+ {
+ "text": "motor + load cell",
+ "x": 700,
+ "y": 750,
+ "color": "#B45309",
+ "font_size_pt": 22,
+ "arrow_to": [630, 670]
+ },
+ {
+ "text": "narrow beam",
+ "x": 110,
+ "y": 920,
+ "color": "#1E293B",
+ "font_size_pt": 22,
+ "arrow_to": [260, 850]
+ },
+ {
+ "text": "(2.5 × 12.7 cm)",
+ "x": 110,
+ "y": 950,
+ "color": "#64748B",
+ "font_size_pt": 18
+ },
+ {
+ "text": "Oculus Rift DK2",
+ "x": 860,
+ "y": 60,
+ "color": "#4B4967",
+ "font_size_pt": 22,
+ "arrow_to": [1040, 175]
+ },
+ {
+ "text": "20° visual rotation",
+ "x": 1320,
+ "y": 430,
+ "color": "#4B4967",
+ "font_size_pt": 22,
+ "arrow_to": [1340, 290]
+ }
+ ],
+ "scale_bars": []
+}
diff --git a/presentations/annotate-those-steps/assets/figures/experiment-scene-substrate.png b/presentations/annotate-those-steps/assets/figures/experiment-scene-substrate.png
new file mode 100644
index 0000000..d4ea62f
Binary files /dev/null and b/presentations/annotate-those-steps/assets/figures/experiment-scene-substrate.png differ
diff --git a/presentations/annotate-those-steps/assets/figures/experiment-scene.svg b/presentations/annotate-those-steps/assets/figures/experiment-scene.svg
new file mode 100644
index 0000000..42e05e5
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/figures/experiment-scene.svg
@@ -0,0 +1,31 @@
+
+
diff --git a/presentations/annotate-those-steps/assets/figures/gait-cycle-labels.json b/presentations/annotate-those-steps/assets/figures/gait-cycle-labels.json
new file mode 100644
index 0000000..0d28816
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/figures/gait-cycle-labels.json
@@ -0,0 +1,55 @@
+{
+ "width_mm": 240,
+ "labels": [
+ {
+ "text": "Gait phases derivable from motion capture, but missing from events.tsv",
+ "x": 768,
+ "y": 50,
+ "color": "#1E293B",
+ "font_size_pt": 28
+ },
+ {
+ "text": "heel strike",
+ "x": 195,
+ "y": 880,
+ "color": "#184A3D",
+ "font_size_pt": 26
+ },
+ {
+ "text": "double support",
+ "x": 460,
+ "y": 880,
+ "color": "#184A3D",
+ "font_size_pt": 26
+ },
+ {
+ "text": "mid stance",
+ "x": 730,
+ "y": 880,
+ "color": "#184A3D",
+ "font_size_pt": 26
+ },
+ {
+ "text": "leg swing",
+ "x": 990,
+ "y": 880,
+ "color": "#184A3D",
+ "font_size_pt": 26
+ },
+ {
+ "text": "balance loss",
+ "x": 1280,
+ "y": 880,
+ "color": "#DC2626",
+ "font_size_pt": 26
+ },
+ {
+ "text": "all five phases are in the raw motion-capture markers; only the perturbation onset reaches the shared events.tsv",
+ "x": 768,
+ "y": 990,
+ "color": "#64748B",
+ "font_size_pt": 18
+ }
+ ],
+ "scale_bars": []
+}
diff --git a/presentations/annotate-those-steps/assets/figures/gait-cycle-substrate.png b/presentations/annotate-those-steps/assets/figures/gait-cycle-substrate.png
new file mode 100644
index 0000000..5ef1bc6
Binary files /dev/null and b/presentations/annotate-those-steps/assets/figures/gait-cycle-substrate.png differ
diff --git a/presentations/annotate-those-steps/assets/figures/gait-cycle.svg b/presentations/annotate-those-steps/assets/figures/gait-cycle.svg
new file mode 100644
index 0000000..c06a316
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/figures/gait-cycle.svg
@@ -0,0 +1,21 @@
+
+
diff --git a/presentations/annotate-those-steps/assets/figures/mobi-subject-substrate.png b/presentations/annotate-those-steps/assets/figures/mobi-subject-substrate.png
new file mode 100644
index 0000000..d78325d
Binary files /dev/null and b/presentations/annotate-those-steps/assets/figures/mobi-subject-substrate.png differ
diff --git a/presentations/annotate-those-steps/assets/icons/before-after.svg b/presentations/annotate-those-steps/assets/icons/before-after.svg
new file mode 100644
index 0000000..938dcde
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/before-after.svg
@@ -0,0 +1,78 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/experiment-scene.svg b/presentations/annotate-those-steps/assets/icons/experiment-scene.svg
new file mode 100644
index 0000000..d3fef84
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/experiment-scene.svg
@@ -0,0 +1,140 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/garden-roadmap.svg b/presentations/annotate-those-steps/assets/icons/garden-roadmap.svg
new file mode 100644
index 0000000..5b548b7
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/garden-roadmap.svg
@@ -0,0 +1,60 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/hed-anatomy.svg b/presentations/annotate-those-steps/assets/icons/hed-anatomy.svg
new file mode 100644
index 0000000..4d2d3b8
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/hed-anatomy.svg
@@ -0,0 +1,73 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/hed-sidecar.svg b/presentations/annotate-those-steps/assets/icons/hed-sidecar.svg
new file mode 100644
index 0000000..9a403a8
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/hed-sidecar.svg
@@ -0,0 +1,71 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/hedify-preview.svg b/presentations/annotate-those-steps/assets/icons/hedify-preview.svg
new file mode 100644
index 0000000..bd045a3
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/hedify-preview.svg
@@ -0,0 +1,122 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/hedit-overview.svg b/presentations/annotate-those-steps/assets/icons/hedit-overview.svg
new file mode 100644
index 0000000..b061420
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/hedit-overview.svg
@@ -0,0 +1,122 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/hedit-pipeline.svg b/presentations/annotate-those-steps/assets/icons/hedit-pipeline.svg
new file mode 100644
index 0000000..d5a3d61
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/hedit-pipeline.svg
@@ -0,0 +1,83 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/missing-gait.svg b/presentations/annotate-those-steps/assets/icons/missing-gait.svg
new file mode 100644
index 0000000..936f083
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/missing-gait.svg
@@ -0,0 +1,111 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/missing-physics.svg b/presentations/annotate-those-steps/assets/icons/missing-physics.svg
new file mode 100644
index 0000000..b31181c
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/missing-physics.svg
@@ -0,0 +1,130 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/mobi-stack.svg b/presentations/annotate-those-steps/assets/icons/mobi-stack.svg
new file mode 100644
index 0000000..8362fc8
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/mobi-stack.svg
@@ -0,0 +1,49 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/one-trial.svg b/presentations/annotate-those-steps/assets/icons/one-trial.svg
new file mode 100644
index 0000000..a7bf488
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/one-trial.svg
@@ -0,0 +1,100 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/rich-vs-thin.svg b/presentations/annotate-those-steps/assets/icons/rich-vs-thin.svg
new file mode 100644
index 0000000..f21a527
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/rich-vs-thin.svg
@@ -0,0 +1,102 @@
+
diff --git a/presentations/annotate-those-steps/assets/icons/workflow-pain.svg b/presentations/annotate-those-steps/assets/icons/workflow-pain.svg
new file mode 100644
index 0000000..56a8696
--- /dev/null
+++ b/presentations/annotate-those-steps/assets/icons/workflow-pain.svg
@@ -0,0 +1,95 @@
+
diff --git a/presentations/annotate-those-steps/data/README b/presentations/annotate-those-steps/data/README
new file mode 100644
index 0000000..b5d7b2c
--- /dev/null
+++ b/presentations/annotate-those-steps/data/README
@@ -0,0 +1,7 @@
+Data was collected at the University of Michigan by Steven Peterson in the lab of Daniel Ferris. This study's protocol was approved by the University of Michigan Institutional Review Board and all participants provided written consent.
+
+Each data file includes synchronized 128-channel EEG, lower leg EMG, neck EMG, EOG, and motion capture data. Participants performed four 10-minute, same-day sessions where they either stood or walked at 0.22 m/s on a treadmill-mounted balance beam that was 2.5 cm tall and 12.7 cm wide.
+
+During each session, participants were exposed to sensorimotor perturbations (either virtual-reality-induced visual field rotations or side-to-side waist pulls, lasting 0.5 seconds and 1 second in duration, respectively). Each session involved 150 perturbation events, balanced between rotation/pull directions.
+
+We have included the indices of all good channels for each participant in EEG.etc.good_chans of each .set file (includes non-EEG channel indices). Criteria for determining good/bad EEG channels can be found in our eNeuro publication. EEG.etc also includes the resulting ICA sphere and weight matrices when run on only the EEG channels, along with the selected good IC's that were retained for our analyses.
\ No newline at end of file
diff --git a/presentations/annotate-those-steps/data/dataset_description.json b/presentations/annotate-those-steps/data/dataset_description.json
new file mode 100644
index 0000000..9b41bbb
--- /dev/null
+++ b/presentations/annotate-those-steps/data/dataset_description.json
@@ -0,0 +1,24 @@
+{
+ "Name": "Perturbed beam-walking task",
+ "ReferencesAndLinks": [
+ "https://doi.org/10.1016/j.neuroimage.2019.05.038",
+ "https://doi.org/10.1523/ENEURO.0207-18.2018"
+ ],
+ "BIDSVersion": "v1.6.0",
+ "License": "CC0",
+ "Authors": [
+ "Steven Peterson",
+ "Daniel Ferris"
+ ],
+ "Funding": [
+ "National Science Foundation (DGE 1256260)",
+ "Army Research Laboratory (W911NF-10-2-0022)",
+ "National Institutes of Health (R01 NS104772)"
+ ],
+ "EthicsApprovals": [
+ "University of Michigan Health Sciences and Behavioral Sciences Institutional Review Board"
+ ],
+ "Acknowledgements": "We thank Estefania Rios and Zachary Ohs for their assistance with data collections and processing the motion capture data. We would also like to thank members of the Human Neuromechanics Laboratory for input regarding the experiment design and data processing.",
+ "HowToAcknowledge": "Please cite:\n\nPeterson SM & Ferris DP (2018). Differentiation in theta and beta electrocortical activity between visual and physical perturbations to walking and standing balance. eNeuro, 5(4): ENEURO.0207-18.2018.\nDOI: 10.1523/ENEURO.0207-18.2018",
+ "DatasetDOI": "10.18112/openneuro.ds003739.v1.0.2"
+}
\ No newline at end of file
diff --git a/presentations/annotate-those-steps/data/sub-003_ses-01_task-pullstand_events.json b/presentations/annotate-those-steps/data/sub-003_ses-01_task-pullstand_events.json
new file mode 100644
index 0000000..59981e4
--- /dev/null
+++ b/presentations/annotate-those-steps/data/sub-003_ses-01_task-pullstand_events.json
@@ -0,0 +1,21 @@
+{
+ "onset": {
+ "Description": "Event onset",
+ "Units": "second"
+ },
+ "trial_type": {
+ "Description": "Type of event",
+ "Levels": {
+ "stimulus": "Sensorimotor perturbation stimulus"
+ }
+ },
+ "value": {
+ "Description": "Value of event",
+ "Levels": {
+ "pull_left": "Onset of pull perturbation on participant's left side",
+ "pull_right": "Onset of pull perturbation on participant's right side",
+ "rotate_ccw": "Onset of counterclockwise visual field rotation",
+ "rotate_cw": "Onset of clockwise visual field rotation"
+ }
+ }
+}
\ No newline at end of file
diff --git a/presentations/annotate-those-steps/data/sub-003_ses-01_task-pullstand_events.tsv b/presentations/annotate-those-steps/data/sub-003_ses-01_task-pullstand_events.tsv
new file mode 100644
index 0000000..073666e
--- /dev/null
+++ b/presentations/annotate-those-steps/data/sub-003_ses-01_task-pullstand_events.tsv
@@ -0,0 +1,151 @@
+onset duration sample trial_type response_time stim_file value
+14.4187656250 1.0000000000 3691.204 stimulus n/a n/a pull_right
+18.2927656250 1.0000000000 4682.948 stimulus n/a n/a pull_left
+22.8337656250 1.0000000000 5845.444 stimulus n/a n/a pull_left
+27.1667656250 1.0000000000 6954.692 stimulus n/a n/a pull_left
+30.3747656250 1.0000000000 7775.94 stimulus n/a n/a pull_left
+33.5967656250 1.0000000000 8600.772 stimulus n/a n/a pull_right
+37.8077656250 1.0000000000 9678.788 stimulus n/a n/a pull_left
+41.3187656250 1.0000000000 10577.604 stimulus n/a n/a pull_left
+46.1957656250 1.0000000000 11826.116 stimulus n/a n/a pull_right
+50.6227656250 1.0000000000 12959.428 stimulus n/a n/a pull_left
+54.5367656250 1.0000000000 13961.412 stimulus n/a n/a pull_right
+57.7467656250 1.0000000000 14783.172 stimulus n/a n/a pull_left
+61.6547656250 1.0000000000 15783.62 stimulus n/a n/a pull_left
+64.7097656250 1.0000000000 16565.7 stimulus n/a n/a pull_left
+67.8447656250 1.0000000000 17368.26 stimulus n/a n/a pull_right
+71.0767656250 1.0000000000 18195.652 stimulus n/a n/a pull_left
+74.9987656250 1.0000000000 19199.684 stimulus n/a n/a pull_right
+78.2657656250 1.0000000000 20036.036 stimulus n/a n/a pull_left
+83.1798125000 1.0000000000 21294.032 stimulus n/a n/a pull_right
+87.0797656250 1.0000000000 22292.42 stimulus n/a n/a pull_left
+90.7587656250 1.0000000000 23234.244 stimulus n/a n/a pull_left
+95.5037656250 1.0000000000 24448.964 stimulus n/a n/a pull_right
+99.3837656250 1.0000000000 25442.244 stimulus n/a n/a pull_right
+102.6707656250 1.0000000000 26283.716 stimulus n/a n/a pull_left
+106.1647656250 1.0000000000 27178.18 stimulus n/a n/a pull_left
+109.6627656250 1.0000000000 28073.668 stimulus n/a n/a pull_left
+113.3118125000 1.0000000000 29007.824 stimulus n/a n/a pull_left
+118.0357656250 1.0000000000 30217.156 stimulus n/a n/a pull_right
+122.7168125000 1.0000000000 31415.504 stimulus n/a n/a pull_right
+126.6208125000 1.0000000000 32414.928 stimulus n/a n/a pull_right
+131.4838125000 1.0000000000 33659.856 stimulus n/a n/a pull_right
+136.0837656250 1.0000000000 34837.444 stimulus n/a n/a pull_left
+140.7858125000 1.0000000000 36041.168 stimulus n/a n/a pull_right
+144.9858125000 1.0000000000 37116.368 stimulus n/a n/a pull_right
+149.1838125000 1.0000000000 38191.056 stimulus n/a n/a pull_right
+153.2518125000 1.0000000000 39232.464 stimulus n/a n/a pull_right
+157.1258125000 1.0000000000 40224.208 stimulus n/a n/a pull_right
+160.7428125000 1.0000000000 41150.16 stimulus n/a n/a pull_left
+165.6267656250 1.0000000000 42400.452 stimulus n/a n/a pull_right
+170.1427656250 1.0000000000 43556.548 stimulus n/a n/a pull_left
+175.0198125000 1.0000000000 44805.072 stimulus n/a n/a pull_right
+179.7678125000 1.0000000000 46020.56 stimulus n/a n/a pull_left
+184.5398125000 1.0000000000 47242.192 stimulus n/a n/a pull_left
+188.5158125000 1.0000000000 48260.048 stimulus n/a n/a pull_right
+191.6168125000 1.0000000000 49053.904 stimulus n/a n/a pull_right
+196.3318125000 1.0000000000 50260.944 stimulus n/a n/a pull_right
+200.8308125000 1.0000000000 51412.688 stimulus n/a n/a pull_left
+205.2218125000 1.0000000000 52536.784 stimulus n/a n/a pull_left
+208.8048125000 1.0000000000 53454.032 stimulus n/a n/a pull_right
+212.1528125000 1.0000000000 54311.12 stimulus n/a n/a pull_left
+216.7908125000 1.0000000000 55498.448 stimulus n/a n/a pull_right
+220.7038125000 1.0000000000 56500.176 stimulus n/a n/a pull_right
+223.9678125000 1.0000000000 57335.76 stimulus n/a n/a pull_right
+227.2868125000 1.0000000000 58185.424 stimulus n/a n/a pull_left
+231.9718125000 1.0000000000 59384.784 stimulus n/a n/a pull_right
+235.7578125000 1.0000000000 60354 stimulus n/a n/a pull_right
+238.9668125000 1.0000000000 61175.504 stimulus n/a n/a pull_left
+242.0588125000 1.0000000000 61967.056 stimulus n/a n/a pull_left
+246.5038125000 1.0000000000 63104.976 stimulus n/a n/a pull_left
+250.6158593750 1.0000000000 64157.66 stimulus n/a n/a pull_right
+255.2198593750 1.0000000000 65336.284 stimulus n/a n/a pull_right
+259.6328125000 1.0000000000 66466 stimulus n/a n/a pull_right
+263.9788125000 1.0000000000 67578.576 stimulus n/a n/a pull_left
+268.1238125000 1.0000000000 68639.696 stimulus n/a n/a pull_left
+272.6608593750 1.0000000000 69801.18 stimulus n/a n/a pull_right
+275.8358125000 1.0000000000 70613.968 stimulus n/a n/a pull_right
+278.8508593750 1.0000000000 71385.82 stimulus n/a n/a pull_right
+282.0748125000 1.0000000000 72211.152 stimulus n/a n/a pull_left
+286.6178593750 1.0000000000 73374.172 stimulus n/a n/a pull_left
+289.8898125000 1.0000000000 74211.792 stimulus n/a n/a pull_right
+294.7128593750 1.0000000000 75446.492 stimulus n/a n/a pull_left
+298.2188593750 1.0000000000 76344.028 stimulus n/a n/a pull_left
+303.2398593750 1.0000000000 77629.404 stimulus n/a n/a pull_right
+307.7848125000 1.0000000000 78792.912 stimulus n/a n/a pull_right
+312.3398593750 1.0000000000 79959.004 stimulus n/a n/a pull_left
+316.9448593750 1.0000000000 81137.884 stimulus n/a n/a pull_left
+319.9808593750 1.0000000000 81915.1 stimulus n/a n/a pull_right
+324.0258593750 1.0000000000 82950.62 stimulus n/a n/a pull_left
+328.4458593750 1.0000000000 84082.14 stimulus n/a n/a pull_right
+331.4688593750 1.0000000000 84856.028 stimulus n/a n/a pull_left
+335.9338593750 1.0000000000 85999.068 stimulus n/a n/a pull_right
+340.7718593750 1.0000000000 87237.596 stimulus n/a n/a pull_left
+345.4988593750 1.0000000000 88447.708 stimulus n/a n/a pull_right
+349.9638593750 1.0000000000 89590.748 stimulus n/a n/a pull_left
+352.9868593750 1.0000000000 90364.636 stimulus n/a n/a pull_left
+356.7698593750 1.0000000000 91333.084 stimulus n/a n/a pull_right
+359.8518593750 1.0000000000 92122.076 stimulus n/a n/a pull_left
+363.6568593750 1.0000000000 93096.156 stimulus n/a n/a pull_left
+366.9658593750 1.0000000000 93943.26 stimulus n/a n/a pull_left
+370.5128593750 1.0000000000 94851.292 stimulus n/a n/a pull_left
+373.9458593750 1.0000000000 95730.14 stimulus n/a n/a pull_right
+378.4228593750 1.0000000000 96876.252 stimulus n/a n/a pull_right
+381.9928593750 1.0000000000 97790.172 stimulus n/a n/a pull_right
+386.7318593750 1.0000000000 99003.356 stimulus n/a n/a pull_left
+390.0638593750 1.0000000000 99856.348 stimulus n/a n/a pull_right
+393.3719062500 1.0000000000 100703.208 stimulus n/a n/a pull_left
+398.1638593750 1.0000000000 101929.948 stimulus n/a n/a pull_left
+403.1129062500 1.0000000000 103196.904 stimulus n/a n/a pull_left
+406.8019062500 1.0000000000 104141.288 stimulus n/a n/a pull_left
+410.0628593750 1.0000000000 104976.092 stimulus n/a n/a pull_left
+414.8059062500 1.0000000000 106190.312 stimulus n/a n/a pull_right
+419.1539062500 1.0000000000 107303.4 stimulus n/a n/a pull_left
+424.1199062500 1.0000000000 108574.696 stimulus n/a n/a pull_right
+427.6949062500 1.0000000000 109489.896 stimulus n/a n/a pull_right
+432.6489062500 1.0000000000 110758.12 stimulus n/a n/a pull_right
+437.1719062500 1.0000000000 111916.008 stimulus n/a n/a pull_right
+440.8859062500 1.0000000000 112866.792 stimulus n/a n/a pull_left
+444.9729062500 1.0000000000 113913.064 stimulus n/a n/a pull_left
+448.1199062500 1.0000000000 114718.696 stimulus n/a n/a pull_left
+452.8309062500 1.0000000000 115924.712 stimulus n/a n/a pull_left
+457.6099062500 1.0000000000 117148.136 stimulus n/a n/a pull_right
+461.7799062500 1.0000000000 118215.656 stimulus n/a n/a pull_right
+464.8749062500 1.0000000000 119007.976 stimulus n/a n/a pull_left
+468.8939062500 1.0000000000 120036.84 stimulus n/a n/a pull_left
+473.2699062500 1.0000000000 121157.096 stimulus n/a n/a pull_right
+476.4399062500 1.0000000000 121968.616 stimulus n/a n/a pull_left
+480.1069062500 1.0000000000 122907.368 stimulus n/a n/a pull_left
+483.3249062500 1.0000000000 123731.176 stimulus n/a n/a pull_right
+487.9389062500 1.0000000000 124912.36 stimulus n/a n/a pull_right
+492.3539062500 1.0000000000 126042.6 stimulus n/a n/a pull_right
+495.7879062500 1.0000000000 126921.704 stimulus n/a n/a pull_right
+499.0429531250 1.0000000000 127754.996 stimulus n/a n/a pull_left
+502.2709062500 1.0000000000 128581.352 stimulus n/a n/a pull_left
+506.1179062500 1.0000000000 129566.184 stimulus n/a n/a pull_left
+510.4549062500 1.0000000000 130676.456 stimulus n/a n/a pull_left
+515.0219531250 1.0000000000 131845.62 stimulus n/a n/a pull_right
+519.4479531250 1.0000000000 132978.676 stimulus n/a n/a pull_right
+524.3249531250 1.0000000000 134227.188 stimulus n/a n/a pull_right
+527.4999531250 1.0000000000 135039.988 stimulus n/a n/a pull_right
+531.0569531250 1.0000000000 135950.58 stimulus n/a n/a pull_right
+534.0459531250 1.0000000000 136715.764 stimulus n/a n/a pull_right
+537.0709531250 1.0000000000 137490.164 stimulus n/a n/a pull_right
+541.8359531250 1.0000000000 138710.004 stimulus n/a n/a pull_left
+545.1499531250 1.0000000000 139558.388 stimulus n/a n/a pull_left
+548.2609531250 1.0000000000 140354.804 stimulus n/a n/a pull_left
+552.7859531250 1.0000000000 141513.204 stimulus n/a n/a pull_left
+556.7979531250 1.0000000000 142540.276 stimulus n/a n/a pull_right
+560.2789531250 1.0000000000 143431.412 stimulus n/a n/a pull_right
+564.0469531250 1.0000000000 144396.02 stimulus n/a n/a pull_right
+567.0559531250 1.0000000000 145166.324 stimulus n/a n/a pull_right
+571.1839531250 1.0000000000 146223.092 stimulus n/a n/a pull_left
+576.0629531250 1.0000000000 147472.116 stimulus n/a n/a pull_right
+580.4809531250 1.0000000000 148603.124 stimulus n/a n/a pull_right
+583.7119531250 1.0000000000 149430.26 stimulus n/a n/a pull_right
+587.0119531250 1.0000000000 150275.06 stimulus n/a n/a pull_left
+590.2049531250 1.0000000000 151092.468 stimulus n/a n/a pull_left
+593.5349531250 1.0000000000 151944.948 stimulus n/a n/a pull_left
+598.3199531250 1.0000000000 153169.908 stimulus n/a n/a pull_right
+602.7239531250 1.0000000000 154297.332 stimulus n/a n/a pull_left
+606.9390000000 1.0000000000 155376.384 stimulus n/a n/a pull_right
diff --git a/presentations/annotate-those-steps/data/sub-003_ses-02_task-pullwalk_events.json b/presentations/annotate-those-steps/data/sub-003_ses-02_task-pullwalk_events.json
new file mode 100644
index 0000000..59981e4
--- /dev/null
+++ b/presentations/annotate-those-steps/data/sub-003_ses-02_task-pullwalk_events.json
@@ -0,0 +1,21 @@
+{
+ "onset": {
+ "Description": "Event onset",
+ "Units": "second"
+ },
+ "trial_type": {
+ "Description": "Type of event",
+ "Levels": {
+ "stimulus": "Sensorimotor perturbation stimulus"
+ }
+ },
+ "value": {
+ "Description": "Value of event",
+ "Levels": {
+ "pull_left": "Onset of pull perturbation on participant's left side",
+ "pull_right": "Onset of pull perturbation on participant's right side",
+ "rotate_ccw": "Onset of counterclockwise visual field rotation",
+ "rotate_cw": "Onset of clockwise visual field rotation"
+ }
+ }
+}
\ No newline at end of file
diff --git a/presentations/annotate-those-steps/data/sub-003_ses-02_task-pullwalk_events.tsv b/presentations/annotate-those-steps/data/sub-003_ses-02_task-pullwalk_events.tsv
new file mode 100644
index 0000000..b124235
--- /dev/null
+++ b/presentations/annotate-those-steps/data/sub-003_ses-02_task-pullwalk_events.tsv
@@ -0,0 +1,151 @@
+onset duration sample trial_type response_time stim_file value
+14.1789375000 1.0000000000 3629.808 stimulus n/a n/a pull_left
+17.8429375000 1.0000000000 4567.792 stimulus n/a n/a pull_left
+21.6689375000 1.0000000000 5547.248 stimulus n/a n/a pull_right
+26.5839375000 1.0000000000 6805.488 stimulus n/a n/a pull_right
+31.2789375000 1.0000000000 8007.408 stimulus n/a n/a pull_left
+35.8399843750 1.0000000000 9175.036 stimulus n/a n/a pull_left
+40.0009843750 1.0000000000 10240.252 stimulus n/a n/a pull_right
+43.9139843750 1.0000000000 11241.98 stimulus n/a n/a pull_left
+48.3039843750 1.0000000000 12365.82 stimulus n/a n/a pull_right
+52.2389843750 1.0000000000 13373.18 stimulus n/a n/a pull_right
+55.9889843750 1.0000000000 14333.18 stimulus n/a n/a pull_left
+60.0329843750 1.0000000000 15368.444 stimulus n/a n/a pull_left
+64.6639843750 1.0000000000 16553.98 stimulus n/a n/a pull_right
+68.6389843750 1.0000000000 17571.58 stimulus n/a n/a pull_left
+73.5089843750 1.0000000000 18818.3 stimulus n/a n/a pull_right
+77.2099843750 1.0000000000 19765.756 stimulus n/a n/a pull_right
+81.6999843750 1.0000000000 20915.196 stimulus n/a n/a pull_left
+86.6489843750 1.0000000000 22182.14 stimulus n/a n/a pull_left
+90.4519843750 1.0000000000 23155.708 stimulus n/a n/a pull_left
+95.2639843750 1.0000000000 24387.58 stimulus n/a n/a pull_left
+99.3049843750 1.0000000000 25422.076 stimulus n/a n/a pull_right
+104.0539843750 1.0000000000 26637.82 stimulus n/a n/a pull_right
+108.6479843750 1.0000000000 27813.884 stimulus n/a n/a pull_left
+111.8179843750 1.0000000000 28625.404 stimulus n/a n/a pull_left
+115.4579843750 1.0000000000 29557.244 stimulus n/a n/a pull_right
+119.8599843750 1.0000000000 30684.156 stimulus n/a n/a pull_left
+124.5319843750 1.0000000000 31880.188 stimulus n/a n/a pull_left
+128.9459843750 1.0000000000 33010.172 stimulus n/a n/a pull_right
+133.6579843750 1.0000000000 34216.444 stimulus n/a n/a pull_left
+137.6079843750 1.0000000000 35227.644 stimulus n/a n/a pull_left
+142.3539843750 1.0000000000 36442.62 stimulus n/a n/a pull_right
+146.9449843750 1.0000000000 37617.916 stimulus n/a n/a pull_left
+150.0680312500 1.0000000000 38417.416 stimulus n/a n/a pull_left
+153.3159843750 1.0000000000 39248.892 stimulus n/a n/a pull_left
+156.7019843750 1.0000000000 40115.708 stimulus n/a n/a pull_left
+160.0710312500 1.0000000000 40978.184 stimulus n/a n/a pull_left
+165.0539843750 1.0000000000 42253.82 stimulus n/a n/a pull_right
+168.1460312500 1.0000000000 43045.384 stimulus n/a n/a pull_left
+172.3420312500 1.0000000000 44119.56 stimulus n/a n/a pull_right
+175.3400312500 1.0000000000 44887.048 stimulus n/a n/a pull_right
+179.3770312500 1.0000000000 45920.52 stimulus n/a n/a pull_left
+183.7570312500 1.0000000000 47041.8 stimulus n/a n/a pull_left
+187.3370312500 1.0000000000 47958.28 stimulus n/a n/a pull_right
+190.5480312500 1.0000000000 48780.296 stimulus n/a n/a pull_left
+194.3010312500 1.0000000000 49741.064 stimulus n/a n/a pull_left
+198.7780312500 1.0000000000 50887.176 stimulus n/a n/a pull_left
+202.1260312500 1.0000000000 51744.264 stimulus n/a n/a pull_right
+206.7960312500 1.0000000000 52939.784 stimulus n/a n/a pull_right
+210.5600312500 1.0000000000 53903.368 stimulus n/a n/a pull_left
+215.4270312500 1.0000000000 55149.32 stimulus n/a n/a pull_left
+220.0720312500 1.0000000000 56338.44 stimulus n/a n/a pull_left
+223.7440312500 1.0000000000 57278.472 stimulus n/a n/a pull_right
+227.6930312500 1.0000000000 58289.416 stimulus n/a n/a pull_right
+230.8520312500 1.0000000000 59098.12 stimulus n/a n/a pull_left
+235.6370312500 1.0000000000 60323.08 stimulus n/a n/a pull_right
+239.3060312500 1.0000000000 61262.344 stimulus n/a n/a pull_left
+243.3790312500 1.0000000000 62305.032 stimulus n/a n/a pull_right
+247.2550312500 1.0000000000 63297.288 stimulus n/a n/a pull_left
+251.9110781250 1.0000000000 64489.236 stimulus n/a n/a pull_left
+255.8150781250 1.0000000000 65488.66 stimulus n/a n/a pull_right
+260.3700781250 1.0000000000 66654.74 stimulus n/a n/a pull_right
+264.5090781250 1.0000000000 67714.324 stimulus n/a n/a pull_right
+267.8630781250 1.0000000000 68572.948 stimulus n/a n/a pull_left
+271.1690312500 1.0000000000 69419.272 stimulus n/a n/a pull_left
+274.8810312500 1.0000000000 70369.544 stimulus n/a n/a pull_left
+278.2930781250 1.0000000000 71243.028 stimulus n/a n/a pull_right
+282.2090781250 1.0000000000 72245.524 stimulus n/a n/a pull_right
+286.1210781250 1.0000000000 73246.996 stimulus n/a n/a pull_right
+289.4630781250 1.0000000000 74102.548 stimulus n/a n/a pull_right
+293.9640781250 1.0000000000 75254.804 stimulus n/a n/a pull_right
+297.0630781250 1.0000000000 76048.148 stimulus n/a n/a pull_right
+300.5430781250 1.0000000000 76939.028 stimulus n/a n/a pull_left
+305.2660781250 1.0000000000 78148.116 stimulus n/a n/a pull_right
+309.5290781250 1.0000000000 79239.444 stimulus n/a n/a pull_left
+312.8910781250 1.0000000000 80100.116 stimulus n/a n/a pull_right
+316.8100781250 1.0000000000 81103.38 stimulus n/a n/a pull_right
+321.3830781250 1.0000000000 82274.068 stimulus n/a n/a pull_right
+325.3440781250 1.0000000000 83288.084 stimulus n/a n/a pull_right
+328.5430781250 1.0000000000 84107.028 stimulus n/a n/a pull_right
+332.0130781250 1.0000000000 84995.348 stimulus n/a n/a pull_right
+335.3340781250 1.0000000000 85845.524 stimulus n/a n/a pull_left
+339.5770781250 1.0000000000 86931.732 stimulus n/a n/a pull_left
+344.0990781250 1.0000000000 88089.364 stimulus n/a n/a pull_right
+348.6230781250 1.0000000000 89247.508 stimulus n/a n/a pull_left
+352.3440781250 1.0000000000 90200.084 stimulus n/a n/a pull_right
+356.6260781250 1.0000000000 91296.276 stimulus n/a n/a pull_left
+360.2770781250 1.0000000000 92230.932 stimulus n/a n/a pull_right
+364.3660781250 1.0000000000 93277.716 stimulus n/a n/a pull_right
+368.8540781250 1.0000000000 94426.644 stimulus n/a n/a pull_right
+372.5520781250 1.0000000000 95373.332 stimulus n/a n/a pull_left
+375.9011250000 1.0000000000 96230.688 stimulus n/a n/a pull_left
+379.7471250000 1.0000000000 97215.264 stimulus n/a n/a pull_left
+383.8521250000 1.0000000000 98266.144 stimulus n/a n/a pull_right
+387.8971250000 1.0000000000 99301.664 stimulus n/a n/a pull_right
+391.3261250000 1.0000000000 100179.488 stimulus n/a n/a pull_right
+395.5571250000 1.0000000000 101262.624 stimulus n/a n/a pull_right
+400.3991250000 1.0000000000 102502.176 stimulus n/a n/a pull_right
+404.6991250000 1.0000000000 103602.976 stimulus n/a n/a pull_left
+407.9311250000 1.0000000000 104430.368 stimulus n/a n/a pull_right
+412.5641250000 1.0000000000 105616.416 stimulus n/a n/a pull_left
+416.4171250000 1.0000000000 106602.784 stimulus n/a n/a pull_left
+420.6131250000 1.0000000000 107676.96 stimulus n/a n/a pull_right
+423.7001250000 1.0000000000 108467.232 stimulus n/a n/a pull_right
+427.9241250000 1.0000000000 109548.576 stimulus n/a n/a pull_right
+432.4241250000 1.0000000000 110700.576 stimulus n/a n/a pull_left
+435.6411250000 1.0000000000 111524.128 stimulus n/a n/a pull_right
+439.4251250000 1.0000000000 112492.832 stimulus n/a n/a pull_left
+444.1231250000 1.0000000000 113695.52 stimulus n/a n/a pull_right
+447.6531250000 1.0000000000 114599.2 stimulus n/a n/a pull_right
+450.9521250000 1.0000000000 115443.744 stimulus n/a n/a pull_left
+455.1071250000 1.0000000000 116507.424 stimulus n/a n/a pull_left
+459.7751250000 1.0000000000 117702.432 stimulus n/a n/a pull_right
+464.7131250000 1.0000000000 118966.56 stimulus n/a n/a pull_right
+468.1631250000 1.0000000000 119849.76 stimulus n/a n/a pull_left
+473.0591250000 1.0000000000 121103.136 stimulus n/a n/a pull_right
+477.6571718750 1.0000000000 122280.236 stimulus n/a n/a pull_right
+481.9271718750 1.0000000000 123373.356 stimulus n/a n/a pull_right
+485.3381250000 1.0000000000 124246.56 stimulus n/a n/a pull_right
+488.8961250000 1.0000000000 125157.408 stimulus n/a n/a pull_right
+492.4971718750 1.0000000000 126079.276 stimulus n/a n/a pull_left
+495.8191718750 1.0000000000 126929.708 stimulus n/a n/a pull_left
+500.5661718750 1.0000000000 128144.94 stimulus n/a n/a pull_left
+504.2911718750 1.0000000000 129098.54 stimulus n/a n/a pull_right
+507.8161718750 1.0000000000 130000.94 stimulus n/a n/a pull_left
+512.3351718750 1.0000000000 131157.804 stimulus n/a n/a pull_right
+515.3381718750 1.0000000000 131926.572 stimulus n/a n/a pull_right
+519.4471718750 1.0000000000 132978.476 stimulus n/a n/a pull_right
+524.3101718750 1.0000000000 134223.404 stimulus n/a n/a pull_left
+528.1111718750 1.0000000000 135196.46 stimulus n/a n/a pull_left
+531.1191718750 1.0000000000 135966.508 stimulus n/a n/a pull_left
+534.5681718750 1.0000000000 136849.452 stimulus n/a n/a pull_left
+539.4481718750 1.0000000000 138098.732 stimulus n/a n/a pull_right
+543.8091718750 1.0000000000 139215.148 stimulus n/a n/a pull_left
+546.9031718750 1.0000000000 140007.212 stimulus n/a n/a pull_left
+550.3921718750 1.0000000000 140900.396 stimulus n/a n/a pull_left
+554.7271718750 1.0000000000 142010.156 stimulus n/a n/a pull_left
+559.2791718750 1.0000000000 143175.468 stimulus n/a n/a pull_left
+562.8801718750 1.0000000000 144097.324 stimulus n/a n/a pull_left
+567.3681718750 1.0000000000 145246.252 stimulus n/a n/a pull_left
+571.3091718750 1.0000000000 146255.148 stimulus n/a n/a pull_right
+575.1241718750 1.0000000000 147231.788 stimulus n/a n/a pull_right
+579.2981718750 1.0000000000 148300.332 stimulus n/a n/a pull_right
+582.9291718750 1.0000000000 149229.868 stimulus n/a n/a pull_left
+586.0241718750 1.0000000000 150022.188 stimulus n/a n/a pull_left
+590.3282187500 1.0000000000 151124.024 stimulus n/a n/a pull_right
+593.6802187500 1.0000000000 151982.136 stimulus n/a n/a pull_right
+598.4822187500 1.0000000000 153211.448 stimulus n/a n/a pull_right
+602.8251718750 1.0000000000 154323.244 stimulus n/a n/a pull_right
+605.8572187500 1.0000000000 155099.448 stimulus n/a n/a pull_left
+609.7302187500 1.0000000000 156090.936 stimulus n/a n/a pull_left
diff --git a/presentations/annotate-those-steps/data/sub-003_ses-03_task-rotatestand_events.json b/presentations/annotate-those-steps/data/sub-003_ses-03_task-rotatestand_events.json
new file mode 100644
index 0000000..59981e4
--- /dev/null
+++ b/presentations/annotate-those-steps/data/sub-003_ses-03_task-rotatestand_events.json
@@ -0,0 +1,21 @@
+{
+ "onset": {
+ "Description": "Event onset",
+ "Units": "second"
+ },
+ "trial_type": {
+ "Description": "Type of event",
+ "Levels": {
+ "stimulus": "Sensorimotor perturbation stimulus"
+ }
+ },
+ "value": {
+ "Description": "Value of event",
+ "Levels": {
+ "pull_left": "Onset of pull perturbation on participant's left side",
+ "pull_right": "Onset of pull perturbation on participant's right side",
+ "rotate_ccw": "Onset of counterclockwise visual field rotation",
+ "rotate_cw": "Onset of clockwise visual field rotation"
+ }
+ }
+}
\ No newline at end of file
diff --git a/presentations/annotate-those-steps/data/sub-003_ses-03_task-rotatestand_events.tsv b/presentations/annotate-those-steps/data/sub-003_ses-03_task-rotatestand_events.tsv
new file mode 100644
index 0000000..b20029a
--- /dev/null
+++ b/presentations/annotate-those-steps/data/sub-003_ses-03_task-rotatestand_events.tsv
@@ -0,0 +1,150 @@
+onset duration sample trial_type response_time stim_file value
+23.5543206688 0.5000000000 6029.9061 stimulus n/a n/a rotate_ccw
+26.8301817825 0.5000000000 6868.5265 stimulus n/a n/a rotate_ccw
+31.3770088112 0.5000000000 8032.5143 stimulus n/a n/a rotate_ccw
+35.5370090768 0.5000000000 9097.4743 stimulus n/a n/a rotate_ccw
+39.3228584852 0.5000000000 10066.6518 stimulus n/a n/a rotate_ccw
+43.6168190037 0.5000000000 11165.9057 stimulus n/a n/a rotate_ccw
+47.1765480495 0.5000000000 12077.1963 stimulus n/a n/a rotate_cw
+50.3362690001 0.5000000000 12886.0849 stimulus n/a n/a rotate_cw
+55.3232865753 0.5000000000 14162.7614 stimulus n/a n/a rotate_cw
+58.7622740619 0.5000000000 15043.1422 stimulus n/a n/a rotate_ccw
+62.6296745439 0.5000000000 16033.1967 stimulus n/a n/a rotate_cw
+65.6498303828 0.5000000000 16806.3566 stimulus n/a n/a rotate_cw
+69.6162891651 0.5000000000 17821.77 stimulus n/a n/a rotate_cw
+73.0698662807 0.5000000000 18705.8858 stimulus n/a n/a rotate_ccw
+77.3360546072 0.5000000000 19798.03 stimulus n/a n/a rotate_ccw
+80.6166792964 0.5000000000 20637.8699 stimulus n/a n/a rotate_cw
+84.4166141385 0.5000000000 21610.6532 stimulus n/a n/a rotate_cw
+87.8571088730 0.5000000000 22491.4199 stimulus n/a n/a rotate_ccw
+91.8958169886 0.5000000000 23525.3291 stimulus n/a n/a rotate_ccw
+95.8559170842 0.5000000000 24539.1148 stimulus n/a n/a rotate_ccw
+99.9494715954 0.5000000000 25587.0647 stimulus n/a n/a rotate_ccw
+103.9222734625 0.5000000000 26604.102 stimulus n/a n/a rotate_cw
+108.4557770985 0.5000000000 27764.6789 stimulus n/a n/a rotate_ccw
+112.2689059995 0.5000000000 28740.8399 stimulus n/a n/a rotate_ccw
+117.1354427361 0.5000000000 29986.6733 stimulus n/a n/a rotate_ccw
+121.2020544305 0.5000000000 31027.7259 stimulus n/a n/a rotate_cw
+125.9351626173 0.5000000000 32239.4016 stimulus n/a n/a rotate_ccw
+130.2560454238 0.5000000000 33345.5476 stimulus n/a n/a rotate_ccw
+135.1894532769 0.5000000000 34608.5 stimulus n/a n/a rotate_ccw
+139.8823174249 0.5000000000 35809.8733 stimulus n/a n/a rotate_ccw
+143.1618832220 0.5000000000 36649.4421 stimulus n/a n/a rotate_ccw
+148.0816962869 0.5000000000 37908.9142 stimulus n/a n/a rotate_ccw
+152.2686442962 0.5000000000 38980.7729 stimulus n/a n/a rotate_cw
+155.7179098880 0.5000000000 39863.7849 stimulus n/a n/a rotate_ccw
+158.9751568462 0.5000000000 40697.6402 stimulus n/a n/a rotate_cw
+162.1486154677 0.5000000000 41510.0456 stimulus n/a n/a rotate_cw
+165.2683604901 0.5000000000 42308.7003 stimulus n/a n/a rotate_cw
+170.1483405094 0.5000000000 43557.9752 stimulus n/a n/a rotate_cw
+175.0687287999 0.5000000000 44817.5946 stimulus n/a n/a rotate_cw
+179.8818882042 0.5000000000 46049.7634 stimulus n/a n/a rotate_cw
+184.6013289284 0.5000000000 47257.9402 stimulus n/a n/a rotate_ccw
+187.8149137518 0.5000000000 48080.6179 stimulus n/a n/a rotate_ccw
+191.7612880833 0.5000000000 49090.8897 stimulus n/a n/a rotate_ccw
+196.1217690816 0.5000000000 50207.1729 stimulus n/a n/a rotate_cw
+200.5884722204 0.5000000000 51350.6489 stimulus n/a n/a rotate_cw
+204.8281878468 0.5000000000 52436.0161 stimulus n/a n/a rotate_cw
+209.1883260102 0.5000000000 53552.2115 stimulus n/a n/a rotate_ccw
+212.2284271122 0.5000000000 54330.4773 stimulus n/a n/a rotate_ccw
+215.7884341224 0.5000000000 55241.8391 stimulus n/a n/a rotate_cw
+220.3482039344 0.5000000000 56409.1402 stimulus n/a n/a rotate_cw
+223.8013741638 0.5000000000 57293.1518 stimulus n/a n/a rotate_ccw
+228.1081604508 0.5000000000 58395.6891 stimulus n/a n/a rotate_cw
+232.7743704213 0.5000000000 59590.2388 stimulus n/a n/a rotate_ccw
+237.0012656182 0.5000000000 60672.324 stimulus n/a n/a rotate_cw
+240.8014427029 0.5000000000 61645.1693 stimulus n/a n/a rotate_ccw
+245.5079952513 0.5000000000 62850.0468 stimulus n/a n/a rotate_cw
+248.7074691842 0.5000000000 63669.1121 stimulus n/a n/a rotate_cw
+253.2146598365 0.5000000000 64822.9529 stimulus n/a n/a rotate_cw
+256.8271047658 0.5000000000 65747.7388 stimulus n/a n/a rotate_cw
+260.6675993836 0.5000000000 66730.9054 stimulus n/a n/a rotate_ccw
+264.4014218641 0.5000000000 67686.764 stimulus n/a n/a rotate_ccw
+268.9877793392 0.5000000000 68860.8715 stimulus n/a n/a rotate_ccw
+273.1478752709 0.5000000000 69925.8561 stimulus n/a n/a rotate_cw
+276.4672757566 0.5000000000 70775.6226 stimulus n/a n/a rotate_cw
+280.6139226557 0.5000000000 71837.1642 stimulus n/a n/a rotate_ccw
+283.7190874930 0.5000000000 72632.0864 stimulus n/a n/a rotate_cw
+286.9471605303 0.5000000000 73458.4731 stimulus n/a n/a rotate_cw
+291.1475772791 0.5000000000 74533.7798 stimulus n/a n/a rotate_cw
+294.7207873822 0.5000000000 75448.5216 stimulus n/a n/a rotate_cw
+299.0941282265 0.5000000000 76568.0968 stimulus n/a n/a rotate_ccw
+302.9734844530 0.5000000000 77561.212 stimulus n/a n/a rotate_ccw
+306.4275448241 0.5000000000 78445.4515 stimulus n/a n/a rotate_cw
+311.1867890321 0.5000000000 79663.818 stimulus n/a n/a rotate_ccw
+315.8272998403 0.5000000000 80851.7888 stimulus n/a n/a rotate_cw
+320.4806224560 0.5000000000 82043.0393 stimulus n/a n/a rotate_ccw
+325.3176091782 0.5000000000 83281.3079 stimulus n/a n/a rotate_ccw
+329.8802772912 0.5000000000 84449.351 stimulus n/a n/a rotate_ccw
+333.3333506225 0.5000000000 85333.3378 stimulus n/a n/a rotate_ccw
+336.9330597014 0.5000000000 86254.8633 stimulus n/a n/a rotate_cw
+341.0264282194 0.5000000000 87302.7656 stimulus n/a n/a rotate_cw
+344.8662995740 0.5000000000 88285.7727 stimulus n/a n/a rotate_cw
+348.8002431175 0.5000000000 89292.8622 stimulus n/a n/a rotate_cw
+351.9464210134 0.5000000000 90098.2838 stimulus n/a n/a rotate_ccw
+356.1595982471 0.5000000000 91176.8572 stimulus n/a n/a rotate_cw
+360.1462482312 0.5000000000 92197.4395 stimulus n/a n/a rotate_ccw
+363.5195162846 0.5000000000 93060.9962 stimulus n/a n/a rotate_ccw
+368.5061746001 0.5000000000 94337.5807 stimulus n/a n/a rotate_cw
+372.0262430447 0.5000000000 95238.7182 stimulus n/a n/a rotate_cw
+375.0663737084 0.5000000000 96016.9917 stimulus n/a n/a rotate_ccw
+380.0392660233 0.5000000000 97290.0521 stimulus n/a n/a rotate_ccw
+384.4663336057 0.5000000000 98423.3814 stimulus n/a n/a rotate_cw
+387.7194115119 0.5000000000 99256.1693 stimulus n/a n/a rotate_cw
+392.3858846659 0.5000000000 100450.7865 stimulus n/a n/a rotate_ccw
+395.4796164299 0.5000000000 101242.7818 stimulus n/a n/a rotate_cw
+400.1060188116 0.5000000000 102427.1408 stimulus n/a n/a rotate_ccw
+404.5101467549 0.5000000000 103554.5976 stimulus n/a n/a rotate_cw
+408.1870177844 0.5000000000 104495.8766 stimulus n/a n/a rotate_ccw
+412.3061794888 0.5000000000 105550.3819 stimulus n/a n/a rotate_ccw
+416.3992725053 0.5000000000 106598.2138 stimulus n/a n/a rotate_ccw
+420.0526508419 0.5000000000 107533.4786 stimulus n/a n/a rotate_ccw
+424.2122163005 0.5000000000 108598.3274 stimulus n/a n/a rotate_cw
+428.7720928646 0.5000000000 109765.6558 stimulus n/a n/a rotate_ccw
+431.8920107413 0.5000000000 110564.3547 stimulus n/a n/a rotate_ccw
+435.4386093675 0.5000000000 111472.284 stimulus n/a n/a rotate_cw
+440.2785407852 0.5000000000 112711.3064 stimulus n/a n/a rotate_cw
+444.8789446894 0.5000000000 113889.0098 stimulus n/a n/a rotate_cw
+449.2124418133 0.5000000000 114998.3851 stimulus n/a n/a rotate_ccw
+452.3186232521 0.5000000000 115793.5676 stimulus n/a n/a rotate_cw
+456.6124536168 0.5000000000 116892.7881 stimulus n/a n/a rotate_ccw
+460.9982778038 0.5000000000 118015.5591 stimulus n/a n/a rotate_cw
+465.9054802463 0.5000000000 119271.8029 stimulus n/a n/a rotate_cw
+470.3054058797 0.5000000000 120398.1839 stimulus n/a n/a rotate_cw
+474.1986204880 0.5000000000 121394.8468 stimulus n/a n/a rotate_ccw
+478.2249655629 0.5000000000 122425.5912 stimulus n/a n/a rotate_cw
+482.5587554320 0.5000000000 123535.0414 stimulus n/a n/a rotate_cw
+487.4647212010 0.5000000000 124790.9686 stimulus n/a n/a rotate_ccw
+491.6384772023 0.5000000000 125859.4502 stimulus n/a n/a rotate_ccw
+496.4647542984 0.5000000000 127094.9771 stimulus n/a n/a rotate_ccw
+500.1177737853 0.5000000000 128030.1501 stimulus n/a n/a rotate_ccw
+505.0777122300 0.5000000000 129299.8943 stimulus n/a n/a rotate_cw
+508.9848960770 0.5000000000 130300.1334 stimulus n/a n/a rotate_cw
+512.1317444536 0.5000000000 131105.7266 stimulus n/a n/a rotate_cw
+515.7581869523 0.5000000000 132034.0959 stimulus n/a n/a rotate_cw
+520.6249527938 0.5000000000 133279.9879 stimulus n/a n/a rotate_cw
+525.5981973874 0.5000000000 134553.1385 stimulus n/a n/a rotate_cw
+529.1709537968 0.5000000000 135467.7642 stimulus n/a n/a rotate_ccw
+532.1843535047 0.5000000000 136239.1945 stimulus n/a n/a rotate_cw
+536.4115324139 0.5000000000 137321.3523 stimulus n/a n/a rotate_cw
+539.9712446259 0.5000000000 138232.6386 stimulus n/a n/a rotate_cw
+542.9841159148 0.5000000000 139003.9337 stimulus n/a n/a rotate_ccw
+547.2385131412 0.5000000000 140093.0594 stimulus n/a n/a rotate_cw
+551.6373987694 0.5000000000 141219.1741 stimulus n/a n/a rotate_cw
+555.2376046537 0.5000000000 142140.8268 stimulus n/a n/a rotate_ccw
+560.1441789050 0.5000000000 143396.9098 stimulus n/a n/a rotate_cw
+563.2642950939 0.5000000000 144195.6595 stimulus n/a n/a rotate_ccw
+566.9840485636 0.5000000000 145147.9164 stimulus n/a n/a rotate_cw
+570.7579204666 0.5000000000 146114.0276 stimulus n/a n/a rotate_ccw
+574.0769637456 0.5000000000 146963.7027 stimulus n/a n/a rotate_ccw
+577.7569083945 0.5000000000 147905.7685 stimulus n/a n/a rotate_ccw
+581.6376174883 0.5000000000 148899.2301 stimulus n/a n/a rotate_ccw
+585.6643082730 0.5000000000 149930.0629 stimulus n/a n/a rotate_ccw
+589.7043240934 0.5000000000 150964.307 stimulus n/a n/a rotate_cw
+592.8767923911 0.5000000000 151776.4589 stimulus n/a n/a rotate_ccw
+596.7842484536 0.5000000000 152776.7676 stimulus n/a n/a rotate_cw
+600.6899369605 0.5000000000 153776.6239 stimulus n/a n/a rotate_ccw
+605.5302099830 0.5000000000 155015.7338 stimulus n/a n/a rotate_cw
+610.2106100863 0.5000000000 156213.9162 stimulus n/a n/a rotate_cw
+613.2770915073 0.5000000000 156998.9354 stimulus n/a n/a rotate_cw
+616.3170275558 0.5000000000 157777.1591 stimulus n/a n/a rotate_ccw
diff --git a/presentations/annotate-those-steps/data/sub-003_ses-04_task-rotatewalk_events.json b/presentations/annotate-those-steps/data/sub-003_ses-04_task-rotatewalk_events.json
new file mode 100644
index 0000000..59981e4
--- /dev/null
+++ b/presentations/annotate-those-steps/data/sub-003_ses-04_task-rotatewalk_events.json
@@ -0,0 +1,21 @@
+{
+ "onset": {
+ "Description": "Event onset",
+ "Units": "second"
+ },
+ "trial_type": {
+ "Description": "Type of event",
+ "Levels": {
+ "stimulus": "Sensorimotor perturbation stimulus"
+ }
+ },
+ "value": {
+ "Description": "Value of event",
+ "Levels": {
+ "pull_left": "Onset of pull perturbation on participant's left side",
+ "pull_right": "Onset of pull perturbation on participant's right side",
+ "rotate_ccw": "Onset of counterclockwise visual field rotation",
+ "rotate_cw": "Onset of clockwise visual field rotation"
+ }
+ }
+}
\ No newline at end of file
diff --git a/presentations/annotate-those-steps/data/sub-003_ses-04_task-rotatewalk_events.tsv b/presentations/annotate-those-steps/data/sub-003_ses-04_task-rotatewalk_events.tsv
new file mode 100644
index 0000000..1aabab3
--- /dev/null
+++ b/presentations/annotate-those-steps/data/sub-003_ses-04_task-rotatewalk_events.tsv
@@ -0,0 +1,150 @@
+onset duration sample trial_type response_time stim_file value
+19.1782031207 0.5000000000 4909.62 stimulus n/a n/a rotate_ccw
+24.0042796650 0.5000000000 6145.0956 stimulus n/a n/a rotate_cw
+27.0975943152 0.5000000000 6936.9841 stimulus n/a n/a rotate_ccw
+31.4037388650 0.5000000000 8039.3571 stimulus n/a n/a rotate_cw
+35.4713720250 0.5000000000 9080.6712 stimulus n/a n/a rotate_cw
+39.5107747267 0.5000000000 10114.7583 stimulus n/a n/a rotate_cw
+44.3239700493 0.5000000000 11346.9363 stimulus n/a n/a rotate_ccw
+49.0163258525 0.5000000000 12548.1794 stimulus n/a n/a rotate_ccw
+53.2578245116 0.5000000000 13634.0031 stimulus n/a n/a rotate_cw
+56.7105335926 0.5000000000 14517.8966 stimulus n/a n/a rotate_ccw
+60.4177236925 0.5000000000 15466.9373 stimulus n/a n/a rotate_cw
+64.6573973100 0.5000000000 16552.2937 stimulus n/a n/a rotate_ccw
+69.2578506671 0.5000000000 17730.0098 stimulus n/a n/a rotate_ccw
+72.9508801676 0.5000000000 18675.4253 stimulus n/a n/a rotate_cw
+76.7373279873 0.5000000000 19644.756 stimulus n/a n/a rotate_ccw
+80.8842069611 0.5000000000 20706.357 stimulus n/a n/a rotate_ccw
+84.7240125131 0.5000000000 21689.3472 stimulus n/a n/a rotate_cw
+89.5768923291 0.5000000000 22931.6844 stimulus n/a n/a rotate_cw
+94.4557394711 0.5000000000 24180.6693 stimulus n/a n/a rotate_ccw
+98.3373518210 0.5000000000 25174.3621 stimulus n/a n/a rotate_cw
+101.5905417637 0.5000000000 26007.1787 stimulus n/a n/a rotate_ccw
+105.2039875409 0.5000000000 26932.2208 stimulus n/a n/a rotate_ccw
+108.7767125112 0.5000000000 27846.8384 stimulus n/a n/a rotate_cw
+112.3508133465 0.5000000000 28761.8082 stimulus n/a n/a rotate_cw
+115.5763821354 0.5000000000 29587.5538 stimulus n/a n/a rotate_cw
+119.4436971620 0.5000000000 30577.5865 stimulus n/a n/a rotate_ccw
+122.7105418647 0.5000000000 31413.8987 stimulus n/a n/a rotate_cw
+127.4192458533 0.5000000000 32619.3269 stimulus n/a n/a rotate_cw
+131.3498736074 0.5000000000 33625.5676 stimulus n/a n/a rotate_ccw
+135.6169322934 0.5000000000 34717.9347 stimulus n/a n/a rotate_cw
+138.6160719200 0.5000000000 35485.7144 stimulus n/a n/a rotate_ccw
+142.3629781282 0.5000000000 36444.9224 stimulus n/a n/a rotate_cw
+147.2570119159 0.5000000000 37697.7951 stimulus n/a n/a rotate_cw
+152.2164220220 0.5000000000 38967.404 stimulus n/a n/a rotate_cw
+156.2828094731 0.5000000000 40008.3992 stimulus n/a n/a rotate_cw
+159.3102103519 0.5000000000 40783.4139 stimulus n/a n/a rotate_cw
+164.2563122295 0.5000000000 42049.6159 stimulus n/a n/a rotate_ccw
+168.5102876872 0.5000000000 43138.6336 stimulus n/a n/a rotate_ccw
+171.6820471031 0.5000000000 43950.6041 stimulus n/a n/a rotate_ccw
+174.7627186699 0.5000000000 44739.256 stimulus n/a n/a rotate_cw
+179.5630742384 0.5000000000 45968.147 stimulus n/a n/a rotate_ccw
+183.3363099068 0.5000000000 46934.0953 stimulus n/a n/a rotate_ccw
+187.0698791465 0.5000000000 47889.8891 stimulus n/a n/a rotate_cw
+191.7899718878 0.5000000000 49098.2328 stimulus n/a n/a rotate_ccw
+195.5219431382 0.5000000000 50053.6174 stimulus n/a n/a rotate_cw
+198.5365777574 0.5000000000 50825.3639 stimulus n/a n/a rotate_cw
+201.6158118727 0.5000000000 51613.6478 stimulus n/a n/a rotate_ccw
+204.8149974158 0.5000000000 52432.6393 stimulus n/a n/a rotate_ccw
+207.8298385585 0.5000000000 53204.4387 stimulus n/a n/a rotate_cw
+212.1359646325 0.5000000000 54306.8069 stimulus n/a n/a rotate_cw
+216.3097803181 0.5000000000 55375.3038 stimulus n/a n/a rotate_cw
+219.9763539004 0.5000000000 56313.9466 stimulus n/a n/a rotate_cw
+223.7494446318 0.5000000000 57279.8578 stimulus n/a n/a rotate_ccw
+227.3497324543 0.5000000000 58201.5315 stimulus n/a n/a rotate_ccw
+230.5491475127 0.5000000000 59020.5818 stimulus n/a n/a rotate_ccw
+234.6289405007 0.5000000000 60065.0088 stimulus n/a n/a rotate_cw
+238.0156372710 0.5000000000 60932.0031 stimulus n/a n/a rotate_cw
+242.5742538564 0.5000000000 62099.009 stimulus n/a n/a rotate_cw
+246.9887098052 0.5000000000 63229.1097 stimulus n/a n/a rotate_ccw
+250.1759888505 0.5000000000 64045.0531 stimulus n/a n/a rotate_ccw
+254.0560257929 0.5000000000 65038.3426 stimulus n/a n/a rotate_ccw
+258.4285657287 0.5000000000 66157.7128 stimulus n/a n/a rotate_cw
+263.2221975895 0.5000000000 67384.8826 stimulus n/a n/a rotate_cw
+266.8158540846 0.5000000000 68304.8586 stimulus n/a n/a rotate_cw
+271.8152307561 0.5000000000 69584.6991 stimulus n/a n/a rotate_ccw
+276.8285159278 0.5000000000 70868.1001 stimulus n/a n/a rotate_ccw
+279.9757963829 0.5000000000 71673.8039 stimulus n/a n/a rotate_cw
+283.0685879499 0.5000000000 72465.5585 stimulus n/a n/a rotate_ccw
+286.3484842671 0.5000000000 73305.212 stimulus n/a n/a rotate_cw
+289.8819595508 0.5000000000 74209.7816 stimulus n/a n/a rotate_ccw
+293.0553313268 0.5000000000 75022.1648 stimulus n/a n/a rotate_ccw
+297.6820583036 0.5000000000 76206.6069 stimulus n/a n/a rotate_ccw
+301.3752471100 0.5000000000 77152.0633 stimulus n/a n/a rotate_cw
+305.1352927979 0.5000000000 78114.635 stimulus n/a n/a rotate_cw
+309.5492326446 0.5000000000 79244.6036 stimulus n/a n/a rotate_ccw
+312.7486489350 0.5000000000 80063.6541 stimulus n/a n/a rotate_cw
+316.6147642373 0.5000000000 81053.3796 stimulus n/a n/a rotate_ccw
+320.7881241763 0.5000000000 82121.7598 stimulus n/a n/a rotate_cw
+325.4947871558 0.5000000000 83326.6655 stimulus n/a n/a rotate_ccw
+329.4020683368 0.5000000000 84326.9295 stimulus n/a n/a rotate_ccw
+333.0686566999 0.5000000000 85265.5761 stimulus n/a n/a rotate_ccw
+338.0410966586 0.5000000000 86538.5207 stimulus n/a n/a rotate_cw
+342.7820605681 0.5000000000 87752.2075 stimulus n/a n/a rotate_cw
+345.8550493041 0.5000000000 88538.8926 stimulus n/a n/a rotate_ccw
+349.8209679037 0.5000000000 89554.1678 stimulus n/a n/a rotate_ccw
+353.7478080295 0.5000000000 90559.4389 stimulus n/a n/a rotate_ccw
+358.2680075902 0.5000000000 91716.6099 stimulus n/a n/a rotate_ccw
+361.4276917595 0.5000000000 92525.4891 stimulus n/a n/a rotate_ccw
+364.8943167326 0.5000000000 93412.9451 stimulus n/a n/a rotate_ccw
+368.5478087276 0.5000000000 94348.239 stimulus n/a n/a rotate_ccw
+372.7212318951 0.5000000000 95416.6354 stimulus n/a n/a rotate_ccw
+377.5876892828 0.5000000000 96662.4485 stimulus n/a n/a rotate_cw
+381.7749605969 0.5000000000 97734.3899 stimulus n/a n/a rotate_cw
+385.0274730765 0.5000000000 98567.0331 stimulus n/a n/a rotate_ccw
+388.8411043691 0.5000000000 99543.3227 stimulus n/a n/a rotate_ccw
+392.5079074667 0.5000000000 100482.0243 stimulus n/a n/a rotate_ccw
+395.8141948307 0.5000000000 101328.4339 stimulus n/a n/a rotate_cw
+400.6804140801 0.5000000000 102574.186 stimulus n/a n/a rotate_cw
+404.3343749617 0.5000000000 103509.6 stimulus n/a n/a rotate_cw
+408.5473081259 0.5000000000 104588.1109 stimulus n/a n/a rotate_cw
+412.7609064353 0.5000000000 105666.792 stimulus n/a n/a rotate_ccw
+416.4943759027 0.5000000000 106622.5602 stimulus n/a n/a rotate_cw
+421.0807253211 0.5000000000 107796.6657 stimulus n/a n/a rotate_cw
+425.4275931408 0.5000000000 108909.4638 stimulus n/a n/a rotate_ccw
+430.1601992214 0.5000000000 110121.011 stimulus n/a n/a rotate_cw
+434.6541756641 0.5000000000 111271.469 stimulus n/a n/a rotate_cw
+438.7471142898 0.5000000000 112319.2613 stimulus n/a n/a rotate_cw
+443.4270856767 0.5000000000 113517.3339 stimulus n/a n/a rotate_ccw
+447.8535725295 0.5000000000 114650.5146 stimulus n/a n/a rotate_ccw
+452.7875137591 0.5000000000 115913.6035 stimulus n/a n/a rotate_cw
+457.5068867476 0.5000000000 117121.763 stimulus n/a n/a rotate_cw
+461.9204402350 0.5000000000 118251.6327 stimulus n/a n/a rotate_cw
+464.9670785719 0.5000000000 119031.5721 stimulus n/a n/a rotate_ccw
+469.4134290233 0.5000000000 120169.8378 stimulus n/a n/a rotate_ccw
+473.1206375990 0.5000000000 121118.8832 stimulus n/a n/a rotate_cw
+476.6465675990 0.5000000000 122021.5213 stimulus n/a n/a rotate_ccw
+480.0666234200 0.5000000000 122897.0556 stimulus n/a n/a rotate_cw
+484.9066174984 0.5000000000 124136.0941 stimulus n/a n/a rotate_cw
+488.3071254616 0.5000000000 125006.6241 stimulus n/a n/a rotate_cw
+491.4669159711 0.5000000000 125815.5305 stimulus n/a n/a rotate_cw
+494.8796404218 0.5000000000 126689.1879 stimulus n/a n/a rotate_ccw
+498.2263468139 0.5000000000 127545.9448 stimulus n/a n/a rotate_cw
+501.8130796467 0.5000000000 128464.1484 stimulus n/a n/a rotate_cw
+505.6535872955 0.5000000000 129447.3183 stimulus n/a n/a rotate_cw
+510.6398786838 0.5000000000 130723.8089 stimulus n/a n/a rotate_ccw
+515.5595948525 0.5000000000 131983.2563 stimulus n/a n/a rotate_ccw
+518.9727947588 0.5000000000 132857.0355 stimulus n/a n/a rotate_ccw
+522.1998342560 0.5000000000 133683.1576 stimulus n/a n/a rotate_cw
+526.7727502177 0.5000000000 134853.8241 stimulus n/a n/a rotate_ccw
+531.7405292375 0.5000000000 136125.5755 stimulus n/a n/a rotate_ccw
+534.9997436651 0.5000000000 136959.9344 stimulus n/a n/a rotate_ccw
+538.2266025066 0.5000000000 137786.0102 stimulus n/a n/a rotate_ccw
+542.2926824310 0.5000000000 138826.9267 stimulus n/a n/a rotate_cw
+546.4265225183 0.5000000000 139885.1898 stimulus n/a n/a rotate_cw
+550.7993178371 0.5000000000 141004.6254 stimulus n/a n/a rotate_cw
+555.5058194578 0.5000000000 142209.4898 stimulus n/a n/a rotate_cw
+559.4528241380 0.5000000000 143219.923 stimulus n/a n/a rotate_ccw
+562.9858913027 0.5000000000 144124.3882 stimulus n/a n/a rotate_cw
+567.4392483537 0.5000000000 145264.4476 stimulus n/a n/a rotate_cw
+572.3326317782 0.5000000000 146517.1537 stimulus n/a n/a rotate_cw
+576.0393324627 0.5000000000 147466.0691 stimulus n/a n/a rotate_ccw
+579.9462129146 0.5000000000 148466.2305 stimulus n/a n/a rotate_ccw
+584.8258935404 0.5000000000 149715.4287 stimulus n/a n/a rotate_cw
+589.1192981085 0.5000000000 150814.5403 stimulus n/a n/a rotate_ccw
+594.0257935031 0.5000000000 152070.6031 stimulus n/a n/a rotate_cw
+597.9997217561 0.5000000000 153087.9288 stimulus n/a n/a rotate_ccw
+602.7187510881 0.5000000000 154296.0003 stimulus n/a n/a rotate_ccw
+606.7726284838 0.5000000000 155333.7929 stimulus n/a n/a rotate_ccw
+609.9992861388 0.5000000000 156159.8173 stimulus n/a n/a rotate_ccw
diff --git a/pyproject.toml b/pyproject.toml
index 402a7ae..6b410f3 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "hedit"
-version = "0.7.9a1"
+version = "0.7.9.dev4"
description = "Multi-agent system for HED annotation generation and validation"
readme = "PKG_README.md"
requires-python = ">=3.12"
diff --git a/src/version.py b/src/version.py
index 7fea42b..6bf86ea 100644
--- a/src/version.py
+++ b/src/version.py
@@ -1,7 +1,7 @@
"""Version information for HEDit."""
-__version__ = "0.7.9a1"
-__version_info__ = (0, 7, 9, "alpha")
+__version__ = "0.7.9.dev4"
+__version_info__ = (0, 7, 9, "dev")
def get_version() -> str: