[build-system] requires = ["setuptools>=77.0"] build-backend = "setuptools.build_meta" [project] name = "better-actuator-models" version = "1.0.1" description = "BAM: Better Actuator Models is a Python library dedicated to the identification and simulation of advanced actuator models." readme = "README.md" requires-python = ">=3.12,<3.13" license = "Apache-2.0" authors = [ { name = "Marc Duclusaud" }, { name = "Grégoire Passault" }, ] keywords = ["robot", "robotics", "actuator", "simulation", "friction"] classifiers = [ "Programming Language :: Python :: 3", "Operating System :: OS Independent", ] dependencies = [ "numpy", "colorama", ] [project.optional-dependencies] # Use identified models in a MuJoCo (CPU) simulation. mujoco = [ "mujoco", ] # Use identified models in MuJoCo Warp via mjlab (GPU). mjlab = [ "mjlab>=1.3,<1.4", # mjlab 1.3 targets the MuJoCo Warp 3.7 era: it uses `ls_parallel` (removed in # mujoco-warp 3.9.1) and `wp.context` (removed in warp-lang 1.15). Pin the # simulation stack to that compatible combo, otherwise Simulation() raises # "ls_parallel was removed" / "module 'warp' has no attribute 'context'". "mujoco-warp>=3.7,<3.8", "mujoco>=3.7,<3.8", "warp-lang>=1.12,<1.13", "scipy" ] # Identify your own motors: hardware drivers, optimization, logging, plotting. identification = [ "zmq", "protobuf>=3.20,<4.0", "dynamixel_sdk", "rustypot>=1.5.0", "optuna", "cmaes", "wandb", "matplotlib", "PyQt5" ] # Everything at once. all = [ "better-actuator-models[mujoco,mjlab,identification]", ] [project.urls] Homepage = "https://github.com/Rhoban/bam" Repository = "https://github.com/Rhoban/bam" [tool.setuptools.packages.find] include = ["bam*"] [tool.setuptools.package-data] bam = ["params/**/*.json"] [tool.ruff] line-length = 88 target-version = "py312" extend-exclude = ["docs/_build"] [tool.ruff.format] quote-style = "double" indent-style = "space"