Metadata-Version: 2.4
Name: simready-benchmark-engine-kit
Version: 2026.6.5
Summary: Kit / Isaac Sim engine plugin for SimReady Benchmark
Author: NVIDIA Corporation
License-Expression: Apache-2.0
Project-URL: Homepage, https://www.nvidia.com
Keywords: nvidia,simready,test,kit,isaac
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: simready-benchmark>=2026.6.5
Requires-Dist: usd-core>=23.5
Requires-Dist: numpy>=1.23.0
Requires-Dist: Pillow>=10.0
Requires-Dist: imageio>=2.28.0
Requires-Dist: imageio-ffmpeg>=0.4.8
Dynamic: license-file

# simready-benchmark-engine-kit

Kit / Isaac Sim engine plugin for SimReady Benchmark. Provides
`KitPlugin`, registered with the framework through the
`simready_benchmark.engines` entry-point group.

This wheel is the bridge between `simready-benchmark` (engine-agnostic core) and
a separately-installed Kit / Isaac Sim runtime.

---

## Installation

```bash
pip install simready-benchmark-engine-kit
# Equivalent to:
pip install simready-benchmark[kit]
```

Both forms pull in `simready-benchmark` and `usd-core` as transitive dependencies.

Python 3.11 or newer is required.

**Kit / Isaac Sim itself is NOT a PyPI package.** Install it separately through
the NVIDIA Omniverse Launcher or your organization's internal package manager.
Point the framework at the install through `engines.toml`:

```toml
[kit.isaac_sim]
executable_path = "C:/Program Files/NVIDIA/IsaacSim/2025.1/isaac-sim.bat"
version = "5.1.0"
tags = ["isaac", "kit"]
```

---

## What This Wheel Provides

- **`KitPlugin`.** The framework-facing `EnginePlugin` implementation; loaded automatically through the `simready_benchmark.engines:kit` entry-point.
- **`KitSession`.** A single Kit subprocess and the lifecycle around it.
- **`KitLogCapture`.** Structured ingest of Kit's log lines.
- **`build_kit_command`**, **`resolve_kit_runner_path`.** Helpers for composing the Kit invocation from an `EngineConfig`.

End-user `@test`-decorated functions interact with Kit through `ctx.scene` on
the `RunContext` (a `SceneHandle` whose concrete type is `KitSceneHandle`
when this plugin is active).

---

## Configuration

The plugin reads engine paths from `engines.toml`. **4-tier lookup** (first match wins):

1. `--engines-toml <FILE>` CLI flag
2. `$SIMREADY_ENGINES_TOML` env var (missing file is a hard error)
3. `engines.toml` in the current working directory
4. `~/.simready-benchmark/engines.toml`

A `[engines.toml] <path>` line is written to stderr one time per process when a
file is loaded, so the user can identify which tier matched. Suppress with
`SIMREADY_QUIET_ENGINES_TOML=1`. Scaffold a starter with
`simready-benchmark --init-engines-toml`.

Required fields per engine instance:

| Field | Description |
|-------|-------------|
| `executable_path` | Path to the engine launcher (`.bat` / `.sh` / native binary) |
| `version` | Engine version string, for example `"5.1.0"` |
| `tags` | Capability tags used to match engine to test requirements |
| `driver_compatibility` | Optional list of OS/version-range driver checks |

Optional sections (handled at the framework level, not the plugin):

| Section | Purpose |
|---|---|
| `[paths].sr_specs = "<path>"` | Override `sr_specs` directory. Lower-priority than the CLI flag and `$SIMREADY_SR_SPECS`, but higher than `project_config.toml`, which is the recommended home for `sr_specs`. |
| `[tests].paths = [...]` | On-disk test-pack source directories (bundled FET suite source, OEM custom packs). Each path is a SOURCE directory (`__init__.py` lives there). An override above `project_config.toml [tests].paths`, the recommended home; below `--tests-path` and `$SIMREADY_BENCHMARK_TESTS_PATH`. |

---

## Compatibility

- Tested against Isaac Sim 5.1 (Kit 106.5-based).
- Inside Kit, `from pxr import ...` resolves through the Kit runtime. Outside
  Kit (for plain-Python unit tests, CLI listing, or static analysis on a
  developer machine without Kit installed), `usd-core` provides the same
  `pxr` module. `usd-core` is the headless USD distribution; no GPU/Hydra
  renderers, so it does not bloat installs that already have Kit.

---

## License

Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0
