HarnessEval-W README

The project's README from github.com/MirroS-Lab/HarnessEval-W. As one markdown file: README.md.

HarnessEval logo

HarnessEval-W

Agentifying the Evaluation of Visual Worlds

The era of harnessed benchmarking: evaluation defines the taste of evolution.

Paper Project Page Blog Leaderboard Hugging Face Dataset

HarnessEval overview

Overview

A benchmark should deliver more than a scalar score: what makes an evaluation trustworthy is the reasoning that justifies the score. This is especially critical for world models, where judging a rollout requires understanding whether physics, causality, and world state evolve correctly. Humans spot such violations naturally, yet no existing benchmark automates this capability: metrics are computed brute-force, leaving no reasoning chain that can be examined or verified.

HarnessEval is an agentified evaluation pipeline that brings the harness paradigm from the LLM ecosystem to world model benchmarking. Rather than applying a fixed rubric, HarnessEval interprets the context of each evaluation case, decomposes the evaluation question into measurable sub-questions, and spawns specialized sub-agents, each equipped with tailored context and diagnostic tools to reason over its own sub-question. The parent agent then validates the gathered evidence and aggregates it into the final verdict. Every evaluation becomes a transparent evidence tree whose complete reasoning chain justifies the result.

News

How It Works

HarnessEval pipeline

  1. Case-specific skill routing. Given a case (initial world, action, probe intent), the planner routes it to the skills that can legitimately evaluate it — and records an evidence-grounded reason for every skill it skips.
  2. Sub-agent reasoning. Each skill decomposes its evaluation into measurable sub-questions, each answered by a dedicated sub-agent against rollout evidence.
  3. Validated aggregation. The parent agent validates the collected evidence and aggregates it into the case score. The full trace — every question, answer, score, and supporting frame — is saved as an auditable case card.

Routing depends only on the case context, never on the model being evaluated, so every model faces the same questions on the same cases.

Installation

Create three environments:

git clone --branch main --single-branch https://github.com/mirros-lab/harnesseval-w.git
cd harnesseval-w
conda env create -f docs/installation/main.environment.yml
conda env create -f docs/installation/metrics.environment.yml
conda env create -f docs/installation/pavrm.environment.yml
conda activate harnesseval-main

Configure credentials and paths:

cp config/example.env harnesseval.env
set -a; . ./harnesseval.env; set +a

The bundled demo in runs/example/results_example can be evaluated immediately after setup.

Usage

Evaluate a model's generated results:

# Evaluate generated videos and write run outputs.
harnesseval eval \
  --results runs/example/results_example/generation \
  --model-id seedance-2.0-standard \
  --run-root runs/example/results_example/run \
  --manifest runs/example/results_example/manifest.json \
  --plan-root benchmark/plans

Check a completed run:

# Verify that an existing run has all expected scores.
harnesseval verify run \
  --eval-root runs/example/results_example/run/harnesseval/models/seedance-2.0-standard/evaluation \
  --manifest runs/example/results_example/manifest.json \
  --model seedance-2.0-standard

Or use the bundled demo end to end:

# Run the bundled demo from the example directory.
cd runs/example/results_example
# Evaluate the demo outputs.
harnesseval eval --results generation --model-id seedance-2.0-standard --run-root run --manifest manifest.json --plan-root ../../benchmark/plans
# Verify the demo run.
harnesseval verify run --eval-root run/harnesseval/models/seedance-2.0-standard/evaluation --manifest manifest.json --model seedance-2.0-standard

What You Get

The bundled example already produces scores. A completed evaluation writes:

runs/example/results_example/run/harnesseval/models/<model-id>/evaluation/
├── summary.json           # overall and per-family scores
├── leaderboard_latest.json
├── leaderboard_latest.csv
└── LEADERBOARD.md

Per-case artifacts and caches live under run/harnesseval/metric_cache/ and run/harnesseval/models/<model-id>/.

Extending HarnessEval

HarnessEval is a living benchmark, and contributions are welcome !

Keep submissions aligned with the existing benchmark format so they can plug into the bundled flow.

TODO

Acknowledge

This project builds upon the following excellent works:

Citation

If you find HarnessEval useful, please cite:

@article{Mirros2026harnessevalw,
  title   = {HarnessEval-W: Agentifying the Evaluation of Visual Worlds},
  author  = {MirroS Team},
  journal = {arXiv preprint arXiv:2608.16859},
  year    = {2026}
}

License

We release our code with Apache 2.0 License.

HarnessEval-W (MirroS-Lab/HarnessEval-W)

Searching Database…

What is this?HarnessEval-W is an agentified evaluation pipeline for benchmarking world/video-generation models: instead of a brute-force scalar score, it decomposes each evaluation case into sub-questions answered by specialized sub-agents, then aggregates the evidence into a transparent, auditable verdict.
Is this a single metric tool or a full agentic pipeline?It is a multi-agent pipeline: a planner routes each case to the skills that can legitimately judge it, dedicated sub-agents answer measurable sub-questions against rollout evidence, and a parent agent validates and aggregates that evidence into the final case score.
How do I get it running?Create three separate environments - harnesseval-main (launcher/CLI), harnesseval-metrics (metric backends), and harnesseval-pavrm (physical-plausibility backend) - configure credentials and paths, then run the bundled demo in runs/example/resultsexample.
What do I need before running it?Python plus three separately managed environments for the CLI launcher, the metric backends, and the physical-plausibility backend, each with its own credentials and paths configured first.
Any install pitfalls I should expect?Setup requires juggling three separate environments instead of one, and there's no hosted service yet - the 'submit videos, get scores' option is still listed as an unfinished TODO, so everything runs locally for now.
What is a case card?It is the auditable artifact HarnessEval saves per evaluation: every sub-question, sub-agent answer, score, and supporting frame that justified the final verdict.
Which world models can it evaluate?It supports text-, image-, action-, and camera-conditioned world models, including Kling, MiniMax H3, Seedance, WAN, and Cosmos, via model generation adapters.
Is there a public leaderboard?Yes, a 100-case public set with its leaderboard was released alongside the full benchmark and metric code in September 2026.
Why not just use a fixed scoring rubric?Fixed metrics are computed brute-force with no inspectable reasoning chain, so HarnessEval instead routes cases to specialized sub-agents that reason over evidence and produce a justifiable, traceable score.
Creator
MirroS-Lab
Size
410.1 MB
Stars
308
Updated
CommitSep 02
Age
2mo
Commits · 90 Days