# Build a community challenge

> Package your simulator and evaluator, share the test, and keep its trust clear.

Audience: Simulation and evaluation builders
Updated: 2026-07-29
Page: /docs/community-challenges

## Keep the simulation stack you already use

A community challenge is a versioned simulator and evaluator from a builder-owned HIM Package. Keep your repository layout, language, framework, assets, and native commands. The .him overlay tells HIM which entrypoints to run and which outputs to preserve.

- MuJoCo, MJX, Brax, Isaac Lab, custom Python, and immutable OCI entrypoints use the same package flow.
- Community challenge v1 uses one headless harness entrypoint for simulation and scoring; it may call separate modules inside your repository.
- The package digest pins the code, and every challenge version is immutable.
- Private packages create private challenges. Publish the package first when you want others to run it.
- Use a challenge package you are comfortable making inspectable to participants; creator and candidate code share the Community sandbox.

- [Create a community challenge](/challenges/new) — Choose an existing package and connect its entrypoints.
- [Send this to an AI agent](/docs/agent-setup.txt?guide=community-challenges) — Give a coding agent a bounded setup prompt for this workflow.

## From repository to shared challenge

1. Add a small .him overlay to the repository that already owns the simulator and evaluator.
2. Declare the real headless harness command that runs the simulation, invokes the candidate, and writes evaluation/evaluator.json.
3. Validate and push the immutable package, then test its native command on a bounded SSH machine if needed.
4. Open Account, choose Create challenge, select package entrypoints, and name the score metric.
5. Choose private, unlisted, or public visibility, then share the challenge.
6. Participants select an owned policy package on the challenge page or run him arena submit.
7. Matching provider-verified scores appear on that exact version's Community leaderboard.

**Smallest builder flow**

```bash
him init . --simulator
# Keep the native simulator command in .him/him.yaml
him doctor . --json
him validate --json
him test --local --json
him push --visibility unlisted --yes --json

him catalog create-challenge sha256:<challenge-package-digest> \
  --name "Balance Recovery" \
  --description "Recover from a repeatable push." \
  --simulator-entrypoint evaluate \
  --score-metric success_rate \
  --yes --json
```

> **No prescribed robotics framework:** HIM validates the execution boundary and outputs, not how your project is organized. Do not wrap working code in a new framework just for HIM.

## HIM Official and Community stay distinct

*Challenge trust is visible wherever a result appears.*

|  | HIM Official | Community |
| --- | --- | --- |
| Owner | HIM controls the challenge | The named builder controls it |
| Evaluator | Reviewed and separately hosted | Pinned inside the creator's package |
| Results | Eligible for the official leaderboard | Its own creator-defined Community leaderboard |
| Hardware | May qualify for supervised review | Requires HIM review first |

> **A public evaluator can be optimized directly:** Community tests are intentionally inspectable, including the creator harness used during a participant run. A challenge needs an independently reviewed, hidden evaluation path before HIM treats it as authoritative or connects it to hardware qualification.

## How participant policies run

HIM pins the creator's challenge package and the participant's approved policy package in one private, network-disabled Compute job. The creator's harness receives bounded candidate paths, runs the declared entrypoint, and emits the fixed score metric. Only provider-verified or trusted-local metrics with the exact challenge evaluator digest can rank.

**Enter from a terminal or agent**

```bash
him arena submit <challenge-version-id> \
  --package sha256:<policy-package-digest> \
  --entrypoint evaluate \
  --json

him arena leaderboard <challenge-version-id> --json
```

> **Official promotion is a new trust decision:** A Community leaderboard verifies package and execution identity, not evaluator independence. HIM can review a useful Community test later and publish a separate HIM Official version with isolated evaluation and held-out conditions.
