177 lines
4.4 KiB
TOML
177 lines
4.4 KiB
TOML
[build-system]
|
|
requires = ["uv_build>=0.8.19,<0.9.0"]
|
|
build-backend = "uv_build"
|
|
|
|
[project]
|
|
name = "mjlab"
|
|
version = "1.4.0"
|
|
license = "Apache-2.0"
|
|
license-files = ["LICENSE"]
|
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
authors = [
|
|
{name = "The MjLab Developers"},
|
|
]
|
|
keywords = ["mujoco", "mujoco-warp", "simulation", "reinforcement-learning", "robotics"]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Science/Research",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Programming Language :: Python :: 3 :: Only",
|
|
"Typing :: Typed",
|
|
"Environment :: GPU :: NVIDIA CUDA",
|
|
"Topic :: Scientific/Engineering",
|
|
"Natural Language :: English",
|
|
]
|
|
description = "Isaac Lab API, powered by MuJoCo-Warp, for RL and robotics research."
|
|
requires-python = ">=3.10,<3.14"
|
|
dependencies = [
|
|
"prettytable",
|
|
"tqdm",
|
|
"tyro>=1.0.1",
|
|
"torch>=2.7.0",
|
|
"torchrunx>=0.3.4",
|
|
"warp-lang>=1.12.0",
|
|
"mujoco-warp>=3.8.0.3,~=3.8.0",
|
|
"mujoco~=3.8.0",
|
|
"trimesh>=4.8.3",
|
|
"scipy>=1.15",
|
|
"viser>=1.0.27",
|
|
"mjviser>=0.0.14",
|
|
"mediapy>=1.2.6",
|
|
"imageio-ffmpeg",
|
|
"tensordict",
|
|
"rsl-rl-lib==5.4.0",
|
|
"tensorboard>=2.20.0",
|
|
"onnxscript>=0.5.4",
|
|
"wandb>=0.22.3",
|
|
]
|
|
|
|
[project.urls]
|
|
"Bug Reports" = "https://github.com/mujocolab/mjlab/issues"
|
|
"Source" = "https://github.com/mujocolab/mjlab"
|
|
|
|
[project.scripts]
|
|
train = "mjlab.scripts.train:main"
|
|
play = "mjlab.scripts.play:main"
|
|
demo = "mjlab.scripts.demo:main"
|
|
list-envs = "mjlab.scripts.list_envs:main"
|
|
viz-nan = "mjlab.scripts.nan_viz:main"
|
|
export-scene = "mjlab.scripts.export_scene:main"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"ipdb>=0.13.13",
|
|
"pre-commit>=4.3.0",
|
|
"pyright>=1.1.408",
|
|
"onnxruntime>=1.19.0; python_version >= '3.11'",
|
|
"pytest>=v9.0.3",
|
|
"ruff>=v0.14.14",
|
|
"ty>=v0.0.14",
|
|
]
|
|
docs = [
|
|
"myst-parser>=4.0.1",
|
|
"sphinx>=8.1.3",
|
|
"sphinx-autodoc-typehints>=3.0.1",
|
|
"sphinx-autobuild>=2024.10.3",
|
|
"sphinx-book-theme>=1.1.4",
|
|
"sphinx-copybutton>=0.5.2",
|
|
"sphinx-design>=0.6.1",
|
|
"autodocsumm",
|
|
"sphinxemoji",
|
|
"sphinxcontrib.bibtex",
|
|
"sphinx-icon",
|
|
"sphinx-tabs",
|
|
"sphinx_multiversion",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
cu128 = ["torch>=2.7.0"]
|
|
cpu = ["torch>=2.7.0"]
|
|
|
|
[tool.uv]
|
|
conflicts = [
|
|
[{extra = "cu128"}, {extra = "cpu"}],
|
|
]
|
|
# The nightly index (py.mujoco.org) only has dev builds, and PEP 440 ranks
|
|
# 3.8.0.devN < 3.8.0, so the ~=3.8.0 floor in [project.dependencies] would
|
|
# reject them. This override loosens the constraint for uv resolution only.
|
|
override-dependencies = ["mujoco>=3.8.0.dev0"]
|
|
constraint-dependencies = [
|
|
"GitPython>=3.1.49",
|
|
"lxml>=6.1.0",
|
|
]
|
|
required-environments = [
|
|
"sys_platform == 'darwin' and platform_machine == 'arm64'",
|
|
"sys_platform == 'linux' and platform_machine == 'x86_64'",
|
|
]
|
|
|
|
[[tool.uv.index]]
|
|
url = "https://pypi.org/simple"
|
|
|
|
[[tool.uv.index]]
|
|
name = "nvidia"
|
|
url = "https://pypi.nvidia.com/"
|
|
explicit = true
|
|
|
|
[[tool.uv.index]]
|
|
name = "pytorch-cu128"
|
|
url = "https://download.pytorch.org/whl/cu128"
|
|
explicit = true
|
|
|
|
[[tool.uv.index]]
|
|
name = "pytorch-cpu"
|
|
url = "https://download.pytorch.org/whl/cpu"
|
|
explicit = true
|
|
|
|
[[tool.uv.index]]
|
|
name = "mujoco"
|
|
url = "https://py.mujoco.org"
|
|
explicit = true
|
|
|
|
[tool.uv.sources]
|
|
warp-lang = { index = "nvidia", marker = "sys_platform != 'darwin'" }
|
|
torch = [
|
|
{ index = "pytorch-cu128", extra = "cu128", marker = "sys_platform != 'darwin'" },
|
|
{ index = "pytorch-cpu", extra = "cpu", marker = "sys_platform != 'darwin'" },
|
|
]
|
|
mujoco = { index = "mujoco" }
|
|
mujoco-warp = { git = "https://github.com/google-deepmind/mujoco_warp", rev = "88b55fc2696960b927bc12584994bb8412b36558" }
|
|
|
|
[tool.ruff]
|
|
src = ["src"] # Helpful for recognizing first-party imports.
|
|
indent-width = 2
|
|
exclude = [
|
|
"src/mjlab/utils/lab_api",
|
|
"typings",
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E4", "E7", "E9", "F", "I", "B"]
|
|
ignore = ["B011"]
|
|
|
|
[tool.pyright]
|
|
pythonVersion = "3.10"
|
|
venvPath = "."
|
|
venv = ".venv"
|
|
ignore = ["./typings", "./src/mjlab/utils/lab_api", "./docs"]
|
|
stubPath = "typings"
|
|
|
|
[tool.ty.environment]
|
|
extra-paths = ["typings"]
|
|
|
|
[tool.ty.src]
|
|
include = ["src", "tests"]
|
|
exclude = ["src/mjlab/utils/lab_api", "typings"]
|
|
|
|
[tool.pytest.ini_options]
|
|
markers = [
|
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
]
|
|
addopts = "--strict-markers"
|