Validation and profiling

Custom environments must be Python code that follows the Gymnasium API. Arena validates structure and spaces before training is allowed.

If your environment implements render, validation only shows a Film preview when rgb_array render mode is supported.

Arena runs your custom environment in an isolated validator before training. Validation checks that the entrypoint loads, spaces are consistent, and optional rollouts succeed. Profiling measures CPU and RAM per parallel env worker so schedulers can place jobs.

Validation

When it runs

  • When you commit a version from the editor or finish the create modal (validation results go with the commit)

  • From the editor with Validate against the working copy without committing

What you see in the UI

The validation side panel uses icons when data exists:

  1. Checklist — per-check pass, warning, or error (checks differ for single- vs multi-agent)

  2. Information — observation and action space strings and types, image sizes, multi-agent flag

  3. Chart — reward distribution from rollout samples

  4. Film — render frame when the env supports it

Failed checks block a green “all pass” badge. Warnings show an orange count but still allow success if there are no errors.

After code or dependency changes, banners state that data is stale and ask you to re-validate before launching.

On the experiment Environment step, similar panels appear for custom gyms: Rendered environment, Resource Usage, Random episode score distribution, with the same stale and in-progress profiling messages.

Profiling

Profiling fills CPU and RAM per env worker on the version record (visible under Resource Usage when you expand the row).

When it runs

  • Automatically after a successful commit when profiling is enabled and an entrypoint is set (common on create)

While profiling is in progress, Launch experiment stays disabled for up to about fifteen minutes after profiling started without completion.

When Launch experiment is enabled

Launch experiment on the versions table requires:

  • Validation status Validated

  • Both CPU and RAM per env populated on the version

  • Profiling not actively running (per the window above)

Tooltips on the disabled button explain which condition is missing.

Failure handling

  • Validation failure sets status Failed; fix code or entrypoint and commit again.

  • Profiling failure sets profiling to Failed; fix the env and run profiling again.

  • Dependency install errors during create appear in the modal with shared upload validation messages.

See also