From dec0270cda7a5e2dfc612c2d23aa0070882afa06 Mon Sep 17 00:00:00 2001 From: Austin Gregg-Smith Date: Fri, 30 Aug 2024 17:55:54 +0100 Subject: [PATCH 1/7] update the build system to hatchling as reccomended by pixi --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index ade04ea..42765a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,8 +13,8 @@ dependencies = [ ] [build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" +requires = ["hatchling"] +build-backend = "hatchling.build" [tool.pixi.project] channels = ["conda-forge"] From c7e02a019112957f4dd26c2e3534c518148a2758 Mon Sep 17 00:00:00 2001 From: Austin Gregg-Smith Date: Fri, 30 Aug 2024 17:57:14 +0100 Subject: [PATCH 2/7] add: pixi tasks to run the demos --- README.md | 11 +++++++++++ pyproject.toml | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/README.md b/README.md index 3bd8cc5..ae5231e 100644 --- a/README.md +++ b/README.md @@ -24,3 +24,14 @@ pip install . ## Usage (TODO) + +## Demo + +If you have [pixi](https://github.com/prefix-dev/pixi) can run the demos with: + + +```bash +pixi run demo_task_space +#or +pixi run demo_impedance +``` diff --git a/pyproject.toml b/pyproject.toml index 42765a0..3d9c704 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,3 +25,8 @@ pybullet_robot = { path = ".", editable = true } [tool.pixi.dependencies] python = ">=3.10" + +[tool.pixi.tasks] +demo_task_space = "python3 ./examples/demo_task_space_control.py" +demo_impedance = "python3 ./examples/demo_task_space_control.py" + From b01992b34e63cf1356fe95dabb19759c29380bb6 Mon Sep 17 00:00:00 2001 From: Austin Gregg-Smith Date: Fri, 30 Aug 2024 17:58:11 +0100 Subject: [PATCH 3/7] update pixi.lock --- pixi.lock | 176 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 100 insertions(+), 76 deletions(-) diff --git a/pixi.lock b/pixi.lock index c792169..fc4d4e0 100644 --- a/pixi.lock +++ b/pixi.lock @@ -10,30 +10,31 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-hf3520f5_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.1.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.0-hde9e2c9_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4bc722e_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.4-h194c7f8_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-hb9d3cd8_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.5-h2ad013b_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - pypi: https://files.pythonhosted.org/packages/fd/5b/8f0c4a5bb9fd491c277c21eff7ccae71b47d43c4446c9d0c6cff2fe8c2c4/gitdb-4.0.11-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/e9/bd/cc3a402a6439c15c3d4294333e13042b915bbeab54edc457c723931fed3f/GitPython-3.1.43-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2c/f3/61eeef119beb37decb58e7cb29940f19a1464b8608f2cab8a8616aba75fd/numpy-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/48/3e/bf807eb050abc23adc556f34fcf931ca2d67ad8dfc9c17fcd9332c01347f/numpy-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/39/a6/6d6a8c535b82460527edc04b5fbf0374541d041668515e35822e53d7f66f/pybullet-3.2.6.tar.gz - - pypi: https://files.pythonhosted.org/packages/f3/94/5ce4c471f79a516492dda65d81e1864cdc1378eebd0e7ae0bdc871a12e91/robot_descriptions-1.11.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/9b/00/ce54410e344b3a6032cd42ed53fe425cf57a66d28e337670292bbb419ebc/scipy-1.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/4f/0b/49d4d4cd84ffa2d7aded910d0c27f144bdd98e5fbca452b40882c2c0c16e/robot_descriptions-1.12.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/8e/ee/8a26858ca517e9c64f84b4c7734b89bda8e63bec85c3d2f432d225bb1886/scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - pypi: https://files.pythonhosted.org/packages/a7/a5/10f97f73544edcdef54409f1d839f6049a0d79df68adbc1ceb24d1aaca42/smmap-5.0.1-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/48/5d/acf5905c36149bbaec41ccf7f2b68814647347b72075ac0b1fe3022fdc73/tqdm-4.66.5-py3-none-any.whl - pypi: . @@ -88,16 +89,16 @@ packages: timestamp: 1720974456583 - kind: conda name: ca-certificates - version: 2024.7.4 + version: 2024.8.30 build: hbcca054_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.7.4-hbcca054_0.conda - sha256: c1548a3235376f464f9931850b64b02492f379b2f2bb98bc786055329b080446 - md5: 23ab7665c5f63cfb9f1f6195256daac6 + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda + sha256: afee721baa6d988e27fef1832f68d6f32ac8cc99cdf6015732224c2841a09cea + md5: c27d1c142233b5bc9ca570c6e2e0c244 license: ISC purls: [] - size: 154853 - timestamp: 1720077432978 + size: 159003 + timestamp: 1725018903918 - kind: pypi name: gitdb version: 4.0.11 @@ -113,7 +114,7 @@ packages: sha256: eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff requires_dist: - gitdb<5,>=4.0.1 - - typing-extensions>=3.7.4.3 ; python_version < '3.8' + - typing-extensions>=3.7.4.3 ; python_full_version < '3.8' - sphinx==4.3.2 ; extra == 'doc' - sphinx-rtd-theme ; extra == 'doc' - sphinxcontrib-applehelp<=1.0.4,>=1.0.2 ; extra == 'doc' @@ -131,8 +132,8 @@ packages: - pytest-instafail ; extra == 'test' - pytest-mock ; extra == 'test' - pytest-sugar ; extra == 'test' - - typing-extensions ; python_version < '3.11' and extra == 'test' - - mock ; python_version < '3.8' and extra == 'test' + - typing-extensions ; python_full_version < '3.11' and extra == 'test' + - mock ; python_full_version < '3.8' and extra == 'test' requires_python: '>=3.7' - kind: conda name: ld_impl_linux-64 @@ -184,38 +185,57 @@ packages: size: 58292 timestamp: 1636488182923 - kind: conda - name: libgcc-ng + name: libgcc version: 14.1.0 - build: h77fa898_0 + build: h77fa898_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h77fa898_0.conda - sha256: b8e869ac96591cda2704bf7e77a301025e405227791a0bddf14a3dac65125538 - md5: ca0fad6a41ddaef54a153b78eccb5037 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.1.0-h77fa898_1.conda + sha256: 10fa74b69266a2be7b96db881e18fa62cfa03082b65231e8d652e897c4b335a3 + md5: 002ef4463dd1e2b44a94a4ace468f5d2 depends: - _libgcc_mutex 0.1 conda_forge - _openmp_mutex >=4.5 constrains: - - libgomp 14.1.0 h77fa898_0 + - libgomp 14.1.0 h77fa898_1 + - libgcc-ng ==14.1.0=*_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 846380 + timestamp: 1724801836552 +- kind: conda + name: libgcc-ng + version: 14.1.0 + build: h69a702a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h69a702a_1.conda + sha256: b91f7021e14c3d5c840fbf0dc75370d6e1f7c7ff4482220940eaafb9c64613b7 + md5: 1efc0ad219877a73ef977af7dbb51f17 + depends: + - libgcc 14.1.0 h77fa898_1 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 842109 - timestamp: 1719538896937 + size: 52170 + timestamp: 1724801842101 - kind: conda name: libgomp version: 14.1.0 - build: h77fa898_0 + build: h77fa898_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_0.conda - sha256: 7699df61a1f6c644b3576a40f54791561f2845983120477a16116b951c9cdb05 - md5: ae061a5ed5f05818acdf9adab72c146d + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_1.conda + sha256: c96724c8ae4ee61af7674c5d9e5a3fbcf6cd887a40ad5a52c99aa36f1d4f9680 + md5: 23c255b008c4f2ae008f81edcabaca89 depends: - _libgcc_mutex 0.1 conda_forge license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 456925 - timestamp: 1719538796073 + size: 460218 + timestamp: 1724801743478 - kind: conda name: libnsl version: 2.0.1 @@ -297,43 +317,43 @@ packages: - kind: conda name: ncurses version: '6.5' - build: h59595ed_0 + build: he02047a_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h59595ed_0.conda - sha256: 4fc3b384f4072b68853a0013ea83bdfd3d66b0126e2238e1d6e1560747aa7586 - md5: fcea371545eda051b6deafb24889fc69 + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a + md5: 70caf8bb6cf39a0b6b7efc885f51c0fe depends: + - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 license: X11 AND BSD-3-Clause purls: [] - size: 887465 - timestamp: 1715194722503 + size: 889086 + timestamp: 1724658547447 - kind: pypi name: numpy - version: 2.0.1 - url: https://files.pythonhosted.org/packages/2c/f3/61eeef119beb37decb58e7cb29940f19a1464b8608f2cab8a8616aba75fd/numpy-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 6790654cb13eab303d8402354fabd47472b24635700f631f041bd0b65e37298a - requires_python: '>=3.9' + version: 2.1.0 + url: https://files.pythonhosted.org/packages/48/3e/bf807eb050abc23adc556f34fcf931ca2d67ad8dfc9c17fcd9332c01347f/numpy-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 24003ba8ff22ea29a8c306e61d316ac74111cebf942afbf692df65509a05f111 + requires_python: '>=3.10' - kind: conda name: openssl version: 3.3.1 - build: h4bc722e_2 - build_number: 2 + build: hb9d3cd8_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-h4bc722e_2.conda - sha256: b294b3cc706ad1048cdb514f0db3da9f37ae3fcc0c53a7104083dd0918adb200 - md5: e1b454497f9f7c1147fdde4b53f1b512 + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.1-hb9d3cd8_3.conda + sha256: 9e27441b273a7cf9071f6e88ba9ad565d926d8083b154c64a74b99fba167b137 + md5: 6c566a46baae794daf34775d41eb180a depends: - __glibc >=2.17,<3.0.a0 - ca-certificates - - libgcc-ng >=12 - constrains: - - pyopenssl >=22.1 + - libgcc-ng >=13 license: Apache-2.0 license_family: Apache purls: [] - size: 2895213 - timestamp: 1721194688955 + size: 2892042 + timestamp: 1724402701933 - kind: pypi name: pybullet version: 3.2.6 @@ -343,7 +363,7 @@ packages: name: pybullet-robot version: 0.1.4 path: . - sha256: a325b5026327d663dc1b1eee69d4c0d229c236d2eef50f1338b69054bd9bc1b8 + sha256: 09c3ca863e4180774b41d8996f03f0f315a1e861cc8098652cf43c8e76b1a511 requires_dist: - robot-descriptions>=1.11.0,<2 - numpy>=1.6,<3 @@ -353,13 +373,14 @@ packages: editable: true - kind: conda name: python - version: 3.12.4 - build: h194c7f8_0_cpython + version: 3.12.5 + build: h2ad013b_0_cpython subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.4-h194c7f8_0_cpython.conda - sha256: 97a78631e6c928bf7ad78d52f7f070fcf3bd37619fa48dc4394c21cf3058cdee - md5: d73490214f536cccb5819e9873048c92 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.5-h2ad013b_0_cpython.conda + sha256: e2aad83838988725d4ffba4e9717b9328054fd18a668cff3377e0c50f109e8bd + md5: 9c56c4df45f6571b13111d8df2448692 depends: + - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-64 >=2.36.1 - libexpat >=2.6.2,<3.0a0 @@ -380,8 +401,8 @@ packages: - python_abi 3.12.* *_cp312 license: Python-2.0 purls: [] - size: 32073625 - timestamp: 1718621771849 + size: 31663253 + timestamp: 1723143721353 - kind: conda name: readline version: '8.2' @@ -401,22 +422,24 @@ packages: timestamp: 1679532220005 - kind: pypi name: robot-descriptions - version: 1.11.0 - url: https://files.pythonhosted.org/packages/f3/94/5ce4c471f79a516492dda65d81e1864cdc1378eebd0e7ae0bdc871a12e91/robot_descriptions-1.11.0-py3-none-any.whl - sha256: 2c6e833ab35204f68a533d2cebb60692c1acbb8468b5f8292af0494b17621324 + version: 1.12.0 + url: https://files.pythonhosted.org/packages/4f/0b/49d4d4cd84ffa2d7aded910d0c27f144bdd98e5fbca452b40882c2c0c16e/robot_descriptions-1.12.0-py3-none-any.whl + sha256: d1330a1eae7b0937a60a72f2ea73b030547cc3255292eb404d82a87e8f20ffd5 requires_dist: - gitpython>=3.1.18 - tqdm>=4.64.0 - - pin>=2.6.10 ; extra == 'opts' - idyntree>=8.0.0 ; extra == 'opts' + - mujoco>=3.2.0 ; extra == 'opts' + - pin>=2.6.10 ; extra == 'opts' + - pybullet>=3.2.6 ; extra == 'opts' - robomeshcat>=1.0.4 ; extra == 'opts' - yourdfpy>=0.0.56 ; extra == 'opts' requires_python: '>=3.7' - kind: pypi name: scipy - version: 1.14.0 - url: https://files.pythonhosted.org/packages/9b/00/ce54410e344b3a6032cd42ed53fe425cf57a66d28e337670292bbb419ebc/scipy-1.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: a01cc03bcdc777c9da3cfdcc74b5a75caffb48a6c39c8450a9a05f82c4250a14 + version: 1.14.1 + url: https://files.pythonhosted.org/packages/8e/ee/8a26858ca517e9c64f84b4c7734b89bda8e63bec85c3d2f432d225bb1886/scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + sha256: 8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066 requires_dist: - numpy<2.3,>=1.23.5 - pytest ; extra == 'test' @@ -430,11 +453,11 @@ packages: - scikit-umfpack ; extra == 'test' - pooch ; extra == 'test' - hypothesis>=6.30 ; extra == 'test' - - array-api-strict ; extra == 'test' + - array-api-strict>=2.0 ; extra == 'test' - cython ; extra == 'test' - meson ; extra == 'test' - ninja ; sys_platform != 'emscripten' and extra == 'test' - - sphinx>=5.0.0 ; extra == 'doc' + - sphinx<=7.3.7,>=5.0.0 ; extra == 'doc' - pydata-sphinx-theme>=0.15.2 ; extra == 'doc' - sphinx-design>=0.4.0 ; extra == 'doc' - matplotlib>=3.5 ; extra == 'doc' @@ -495,16 +518,17 @@ packages: - kind: conda name: tzdata version: 2024a - build: h0c530f3_0 + build: h8827d51_1 + build_number: 1 subdir: noarch noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 - md5: 161081fc7cec0bfda0d86d7cb595f8d8 + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda + sha256: 7d21c95f61319dba9209ca17d1935e6128af4235a67ee4e57a00908a1450081e + md5: 8bfdead4e0fff0383ae4c9c50d0531bd license: LicenseRef-Public-Domain purls: [] - size: 119815 - timestamp: 1706886945727 + size: 124164 + timestamp: 1724736371498 - kind: conda name: xz version: 5.2.6 From e557039409c7802c2699bcad40f3d5f6a2d80406 Mon Sep 17 00:00:00 2001 From: Austin Gregg-Smith Date: Fri, 30 Aug 2024 18:32:33 +0100 Subject: [PATCH 4/7] update impedance demo path --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3d9c704..ef03f92 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,5 +28,5 @@ python = ">=3.10" [tool.pixi.tasks] demo_task_space = "python3 ./examples/demo_task_space_control.py" -demo_impedance = "python3 ./examples/demo_task_space_control.py" +demo_impedance = "python3 ./examples/impedance_controllers.py" From 2abaa5aa441c53d947731e65188872b84c7b1702 Mon Sep 17 00:00:00 2001 From: Austin Gregg-Smith Date: Fri, 30 Aug 2024 18:32:39 +0100 Subject: [PATCH 5/7] update lock file --- pixi.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pixi.lock b/pixi.lock index fc4d4e0..820a0af 100644 --- a/pixi.lock +++ b/pixi.lock @@ -363,7 +363,7 @@ packages: name: pybullet-robot version: 0.1.4 path: . - sha256: 09c3ca863e4180774b41d8996f03f0f315a1e861cc8098652cf43c8e76b1a511 + sha256: ec4aa702c589213ba5cc86ea82e5216e707ef3481ddbb1be9aaf931c3a3aa783 requires_dist: - robot-descriptions>=1.11.0,<2 - numpy>=1.6,<3 From b731b8efb70b734a9fb49d76442d5ed101c1710b Mon Sep 17 00:00:00 2001 From: Austin Gregg-Smith Date: Fri, 30 Aug 2024 18:33:00 +0100 Subject: [PATCH 6/7] Update README.md Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ae5231e..402122d 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ pip install . ## Demo -If you have [pixi](https://github.com/prefix-dev/pixi) can run the demos with: +If you have [pixi](https://github.com/prefix-dev/pixi) you can run the demos with: ```bash From d09ce1cc4f50fdcd4858f716856170c9eea76857 Mon Sep 17 00:00:00 2001 From: Austin Gregg-Smith Date: Fri, 30 Aug 2024 18:34:47 +0100 Subject: [PATCH 7/7] fix comment formatting --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 402122d..9e617df 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,6 @@ If you have [pixi](https://github.com/prefix-dev/pixi) you can run the demos wit ```bash pixi run demo_task_space -#or +# or pixi run demo_impedance ```