QR code
team-10-app.thecosmoslabs.com/app
Before we start

Scan. Cross a real highway.
Try not to die.

Tap to start, swipe up to hop. Every car on your phone is real Nashville traffic, every collision is a real detection stored in VastDB.

LIVE SCOREBOARD
waiting for the first player…
VAST Builders Challenge 2026 · Team 10

HOP 24

Cross a real highway. The archive is watching.

A video agent built on VAST AI OS · NVIDIA Cosmos + YOLO11 · CoreWeave · Weights & Biases

The problem

Nobody watches the archive

0
video chunks indexed for the team
0
I-24 highway clips, 3 cameras on one pole
0
YOLO boxes stored for one 30-second clip

A vehicle hits someone and keeps going. An operator opens cameras one by one and scrubs 30-second clips by hand — while the pipeline already wrote a description, vectors and boxes for every five seconds of it.

LIVE DEMO · L
The idea

A game you cannot fake

Kill-cam

Slow motion, then the evidence frame

Last 2.4 s at 0.35×, the killer's class tracked in red.

Evidence frame with camera · segment · time · class · confidence burned in.

Nothing staged: the vehicle that hit me is whatever YOLO put in that box.

The archive already knew

Every five seconds, the pipeline wrote it all down

Segmenter5 s clips → S3
YOLO11sboxes at 30 fps
Cosmos3-Reasondescription
Cosmos Embed1256-d vectors
VastDBvss-collection
0
of 180 highway captions name a vehicle colour
0
say which lane the vehicle is in
0
give a lane number — remember that gap
LIVE DEMO · L
Manhunt

One hybrid query, every camera

scene1_p1c1

candidate sightings
0.35

scene1_p1c2

scene of crime
●

scene1_p1c3

strongest match
0.41

FILED
Action

Incident report generated and filed

incident report

Event · camera · time

Detection, confidence, bbox

Stored description · query issued · VastDB SQL

Sightings on other cameras · last seen · recommended action

Download, copy, print. Thirty seconds ago this was a chicken getting hit.

Sharpen the archive

The prompt decides what gets indexed

BEFORE · stock prompt

AFTER · investigator prompt via DataEngine

POST /dashboard/reingest · custom prompt ≤ 800 chars · detector → reasoner → embedder → VastDB writer · takes minutes, so it is pre-run.

LIVE DEMO · A
Autopilot

The agent crosses on its own — a policy it learned

Offline simulator from the real detections of all 30 chunks. Tabular Q-learning; state = time-to-impact of the current, next, next-but-one and previous lane, plus progress.

rule-based agent · crossings 39% · on this camera 31%
learned policy · crossings 41% · on this camera 46%

9,000 episodes · logged to Weights & Biases · no peeking at future frames

Architecture

Built on the archive, not beside it

BROWSER one HTML page 1280×720 canvas · 2 video elementsroad axis = PCA of stored boxes collision = FastSAM silhouetteautopilot = Q-table lookup kill-cam · blood · manhuntincident report HOP 24 BACKEND Python stdlib/levels /boxes /masks/stream (JWT stays here) /caption /investigate/redescribe /policy.json VSS REST API /videos/stream/videos/detections/videos/metadata /search (hybrid)/dashboard/reingest VAST AI OS S3 · 5-second segments VastDB · vss-collectioncaption · text + visual vectors · YOLO boxes · metadata DataEngine pipelinesegment → detect → describe → embed → write re-describe with an investigator prompt → sharper archive NVIDIA ON COREWEAVE YOLO11s boxes · Cosmos3-Reason descriptions · Cosmos Embed1 vectors OFFLINE TOOLING seg/masks.py · FastSAM prompted by the stored boxes → masks__*.json rl/train.py · simulator from stored boxes → Q-learning → policy.json → Weights & Biases
Built on the archive, not beside it

problem → archive → search across cameras → action

The archive's own detections are the physics. One query covers every camera. The agent can already cross on its own.

The data was always there. We just gave it something to do.

github.com/vnmoorthy/hop24 · team-10-app.thecosmoslabs.com/app

Hop 24 · ← → to navigate · L opens the live app · F fullscreen