Universal Isaac Lab Environments Platform
Project description
Nepher: Universal Isaac Lab Environments Platform
Nepher is a unified, category-agnostic Python package for managing Isaac Lab environments across all categories (navigation, manipulation, humanoid, locomotion, etc.). It provides a professional command-line interface and Python API for discovering, downloading, uploading, and managing environment bundles for Isaac Lab/Isaac Sim.
Why EnvHub is Needed
Isaac Lab researchers and developers frequently need to work with diverse simulation environments across multiple categories (navigation, manipulation, humanoid, etc.). Managing these environments manually leads to several challenges:
- Fragmented Environment Management: Without a centralized platform, environments are scattered across repositories, making discovery and sharing difficult
- Inconsistent Structure: Different environment formats and structures make integration into research workflows cumbersome
- Limited Discoverability: Researchers struggle to find and evaluate suitable environments for their tasks
- Version Control Issues: Managing environment versions, dependencies, and updates becomes complex at scale
- Repetitive Setup: Setting up environments requires manual downloads, configuration, and path management
EnvHub addresses these challenges by providing a unified platform for environment discovery, management, and integration with Isaac Lab. It standardizes environment structures, enables easy sharing and collaboration, and simplifies the workflow from environment discovery to integration in research code.
What is an Environment?
An Environment (or env) is a bundle containing one or more simulation scenes organized under a common theme or purpose. Each environment has:
- Unique Identifier: An environment ID that uniquely identifies the bundle
- Category: The type of environment (navigation, manipulation, humanoid, locomotion, etc.)
- Type: Either
usd(USD-based scenes) orpreset(programmatically generated scenes) - Metadata: Description, version, author, and other metadata
- Scenes: A collection of related scenes that share the same environment context
Environments serve as containers that group related simulation scenes together, making it easier to organize, discover, and manage simulation assets.
What is a Scene?
A Scene represents a single, specific simulation configuration within an environment. Each scene defines:
- Scene Identifier: A unique name within the environment
- Type-Specific Configuration:
- For USD scenes: A USD file path plus optional occupancy maps and metadata
- For preset scenes: A Python configuration file that generates the scene programmatically
- Scene-Specific Settings: Spawn areas, exclusion zones, waypoints, and other scene-specific parameters
Scenes are the actual simulation configurations that get loaded into Isaac Lab for training or evaluation. A single environment can contain multiple scenes, allowing researchers to work with variations of similar environments.
Installation
From PyPI
pip install nepher
From Source
Clone the repository and install in editable mode:
git clone https://github.com/nepher-ai/envhub.git
cd envhub
pip install -e .
Optional Dependencies
Install with optional extras as needed:
# Development tools (pytest, black, ruff, mypy)
pip install -e ".[dev]"
# Keyring support for secure credential storage
pip install -e ".[keyring]"
# Isaac Lab integration
pip install -e ".[isaaclab]"
# All optional dependencies
pip install -e ".[dev,keyring,isaaclab]"
Environment and Scene Definitions
Environment Structure
Environments are defined using a manifest.yaml file that describes the environment bundle:
Example: USD Environment
id: digital-twin-warehouse-v1
type: usd
version: 1.0.0
description: Digital twin of a small warehouse environment for navigation training
category: navigation
scenes:
- scene_id: small_warehouse
description: Small warehouse digital twin with realistic layout and obstacles
usd: small_warehouse_digital_twin.usd
omap_image: digital_twin_omap/map.png
omap_meta: digital_twin_omap/map.yaml
Example: Preset Environment
id: indoor-environments-v1
type: preset
version: 1.0.0
description: Indoor navigation environments including hospital corridors and warehouse
category: navigation
preset_scenes:
- scene_id: hospital
description: Hospital corridor environment for indoor navigation
preset: hospital_preset.py
- scene_id: warehouse
description: Warehouse with shelves and bounding walls
preset: warehouse_preset.py
Usage Example
Here's how to load and use environments and scenes in your Isaac Lab code:
from nepher import load_env, load_scene
# Load an environment
env = load_env("indoor-environments-v1", category="navigation")
# List all scenes in the environment
print("Available scenes:", [s.name for s in env.get_all_scenes()])
# Output: Available scenes: ['hospital', 'warehouse']
# Load a specific scene configuration
scene_cfg = load_scene(env, scene="hospital", category="navigation")
# Use the scene configuration in Isaac Lab
from isaaclab.envs import ManagerBasedRLEnv
# ... configure your environment with scene_cfg
USD Scene in Isaac Sim
Preset Scene in Isaac Sim
Quick Start
# Authenticate with your API key
nepher login <api_key>
# Check current authentication status
nepher whoami
# Logout and clear credentials
nepher logout
# List available environments
nepher list --category navigation
# List evaluation benchmarks (evaluators only - for tournaments)
nepher list --eval-benchmarks
# Download an environment
nepher download <env_id> --category navigation
# List cached environments
nepher cache list
# View an environment in Isaac Sim
nepher view <env_id> --category navigation
# View a specific scene
nepher view <env_id> --category navigation --scene <scene_name>
# Upload your own environment (contributors or evaluators only)
nepher upload ./my-env --category manipulation --thumbnail ./thumbnail.png
Features
- Universal Category Support: Works with any environment category (navigation, manipulation, humanoid, locomotion, etc.)
- Professional CLI: Intuitive command-line interface for all operations
- Seamless Integration: Direct integration with
envhub-backendAPI - Flexible Configuration: User-configurable cache directories and settings
License
Business Source License 1.1 (BUSL-1.1) - see LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nepher-0.1.0.tar.gz.
File metadata
- Download URL: nepher-0.1.0.tar.gz
- Upload date:
- Size: 48.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8d0558e949cbcbe18b6b2037f65854a5a8f11476ea233a78e3d9cbe42f21e4a
|
|
| MD5 |
1c47310a0e6674fc010115bbdb737d40
|
|
| BLAKE2b-256 |
078c0322122973a4dcbb395990c39c867f7a6bb1ccd81673f6a806c46d9eb32d
|
File details
Details for the file nepher-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nepher-0.1.0-py3-none-any.whl
- Upload date:
- Size: 57.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f68a6ef9aacbfaa682b02511ab9ba865bead2f2aada95afc6b1891f8c5181254
|
|
| MD5 |
006ddf034ecf00861051454e8dfbfad5
|
|
| BLAKE2b-256 |
8ac66b682c55190a710c1e9f7323377fdfd6e3549487a71fd3ef90f16c50c723
|