Metadata-Version: 2.5
Name: simready-foundation-tier-core
Version: 0.0.1a6
Summary: SimReady Foundation base tier: the foundation profiles, features, requirements, and validators not yet split into their own tier
Project-URL: Documentation, https://docs.omniverse.nvidia.com/content-capabilities
Author: NVIDIA
Requires-Python: <3.13,>=3.10
Requires-Dist: numpy
Requires-Dist: usd-validation-nvidia>=1.19.3
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Provides-Extra: usd
Requires-Dist: usd-core>=22.11; extra == 'usd'
Description-Content-Type: text/markdown

# SimReady tier: Foundation Tier-Core (base)

A separately-publishable wheel containing the **base** SimReady foundation
validation content: the profiles, features, requirements, and validator rule
checkers that have not (yet) been split into their own tier. It is the base that
other tiers build on — e.g. `simready-foundation-tier-isaac` depends on it.

Distribution: `simready-foundation-tier-core`. It has no dependency on any other
tier, so it installs standalone:

```bash
pip install simready.validate
pip install simready-foundation-tier-core
```

## What's in it

The capability groups `core/*`, `hierarchy`, `visualization/*`,
`physics_bodies/*`, `nonvisual_sensors/*`, `packaging/*`, and `semantic_labels`,
plus their features and profiles. As content is peeled off into dedicated tiers
it leaves this bucket: the `isaac_sim/*` capabilities and the isaac
features/profiles now live in `simready-foundation-tier-isaac`. Core stays
standalone-installable because dependent tiers point *at* it, never the reverse.

## Layout

The tier is an ordinary Python package: its content is committed under
`simready/foundation/tier_core/` and ships as-is. The only build-time step is
generating the requirements-enum module (codegen), which is shared by every tier
and lives in [`../_tooling`](../_tooling).

```
simready_foundation_tier_core/
├── pyproject.toml          # distribution metadata + both entry points + build config
├── README.md
└── simready/foundation/tier_core/   # committed package (a copy; see note above)
    ├── __init__.py, _plugin.py, _tier.py        # generic scaffolding
    ├── capabilities/                            # all capability groups + import hub
    ├── features/                                # feature JSON
    └── profiles/                                # profile TOML
```

At build time, codegen adds the one missing piece — `requirements/` — into the wheel:

```
simready/foundation/tier_core/
├── … (the committed files above)
└── requirements/           # generated requirement enums (codegen) — NOT committed
```

## Discovery surfaces

The built wheel advertises itself two ways:

- **`usd_validation_nvidia`** → `simready.foundation.tier_core:SimReadyPlugin`
  — the asset validator auto-discovers this tier's validators (rules +
  requirements).
- **`simready.tier`** → `simready.foundation.tier_core:tier`
  — the SimReady loader discovers this tier's per-layer content sources
  (requirements module + features/profiles dirs) for its layered registration.

## Building

```bash
# from the repo root
./repo.sh build_tiers
```

`repo build_tiers` writes the wheel into this tier's `_build/dist/`.
