Spaces:
Running
Running
Add OpenCS2 banner header below abstract + social preview images
Browse files- static/header.{webp,avif}: tracked via Git LFS for HF Space (avif 140KB,
webp 184KB; from 2MB PNG)
- Home page: keep eyebrow + h1 + author + buttons + abstract intact;
banner image rendered just after the abstract via <picture>
- Layout: og:image + twitter:image absolute URLs with width/height/alt
- .gitattributes: add *.webp and *.avif to LFS rules
- .gitattributes +2 -0
- src/routes/+layout.svelte +10 -0
- src/routes/+page.svelte +71 -56
- static/header.avif +3 -0
- static/header.webp +3 -0
.gitattributes
CHANGED
|
@@ -34,3 +34,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
*.png filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
*.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
*.webp filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
*.avif filter=lfs diff=lfs merge=lfs -text
|
src/routes/+layout.svelte
CHANGED
|
@@ -10,6 +10,9 @@
|
|
| 10 |
let { children } = $props();
|
| 11 |
|
| 12 |
const canonicalUrl = $derived(page.url.href);
|
|
|
|
|
|
|
|
|
|
| 13 |
</script>
|
| 14 |
|
| 15 |
<svelte:head>
|
|
@@ -45,9 +48,16 @@
|
|
| 45 |
<meta property="og:description" content={site.description} />
|
| 46 |
<meta property="og:url" content={canonicalUrl} />
|
| 47 |
<meta property="og:locale" content="en_US" />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
<meta name="twitter:card" content="summary_large_image" />
|
| 49 |
<meta name="twitter:title" content={site.name} />
|
| 50 |
<meta name="twitter:description" content={site.description} />
|
|
|
|
|
|
|
| 51 |
<meta name="twitter:site" content="@JulienBlanchon" />
|
| 52 |
<meta name="twitter:creator" content="@JulienBlanchon" />
|
| 53 |
</svelte:head>
|
|
|
|
| 10 |
let { children } = $props();
|
| 11 |
|
| 12 |
const canonicalUrl = $derived(page.url.href);
|
| 13 |
+
const ogImageUrl = $derived(`${page.url.origin}/header.webp`);
|
| 14 |
+
const ogImageAlt =
|
| 15 |
+
'OpenCS2 Dataset — an open multiplayer Counter-Strike 2 dataset with 10 tick-aligned player POVs, inputs, world state, and audio, built from professional HLTV demos.';
|
| 16 |
</script>
|
| 17 |
|
| 18 |
<svelte:head>
|
|
|
|
| 48 |
<meta property="og:description" content={site.description} />
|
| 49 |
<meta property="og:url" content={canonicalUrl} />
|
| 50 |
<meta property="og:locale" content="en_US" />
|
| 51 |
+
<meta property="og:image" content={ogImageUrl} />
|
| 52 |
+
<meta property="og:image:type" content="image/webp" />
|
| 53 |
+
<meta property="og:image:width" content="1773" />
|
| 54 |
+
<meta property="og:image:height" content="887" />
|
| 55 |
+
<meta property="og:image:alt" content={ogImageAlt} />
|
| 56 |
<meta name="twitter:card" content="summary_large_image" />
|
| 57 |
<meta name="twitter:title" content={site.name} />
|
| 58 |
<meta name="twitter:description" content={site.description} />
|
| 59 |
+
<meta name="twitter:image" content={ogImageUrl} />
|
| 60 |
+
<meta name="twitter:image:alt" content={ogImageAlt} />
|
| 61 |
<meta name="twitter:site" content="@JulienBlanchon" />
|
| 62 |
<meta name="twitter:creator" content="@JulienBlanchon" />
|
| 63 |
</svelte:head>
|
src/routes/+page.svelte
CHANGED
|
@@ -98,65 +98,80 @@
|
|
| 98 |
|
| 99 |
<main class="mx-auto w-full max-w-[1600px] px-4 pb-16">
|
| 100 |
<!-- Paper-style hero -->
|
| 101 |
-
<section class="mx-auto max-w-
|
| 102 |
-
<div class="
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
<
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
|
|
|
| 129 |
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 152 |
</div>
|
| 153 |
|
| 154 |
-
<
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 160 |
</section>
|
| 161 |
|
| 162 |
<!-- Motivation -->
|
|
|
|
| 98 |
|
| 99 |
<main class="mx-auto w-full max-w-[1600px] px-4 pb-16">
|
| 100 |
<!-- Paper-style hero -->
|
| 101 |
+
<section class="mx-auto max-w-5xl pt-16 pb-10 text-center md:pt-24">
|
| 102 |
+
<div class="mx-auto max-w-3xl">
|
| 103 |
+
<div class="mb-3 text-xs font-semibold tracking-[0.2em] text-primary/70 uppercase">
|
| 104 |
+
HLTV · CS2 · Rendered POV Dataset
|
| 105 |
+
</div>
|
| 106 |
+
<h1 class="font-heading text-4xl font-semibold tracking-tight text-balance md:text-5xl">
|
| 107 |
+
OpenCS2 Dataset
|
| 108 |
+
</h1>
|
| 109 |
+
<div class="mt-5 flex items-center justify-center gap-3 text-sm text-muted-foreground">
|
| 110 |
+
<span class="font-medium text-foreground">{site.author}</span>
|
| 111 |
+
<a
|
| 112 |
+
href={site.websiteUrl}
|
| 113 |
+
target="_blank"
|
| 114 |
+
rel="noreferrer noopener"
|
| 115 |
+
aria-label="Personal website"
|
| 116 |
+
class="inline-flex items-center transition hover:text-foreground"
|
| 117 |
+
>
|
| 118 |
+
<GlobeIcon size={16} weight="duotone" />
|
| 119 |
+
</a>
|
| 120 |
+
<a
|
| 121 |
+
href={site.xUrl}
|
| 122 |
+
target="_blank"
|
| 123 |
+
rel="noreferrer noopener"
|
| 124 |
+
aria-label="X / Twitter"
|
| 125 |
+
class="inline-flex items-center transition hover:text-foreground"
|
| 126 |
+
>
|
| 127 |
+
<XLogoIcon size={14} weight="fill" />
|
| 128 |
+
</a>
|
| 129 |
+
</div>
|
| 130 |
|
| 131 |
+
<div class="mt-7 flex flex-wrap justify-center gap-2">
|
| 132 |
+
<Button href={site.datasetUrl} target="_blank" rel="noreferrer noopener" size="sm">
|
| 133 |
+
<HfLogo class="size-4" /> Dataset
|
| 134 |
+
</Button>
|
| 135 |
+
<Button
|
| 136 |
+
href={site.githubUrl}
|
| 137 |
+
target="_blank"
|
| 138 |
+
rel="noreferrer noopener"
|
| 139 |
+
variant="outline"
|
| 140 |
+
size="sm"
|
| 141 |
+
>
|
| 142 |
+
<GithubLogoIcon size={14} weight="fill" /> Code
|
| 143 |
+
</Button>
|
| 144 |
+
<Button
|
| 145 |
+
href={site.spaceUrl}
|
| 146 |
+
target="_blank"
|
| 147 |
+
rel="noreferrer noopener"
|
| 148 |
+
variant="outline"
|
| 149 |
+
size="sm"
|
| 150 |
+
>
|
| 151 |
+
<RocketLaunchIcon size={14} weight="duotone" /> Space
|
| 152 |
+
</Button>
|
| 153 |
+
</div>
|
| 154 |
+
|
| 155 |
+
<p class="mt-8 text-sm/relaxed text-pretty text-muted-foreground md:text-base">
|
| 156 |
+
A rendered dataset of professional Counter Strike 2 matches: every round captured from all
|
| 157 |
+
ten player POVs, frame-aligned, with spatialized audio, mouse/keyboard inputs, and per-tick
|
| 158 |
+
world state. Built from HLTV demos, served as parquet shards, and browsable here without
|
| 159 |
+
downloading the archive.
|
| 160 |
+
</p>
|
| 161 |
</div>
|
| 162 |
|
| 163 |
+
<picture>
|
| 164 |
+
<source srcset="/header.avif" type="image/avif" />
|
| 165 |
+
<source srcset="/header.webp" type="image/webp" />
|
| 166 |
+
<img
|
| 167 |
+
src="/header.webp"
|
| 168 |
+
alt="OpenCS2 Dataset — 10 tick-aligned player POVs, inputs, world state, and audio, built from professional HLTV demos."
|
| 169 |
+
width="1773"
|
| 170 |
+
height="887"
|
| 171 |
+
class="mx-auto mt-10 h-auto w-full rounded-md border"
|
| 172 |
+
decoding="async"
|
| 173 |
+
/>
|
| 174 |
+
</picture>
|
| 175 |
</section>
|
| 176 |
|
| 177 |
<!-- Motivation -->
|
static/header.avif
ADDED
|
Git LFS Details
|
static/header.webp
ADDED
|
Git LFS Details
|