Skip to main content

Universal Isaac Lab Environments Platform

Project description

Nepher: Universal Isaac Lab Environments Platform

Python 3.10+ License

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) or preset (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 USD Scene Example

Preset Scene in Isaac Sim Preset Scene Example

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-backend API
  • 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

nepher-0.1.0.tar.gz (48.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nepher-0.1.0-py3-none-any.whl (57.3 kB view details)

Uploaded Python 3

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

Hashes for nepher-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e8d0558e949cbcbe18b6b2037f65854a5a8f11476ea233a78e3d9cbe42f21e4a
MD5 1c47310a0e6674fc010115bbdb737d40
BLAKE2b-256 078c0322122973a4dcbb395990c39c867f7a6bb1ccd81673f6a806c46d9eb32d

See more details on using hashes here.

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

Hashes for nepher-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f68a6ef9aacbfaa682b02511ab9ba865bead2f2aada95afc6b1891f8c5181254
MD5 006ddf034ecf00861051454e8dfbfad5
BLAKE2b-256 8ac66b682c55190a710c1e9f7323377fdfd6e3549487a71fd3ef90f16c50c723

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page