Team Ai
Datasetpublic

ArnieRamesh/CounterStrike-1K-sample

CounterStrike-1K Sample This is the reviewer/developer sample for CounterStrike-1K. It contains one Dust2 match-map, 16 released rounds, all 10 synchronized player POVs per round, 160 clips total, and about 2 GB of 360p media. It is intended for inspecting video/audio quality, validating the v12 schema, building loaders, and running quick local experiments without downloading the full release. How this sample was created The sample was created from the same public… See the full description on the dataset page: https://huggingface.co/datasets/ArnieRamesh/CounterStrike-1K-sample.

sourceHugging Facecc-by-nc-4.0updated 5mo agoView on Hugging Face
0likes202downloads
Dataset Card

CounterStrike-1K Sample

This is the reviewer/developer sample for CounterStrike-1K. It contains one Dust2 match-map, 16 released rounds, all 10 synchronized player POVs per round, 160 clips total, and about 2 GB of 360p media. It is intended for inspecting video/audio quality, validating the v12 schema, building loaders, and running quick local experiments without downloading the full release.

How this sample was created

The sample was created from the same public v12 postprocessing and QA pipeline as the full CounterStrike-1K release:

  1. 1.We selected one QA-passing Dust2 match-map from the full release manifest.
  2. 2.We kept the first 16 released rounds from that match-map, preserving all 10 synchronized active-player POVs for each round.
  3. 3.We used the same v12 artifacts as the full release: rendered MP4 video/audio, dense per-frame actions.bin, dense per-frame state.bin, sparse events.json, and public metadata sidecars.
  4. 4.We downsampled the sample media to 360p for reviewer convenience while preserving the same 32 FPS frame grid, per-frame action/state alignment, and anonymized metadata schema.
  5. 5.We stored the artifacts as ordinary files instead of WebDataset tar shards, so reviewers can browse and download individual clips directly.

The exact sample membership is listed in subsets/sample.parquet. This sample is representative of the dataset format and synchronization/annotation quality, but it is not intended to be statistically representative of all maps, teams, matches, or gameplay situations in the full release.

Splits

The split column in manifest.parquet, round_index.parquet, and each metadata/<sample_key>.json sidecar assigns rounds deterministically:

  • —train — rounds with round_idx < 14 · 14 rounds · 140 clips
  • —val — rounds with round_idx >= 14 · 2 rounds · 20 clips

This split exists solely so downstream code can exercise its split="train" / split="val" loader branches against the sample. It is not a meaningful evaluation split — 160 clips from one match-map are too few and too correlated (same map, same players, sequential rounds) to support any generalization claim. For any actual evaluation, use the full release's official val / test splits.

To filter by split with the public loader:

python
from counterstrike1k import load_sample

for sample in load_sample():
    if sample["metadata"]["split"] != "val":
        continue
    ...  # only the 10 val clips

Quickstart

Start a fresh uv project and add the loader:

bash
mkdir cs1k-demo && cd cs1k-demo
uv init
uv add "counterstrike1k @ git+https://github.com/AnirudhhRamesh/counterstrike1k"

<details> <summary>Using pip instead</summary>

bash
mkdir cs1k-demo && cd cs1k-demo
python -m venv .venv && source .venv/bin/activate
pip install "counterstrike1k @ git+https://github.com/AnirudhhRamesh/counterstrike1k"

</details>

python
from counterstrike1k import load_sample

for sample in load_sample():
    print(sample["metadata"]["sample_key"])
    print(sample["actions"].shape, sample["state"].shape, len(sample["video"]))
    break

load_sample() downloads this repo on first call, then iterates decoded samples in manifest order:

  • —video: mp4 bytes (H.264 + AAC, 640×360 @ 32 FPS with synchronized stereo audio)
  • —actions: structured numpy array (per-frame tick, delta_pitch, delta_yaw, 12-button bitmask)
  • —state: structured numpy array (per-frame view, position, weapon, ammo, HP, money, score, …)
  • —events: list of sparse round/kill/bomb events
  • —metadata: public sample metadata

For a Jupyter walkthrough, use `examples/quickstart.ipynb` in this sample repo or the same notebook in the source repo.

Layout

Direct files (not WebDataset shards), organized by modality:

text
videos/360p/{sample_key}.mp4
actions/{sample_key}.actions.bin
state/{sample_key}.state.bin
events/{sample_key}.events.json
metadata/{sample_key}.json
manifest.parquet
round_index.parquet

The full release uses WebDataset shards instead — see `CounterStrike-1K-360-wds` and `CounterStrike-1K-720-wds`.

License & citation

CC BY-NC 4.0. Citation in the main dataset card. No raw demos, Steam IDs, account identifiers, raw HLTV identifiers, player names, or chat text are included.