CoolFace
Datasetpublic

cbctr/cs2-10k-vjepa2-latents-300

CS2-10k V-JEPA2 latent cache (300 matches) Frozen facebook/vjepa2-vitl-fpc64-256 embeddings of single-POV Counter-Strike 2 gameplay, from 300 matches of RekaAI/CS2-10k (mirage + dust2). This is the training substrate for the scale300 hierarchical world model. Rebuilding it from source takes ~82 hours of wall-clock (elapsed_min 4942.7), almost all of it network-bound, which is why it is published here. Contents file shape / rows notes latents.npy [6,942… See the full description on the dataset page: https://huggingface.co/datasets/cbctr/cs2-10k-vjepa2-latents-300.

sourceHugging Faceotherupdated 2mo agoView on Hugging Face
0likes98downloads
Dataset Card

CS2-10k V-JEPA2 latent cache (300 matches)

Frozen facebook/vjepa2-vitl-fpc64-256 embeddings of single-POV Counter-Strike 2 gameplay, from 300 matches of RekaAI/CS2-10k (mirage + dust2). This is the training substrate for the scale300 hierarchical world model.

Rebuilding it from source takes ~82 hours of wall-clock (elapsed_min 4942.7), almost all of it network-bound, which is why it is published here.

Contents

fileshape / rowsnotes
latents.npy[6,942,203, 1024] float16mean-pooled ViT-L latent per window
index.parquet6,942,203 rowsaligned row-for-row with latents.npy
metadata.jsonencoder, window config, split, counts

index.parquet columns: pos_x/y/z, yaw, pitch, extrinsics_ok, mouse_dx/dy, key_w/a/s/d/jump/crouch/walk/fire/scope, zone, sample_id, match_id, map_name, player_index, team, round_number, t_end_s, split.

Windowing

1.0 s window resampled to 32 frames, 0.5 s stride, 256x256, ImageNet normalization, mean-pooled. Each clip is one player-round, so windows form contiguous sequences; sample_id is <clip_uuid>:<window_index>.

Split is match-disjoint (md5 of match_id, 15% holdout): 5,861,382 train / 1,080,821 holdout rows. Never split by window or by round — adjacent windows overlap 50% and would leak.

Load

python
import numpy as np, pandas as pd
lat = np.load("latents.npy", mmap_mode="r")     # 13 GB: keep it memory-mapped
idx = pd.read_parquet("index.parquet")
train = idx.index[idx.split == "train"].to_numpy()

Provenance and terms

Derived embeddings from RekaAI/CS2-10k; that dataset's terms apply upstream. No raw frames are redistributed here — these are pooled 1024-d vectors from a frozen encoder, from which the source video cannot be reconstructed.