Situation features
Situations, schemas, scripts & event segmentation
This subclass spans two complementary tool families: (1) data-driven event/state boundary detection that segments a continuous feature timeline (neural data, or stimulus-derived embeddings such as visual/semantic features) into discrete events with stable patterns, and (2) situational tagging that labels each segment or timepoint with setting, location, time-of-day, scripts/schemas, and the Event-Indexing situational dimensions (space, time, causation, intention, protagonist). For boundary detection, BrainIAK’s HMM (Baldassano 2017) and Geerligs’ GSBS (statesegmentation) are the canonical, locally deployable algorithms; both run on any feature matrix, not just fMRI, making them directly usable to segment movie-derived embedding timelines. Shot/scene cut detection (PySceneDetect, TransNetV2) gives a fast low-level event-boundary prior. For situational content, scene-recognition CNNs (Places365), movie-tuned CLIP (MovieCLIP), and zero-shot CLIP cover location/setting/time-of-day, while modern open-weight video-LLMs (Qwen2.5-VL, VideoLLaMA3) and text/transcript LLMs (GPT-4-class via prompting) provide human-like event segmentation plus rich, queryable situational dimensions (goals, causes, protagonist, schema/script labels) with second-level temporal grounding. A small lab can run the algorithmic tools and 7B-class VLMs on a single modern GPU.
| Tool | Measures | Per-timepoint output | Modality | Granularity | Local | Rating | Rec |
|---|---|---|---|---|---|---|---|
| BrainIAK EventSegment (HMM, Baldassano et al. 2017) | Data-driven event boundaries / segmentation of any continuous feature timeline into K discrete events with stable activity (or embedding) patterns; finds discontinuities in pattern correlation as event transitions. | Per-timepoint hard or soft (posterior probability) event-label assignment; ordered list of event-boundary timepoints; per-event mean pattern; with model comparison, the optimal number of events K (which yields event duration/granularity). Runs on stimulus-derived embeddings to segment a movie/audio timeline, not only fMRI. | multimodal | per-second (matches input TR/frame sampling); boundaries at input timestep resolution | yes-cpu | best-in-class | include |
| GSBS / statesegmentation (Geerligs et al. 2021, 2022) | Greedy State Boundary Search: iteratively places event/state boundaries that maximize within-state pattern similarity in a feature timeline; auto-selects optimal number of states via t-distance metric. | Per-timepoint state/event label; ranked boundary timepoints (greedy order gives boundary salience/strength); optimal number of states; nested hierarchical boundaries (fine-to-coarse event granularity). Applicable to any T x features matrix including movie embeddings. | multimodal | per-second / per-input-timestep | yes-cpu | best-in-class | include |
| PySceneDetect | Low-level shot/scene cut detection via frame-to-frame content change (HSV histogram / content difference) and adaptive thresholding. | List of shot-boundary timestamps and frame indices; per-frame content-change score; shot-segment start/end times. Provides a fast event-boundary prior aligned to the video timeline. | video-frame | per-frame / per-shot | yes-cpu | strong | include |
| TransNetV2 | Deep-learning shot-boundary detection (hard cuts and gradual transitions/dissolves) trained on labeled shot transitions. | Per-frame shot-transition probability (0-1); derived shot-boundary timestamps and shot segments. ~87% shot segmentation accuracy vs ~65% for histogram methods; handles gradual transitions. | video-frame | per-frame / per-shot | yes-gpu | best-in-class | include |
| Places365-CNN (ResNet50/DenseNet161, CSAILVision) | Scene/place category recognition: classifies each frame into one of 365 physical scene/location categories (e.g., restaurant, kitchen, street, forest) plus SUN scene attributes. | Per-frame 365-dim scene-category posterior (top-k location/setting labels), indoor/outdoor probability, and ~102 scene-attribute scores (e.g., ‘open area’, ‘man-made’, ‘enclosed’, ‘natural light’). Directly yields location/setting and coarse spatial-layout descriptors. | video-frame | frame (sample per second/shot) | yes-gpu | strong | include |
| MovieCLIP (visual scene recognition in movies) | Movie-tuned visual scene recognition over a 179-label movie-centric scene taxonomy curated from scripts (settings like ‘courtroom’, ‘bar’, ‘spaceship’, ‘chase’-relevant locations). | Per-shot/per-frame scores over 179 movie scene labels (background location/setting); embeddings usable for setting clustering. Tailored to cinematic settings better than ImageNet/Places taxonomies. | video-frame | per-shot / frame | yes-gpu | usable | alternative |
| Zero-shot CLIP / OpenCLIP (ViT-L/14, ViT-H/14) | Flexible zero-shot classification of arbitrary situational attributes via text prompts: location/setting, indoor/outdoor, time-of-day, weather, schema/script cues (e.g., ‘a restaurant scene’, ‘a car chase’). | Per-frame cosine-similarity / softmax scores for any user-defined prompt set (e.g., morning/afternoon/night; indoor/outdoor; named scripts). Continuous per-label scores per timepoint, fully customizable taxonomy. | video-frame | frame (sample per second/shot) | yes-gpu | strong | include |
| Qwen2.5-VL (3B/7B/72B, open weights) | Open-weight video-LLM with second-level temporal grounding: produces human-like event segmentation and free-form situational tagging (location, time of day, goals, causes, protagonist actions, schema/script identification) with timestamps. | Timestamped event/segment boundaries (second-level via absolute-time MRoPE encoding); per-segment natural-language situational descriptions queryable into structured Event-Indexing fields (space, time, causation, intention, protagonist); script/schema labels; mIoU 50.9 on Charades-STA temporal grounding (> GPT-4o). | video-clip | per-second / per-shot / per-segment (timestamped) | yes-gpu | best-in-class | include |
| VideoLLaMA3 (2B/7B, DAMO/Alibaba) | Open multimodal video foundation model for dense captioning, temporal grounding, and video QA; produces situational descriptions and event localization across a clip. | Timestamped dense captions / event segments; per-segment situational narrative (setting, actors, actions, goals) parseable into situational dimensions; temporal-grounding spans for queried events. | video-clip | per-segment / per-clip (timestamped grounding) | yes-gpu | strong | alternative |
| LLM text/transcript event segmentation (GPT-4-class via API; Llama-3 70B open) | Human-like narrative event segmentation and situational annotation from text/transcripts: zero-shot prompts mark event boundaries and tag schema/script, goals, causes, protagonist, time, and space per event. | Ordered event-boundary positions in the transcript (mappable to timestamps via word/utterance alignment); per-event structured situational fields (location, time-of-day, goal, cause, protagonist, script label). LLM boundaries align with human segmentation and are more consistent than individual humans. | transcript | per-utterance / per-event (timestamps via transcript alignment) | yes-heavy-gpu | best-in-class | include |
| Indexter (Event-Indexing computational model) | Symbolic computational implementation of Zwaan’s Event-Indexing situation model: tracks the five situational dimensions (time, space, causation, intention, protagonist) and continuity/discontinuity across events. | Per-event indices and between-event continuity scores along time, space, protagonist, causation, intention dimensions; situational-change signals predicting event boundaries. Provides the conceptual schema for structuring LLM/VLM situational outputs. | text | per-event | unclear | legacy/superseded | alternative |
Recommended (best-in-class): GSBS / statesegmentation (primary data-driven event-boundary detector on stimulus feature timelines); BrainIAK EventSegment HMM (alternative boundary detector + soft event posteriors); TransNetV2 (best shot-boundary prior for video); Qwen2.5-VL-7B (open video-LLM for second-level event segmentation + situational dimensions); Zero-shot OpenCLIP (flexible per-frame location/time-of-day/setting/script attributes); Places365-ResNet50 (calibrated fixed-taxonomy location/setting + scene attributes); GPT-4-class / Llama-3-70B LLM (transcript-based human-like event segmentation + Event-Indexing situational tagging, esp. audio stories)
Likely redundant:
- PySceneDetect -> superseded for accuracy by TransNetV2 (keep only as a fast CPU prior)
- MovieCLIP -> overlaps zero-shot CLIP/Places365; use only if its 179 movie-scene taxonomy is a better fit and checkpoints are accessible
- VideoLLaMA3 -> redundant with Qwen2.5-VL as the situational video-LLM; pick one primary
- BrainIAK HMM vs GSBS -> overlapping boundary detectors; GSBS generally preferred (auto-K, faster), keep HMM mainly for soft event posteriors / recall-reactivation modeling
- Indexter -> superseded as a runnable tool by LLM situational tagging; retain only as the target ontology/schema definition
Open questions:
- Ground-truth/validation: which event-boundary timeline (human dense-rating norms, e.g., per-second boundary agreement) will be used to validate algorithmic vs LLM/VLM boundaries on your specific movies/audio stimuli?
- Pipeline order: run shot detection (TransNetV2) first and tag shots, vs run GSBS/HMM on a continuous embedding timeline (from CLIP/VLM/text embeddings) to get semantic events independent of camera cuts? These give different granularities.
- For audio-only stories, the visual tools do not apply; need to confirm WhisperX-style word-level alignment to project transcript LLM event boundaries and situational tags onto the audio timeline.
- Structured output schema: define a fixed JSON schema for the five Event-Indexing dimensions (space/time/causation/intention/protagonist) + script/schema label so VLM/LLM outputs are consistently parseable per second/segment.
- Compute budget: is a single 24GB GPU available for 7B video-LLM inference, or should situational tagging fall back to API (GPT-4-class) for the visual stream?
- Which feature space feeds GSBS/HMM for stimulus segmentation (raw CLIP frame embeddings, VLM hidden states, semantic transcript embeddings) materially changes the events recovered and should be decided/benchmarked.
References
- BrainIAK EventSegment (HMM, Baldassano et al. 2017) — Baldassano et al. 2017 Neuron ‘Discovering Event Structure in Continuous Narrative Perception and Memory’; github.com/brainiak/brainiak; brainiak.org/examples/Event_Segmentation.html
- GSBS / statesegmentation (Geerligs et al. 2021, 2022) — Geerligs, van Gerven, Guclu 2021 NeuroImage; Geerligs et al. 2022 eLife ‘A partially nested cortical hierarchy of neural states’; pypi.org/project/statesegmentation
- PySceneDetect — github.com/Breakthrough/PySceneDetect; scenedetect.com
- TransNetV2 — Soucek & Lokoc, ‘TransNet V2: An Effective Deep Network for Fast Shot Transition Detection’; github.com/soCzech/TransNetV2
- Places365-CNN (ResNet50/DenseNet161, CSAILVision) — Zhou et al. 2018 TPAMI ‘Places: A 10 Million Image Database for Scene Recognition’; places2.csail.mit.edu
- MovieCLIP (visual scene recognition in movies) — Bose et al., WACV 2023, arXiv:2210.11065; project page from USC SAIL
- Zero-shot CLIP / OpenCLIP (ViT-L/14, ViT-H/14) — Radford et al. 2021 CLIP; github.com/mlfoundations/open_clip; MovieCLIP uses this labeling recipe
- Qwen2.5-VL (3B/7B/72B, open weights) — Bai et al. 2025 ‘Qwen2.5-VL Technical Report’ arXiv:2502.13923; huggingface.co/Qwen
- VideoLLaMA3 (2B/7B, DAMO/Alibaba) — Zhang et al. 2025 ‘VideoLLaMA 3’ arXiv:2501.13106; github.com/DAMO-NLP-SG/VideoLLaMA3
- LLM text/transcript event segmentation (GPT-4-class via API; Llama-3 70B open) — Michelmann et al. 2025 ‘LLMs segment narrative events similarly to humans’ (arXiv:2301.10297); Nature Comms Psychology 2025 s44271-025-00359-7 on LLM-enabled recall/event segmentation
- Indexter (Event-Indexing computational model) — Cardona-Rivera et al., ‘Indexter: A Computational Model of the Event-Indexing Situation Model’; Zwaan & Radvansky 1998 event-indexing framework