mujoco-mojo 2.2.2__tar.gz → 2.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mujoco_mojo-2.3.0/.gitattributes +3 -0
- mujoco_mojo-2.3.0/.github/workflows/docs.yml +33 -0
- mujoco_mojo-2.3.0/.github/workflows/release.yml +80 -0
- mujoco_mojo-2.3.0/.gitignore +27 -0
- mujoco_mojo-2.3.0/.pre-commit-config.yaml +57 -0
- mujoco_mojo-2.3.0/.python-version +1 -0
- mujoco_mojo-2.3.0/.vscode/settings.json +20 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/PKG-INFO +22 -23
- mujoco_mojo-2.3.0/TODO.md +1 -0
- mujoco_mojo-2.3.0/docs/about.md +9 -0
- mujoco_mojo-2.3.0/docs/assets/dark-hero-logo.png +0 -0
- mujoco_mojo-2.3.0/docs/assets/dark-hero-logo.svg +303 -0
- mujoco_mojo-2.3.0/docs/assets/light-hero-logo.svg +303 -0
- mujoco_mojo-2.3.0/docs/assets/logo.svg +306 -0
- mujoco_mojo-2.3.0/docs/assets/mesh/bunny_original.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/mesh/bunny_with_coacd.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/mesh/bunny_without_coacd.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/mesh/frustums.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/mesh/proximity/convex_hull_wireframe.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/mesh/proximity/real_wireframe.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/mesh/with_coacd.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/mesh/without_coacd.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/dark-export-options.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/dark-monitor-view.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/dark-mosaic-view.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/dark-notes-editor.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/dark-plot-editor.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/dark-selector-bar.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/dark-shapes-editor.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/generate-result.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/light-export-options.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/light-monitor-view.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/light-mosaic-view.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/light-notes-editor.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/light-plot-editor.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/light-selector-bar.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/light-shapes-editor.jpg +0 -0
- mujoco_mojo-2.3.0/docs/assets/user-guides/runtime-anim.gif +0 -0
- mujoco_mojo-2.3.0/docs/index.md +175 -0
- mujoco_mojo-2.3.0/docs/javascripts/favicon-switcher.js +28 -0
- mujoco_mojo-2.3.0/docs/javascripts/mojo-highlighter.js +63 -0
- mujoco_mojo-2.3.0/docs/javascripts/tablesort.js +6 -0
- mujoco_mojo-2.3.0/docs/stylesheets/extra.css +227 -0
- mujoco_mojo-2.3.0/docs/user-guides/MOJO_RUNTIME_REPORT.md +47 -0
- mujoco_mojo-2.3.0/docs/user-guides/dojo.md +95 -0
- mujoco_mojo-2.3.0/docs/user-guides/generate-script.md +127 -0
- mujoco_mojo-2.3.0/docs/user-guides/getting-started.md +319 -0
- mujoco_mojo-2.3.0/docs/user-guides/init.md +65 -0
- mujoco_mojo-2.3.0/docs/user-guides/monitor.md +49 -0
- mujoco_mojo-2.3.0/docs/user-guides/monte_carlo_example.py +318 -0
- mujoco_mojo-2.3.0/docs/user-guides/mosaic.md +142 -0
- mujoco_mojo-2.3.0/docs/user-guides/optimization.md +125 -0
- mujoco_mojo-2.3.0/docs/user-guides/optimization_example.py +273 -0
- mujoco_mojo-2.3.0/docs/user-guides/reloaded.md +98 -0
- mujoco_mojo-2.3.0/docs/user-guides/running-jobs.md +151 -0
- mujoco_mojo-2.3.0/docs/user-guides/runtime-script.md +160 -0
- mujoco_mojo-2.3.0/examples/boxes_and_springs_monte_carlo.py +269 -0
- mujoco_mojo-2.3.0/examples/boxes_and_springs_optimization.py +268 -0
- mujoco_mojo-2.3.0/examples/tennis_racket_theorem.py +210 -0
- mujoco_mojo-2.3.0/mkdocs.yml +207 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/pyproject.toml +9 -5
- mujoco_mojo-2.3.0/requirements.txt +1969 -0
- mujoco_mojo-2.3.0/scripts/copy_docs_examples_to_examples.py +77 -0
- mujoco_mojo-2.3.0/scripts/fix_smart_quotes.py +63 -0
- mujoco_mojo-2.3.0/scripts/gen_ref_pages.py +85 -0
- mujoco_mojo-2.3.0/scripts/gen_ts_models.py +176 -0
- mujoco_mojo-2.3.0/scripts/templating/filestomake.txt +49 -0
- mujoco_mojo-2.3.0/scripts/templating/make_sensors.py +54 -0
- mujoco_mojo-2.3.0/scripts/templating/sensor_template.py +11 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/__init__.py +24 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/templates/monte_carlo.py +36 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/templates/optimization.py +41 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/templates/reloaded.sh +7 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/templates/run_mc.sh +12 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/templates/run_opt.sh +13 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/dataframe.py +49 -21
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/filters/__init__.py +16 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/filters/filters.py +323 -7
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/cli.py +102 -23
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/lab_executor.py +290 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/plot_config.py +163 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/routers/mosaic.py +875 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/base.html +115 -57
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/morph.html +52 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_chart.html +242 -42
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_header.html +386 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_json_editor.html +83 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_lab_trigger.html +36 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_macros.html +65 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_overlays.html +82 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_series_panel.html +489 -100
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_signal_lab.html +1407 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/dark-logo.svg +198 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/js/main.js +66 -13
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/js/monitor.js +78 -27
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/js/toast.d.ts +2 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/js/toast.d.ts.map +1 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/js/trial-viewer.js +2409 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/light-logo.svg +192 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/build.mjs +66 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/package-lock.json +730 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/package.json +21 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/cm-bundle.ts +7 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/lib/format.ts +18 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/lib/options.ts +102 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/lib/plot-config.generated.ts +90 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/lib/toast.ts +26 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/models.ts +136 -0
- mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static/monitor.js → mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/monitor.ts +108 -85
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/mosaic.ts +45 -0
- mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static/main.js → mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/store.ts +172 -103
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/trial-viewer.ts +2831 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/src/types/global.d.ts +89 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/ts/tsconfig.json +20 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/__init__.py +0 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/codemirror.bundle.js +12 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/litegraph.min.css +8 -0
- mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/litegraph.min.js +915 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/trial_viewer.html +15 -5
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/proximity.py +0 -4
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/runner.py +38 -0
- mujoco_mojo-2.3.0/tests/.gitignore +3 -0
- mujoco_mojo-2.3.0/tests/make_skybox.py +37 -0
- mujoco_mojo-2.3.0/tests/meshes/ball.stl +0 -0
- mujoco_mojo-2.3.0/tests/meshes/bunny2.stl +0 -0
- mujoco_mojo-2.3.0/tests/meshes/cup.stl +0 -0
- mujoco_mojo-2.3.0/tests/mjcf/inertial_test.py +226 -0
- mujoco_mojo-2.3.0/tests/mjcf/mesh.py +98 -0
- mujoco_mojo-2.3.0/tests/mjcf/orientation_test.py +110 -0
- mujoco_mojo-2.3.0/tests/mjcf/pos_test.py +86 -0
- mujoco_mojo-2.3.0/tests/mjcf/pose_test.py +99 -0
- mujoco_mojo-2.3.0/tests/mjcf/xml_model_test.py +211 -0
- mujoco_mojo-2.3.0/tests/model_with_skybox.xml +11 -0
- mujoco_mojo-2.3.0/tests/monte_carlo_test/asset_image.png +0 -0
- mujoco_mojo-2.3.0/tests/monte_carlo_test/monte_carlo.py +119 -0
- mujoco_mojo-2.3.0/tests/monte_carlo_test/overrides.json +9 -0
- mujoco_mojo-2.3.0/tests/monte_carlo_test/running_with_slurm.sh +33 -0
- mujoco_mojo-2.3.0/tests/runtime/conftest.py +34 -0
- mujoco_mojo-2.3.0/tests/runtime/loads_test.py +452 -0
- mujoco_mojo-2.3.0/tests/runtime/monte_carlo_bumper.py +407 -0
- mujoco_mojo-2.3.0/tests/runtime/optimizer_bumper.py +385 -0
- mujoco_mojo-2.3.0/tests/runtime/runtime_manager_test.py +100 -0
- mujoco_mojo-2.3.0/tests/runtime/signal_manager_test.py +250 -0
- mujoco_mojo-2.3.0/tests/smoke_test.py +4 -0
- mujoco_mojo-2.3.0/tests/utils/color_test.py +96 -0
- mujoco_mojo-2.3.0/tests/utils/dataframe_test.py +200 -0
- mujoco_mojo-2.3.0/tests/utils/filter_test.py +347 -0
- mujoco_mojo-2.3.0/tests/utils/interp_test.py +72 -0
- mujoco_mojo-2.3.0/tests/utils/proximity_test.py +618 -0
- mujoco_mojo-2.3.0/typings/mujoco/__init__.pyi +1273 -0
- mujoco_mojo-2.3.0/typings/mujoco/_callbacks.pyi +50 -0
- mujoco_mojo-2.3.0/typings/mujoco/_constants.pyi +183 -0
- mujoco_mojo-2.3.0/typings/mujoco/_enums.pyi +6973 -0
- mujoco_mojo-2.3.0/typings/mujoco/_errors.pyi +5 -0
- mujoco_mojo-2.3.0/typings/mujoco/_functions.pyi +2950 -0
- mujoco_mojo-2.3.0/typings/mujoco/_render.pyi +503 -0
- mujoco_mojo-2.3.0/typings/mujoco/_specs.pyi +2988 -0
- mujoco_mojo-2.3.0/typings/mujoco/_structs.pyi +6587 -0
- mujoco_mojo-2.3.0/typings/mujoco/cgl/__init__.pyi +23 -0
- mujoco_mojo-2.3.0/typings/mujoco/cgl/cgl.pyi +89 -0
- mujoco_mojo-2.3.0/typings/mujoco/gl_context.pyi +14 -0
- mujoco_mojo-2.3.0/typings/mujoco/glfw/__init__.pyi +17 -0
- mujoco_mojo-2.3.0/typings/mujoco/renderer.pyi +113 -0
- mujoco_mojo-2.3.0/uv.lock +3925 -0
- mujoco_mojo-2.2.2/setup.cfg +0 -4
- mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/routers/mosaic.py +0 -488
- mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/morph.html +0 -88
- mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_header.html +0 -322
- mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_json_editor.html +0 -60
- mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/partials/trial_viewer/_overlays.html +0 -83
- mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static/js/trial-viewer.js +0 -1388
- mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static/mosaic.js +0 -47
- mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static/trial-viewer.js +0 -2032
- mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/PKG-INFO +0 -224
- mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/SOURCES.txt +0 -248
- mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/dependency_links.txt +0 -1
- mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/entry_points.txt +0 -2
- mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/requires.txt +0 -37
- mujoco_mojo-2.2.2/src/mujoco_mojo.egg-info/top_level.txt +0 -1
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/LICENSE +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/README.md +0 -0
- {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static → mujoco_mojo-2.3.0/docs/assets}/dark-logo.svg +0 -0
- {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static → mujoco_mojo-2.3.0/docs/assets}/light-logo.svg +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/__about__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/base.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/meta.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/defaults.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/dependency_path.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/extension.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/meta/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/meta/frame.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/meta/include.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/meta/replicate.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/adhesion.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/base.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/cylinder.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/damper.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/dcmotor.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/general.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/intvelocity.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/motor.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/muscle.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/plugin.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/position.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/actuator_attr/velocity.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/asset.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/hfield.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/material.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/material_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/material_attr/layer.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/mesh.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/model.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/asset_attr/texture.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/attach.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/camera.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite_attr/geom.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite_attr/joint.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite_attr/site.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/composite_attr/skin.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp_attr/contact.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp_attr/edge.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp_attr/elasticity.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/flexcomp_attr/pin.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/free_joint.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/geom.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/inertial.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/joint.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/light.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/plugin.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/body_attr/site.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/compiler.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/compiler_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/compiler_attr/lengthrange.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/contact.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/contact_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/contact_attr/exclude.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/contact_attr/pair.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/deformable.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/flex.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/flex_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/flex_attr/contact.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/flex_attr/edge.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/flex_attr/elasticity.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/skin.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/skin_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/deformable_attr/skin_attr/bone.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/equality.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/connect.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/equality_base.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/flex.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/flexstrain.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/flexvert.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/joint.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/tendon.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/equality_attr/weld.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/keyframe.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/keyframe_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/keyframe_attr/key.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/option.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/option_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/option_attr/flag.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/accelerometer.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/actuatorfrc.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/actuatorpos.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/actuatorvel.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/ballangvel.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/ballquat.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/base.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/base_collision.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/camprojection.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/clock.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/contact.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/distance.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/e_kinetic.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/e_potential.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/force.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/frameangacc.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/frameangvel.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framelinacc.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framelinvel.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framepos.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framequat.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framexaxis.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/frameyaxis.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/framezaxis.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/fromto.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/gyro.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/insidesite.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointactuatorfrc.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointlimitfrc.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointlimitpos.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointlimitvel.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointpos.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/jointvel.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/magnetometer.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/normal.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/plugin.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/rangefinder.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/subtreeangmom.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/subtreecom.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/subtreelinvel.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tactile.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonactuatorfrc.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonlimitfrc.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonlimitpos.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonlimitvel.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonpos.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/tendonvel.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/torque.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/touch.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/user.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/sensor_attr/velocimeter.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/size.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/statistic.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/fixed.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/fixed_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/fixed_attr/joint.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/spatial.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/spatial_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/spatial_attr/geom.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/spatial_attr/pulley.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/spatial_attr/site.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/tendon_attr/tendon_base.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/visual.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/global_.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/headlight.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/map.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/quality.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/rgba.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/mujoco_attr/visual_attr/scale.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/orientation.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/plugin.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/pose.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/position.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mjcf/xml_model.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/mojo_model.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/runtime/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/runtime/load.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/runtime/runtime_manager.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/runtime/signal_manager.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/runtime/video_recorder.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/stochas/__init__.py +0 -0
- {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers → mujoco_mojo-2.3.0/src/mujoco_mojo/templates}/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/typing.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/color.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/defaults.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/interp.py +0 -0
- {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo → mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers}/__init__.py +0 -0
- {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/routers → mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo}/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/main.py +0 -0
- {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates → mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/routers}/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/routers/monitor.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/routers/morph.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/shared.py +0 -0
- {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static → mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates}/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/error.html +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/monitor.html +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/mosaic.html +0 -0
- {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static/js → mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static}/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/chime.mp3 +0 -0
- {mujoco_mojo-2.2.2/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored → mujoco_mojo-2.3.0/src/mujoco_mojo/utils/layers/dojo/templates/static/js}/__init__.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/js/mosaic.js +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/js/toast.js +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/main.css +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/alpine.min.js +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/confetti.browser.min.js +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/iro.min.js +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/lz-string.min.js +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/plotly-3.4.0.min.js +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/dojo/templates/static/vendored/tailwind.min.js +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/layers/reloaded.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/log.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/proximity_mixin.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/statusing.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/utils/utils.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/src/mujoco_mojo/visualization.py +0 -0
- {mujoco_mojo-2.2.2 → mujoco_mojo-2.3.0}/tests/test_writer.py +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- master
|
|
6
|
+
- main
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
9
|
+
pages: write
|
|
10
|
+
id-token: write
|
|
11
|
+
jobs:
|
|
12
|
+
deploy:
|
|
13
|
+
environment:
|
|
14
|
+
name: github-pages
|
|
15
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/configure-pages@v5
|
|
19
|
+
- uses: actions/checkout@v5
|
|
20
|
+
- name: Install uv
|
|
21
|
+
uses: astral-sh/setup-uv@v5
|
|
22
|
+
with:
|
|
23
|
+
enable-cache: true
|
|
24
|
+
- name: Install Python 3.13
|
|
25
|
+
run: uv python install 3.13
|
|
26
|
+
- name: Generate API reference pages
|
|
27
|
+
run: uv run --python 3.13 --group dev python scripts/gen_ref_pages.py
|
|
28
|
+
- run: uv run --python 3.13 --group dev zensical build --clean
|
|
29
|
+
- uses: actions/upload-pages-artifact@v4
|
|
30
|
+
with:
|
|
31
|
+
path: site
|
|
32
|
+
- uses: actions/deploy-pages@v4
|
|
33
|
+
id: deployment
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: "Publish"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: ["master"] # Run tests on every push to main
|
|
6
|
+
tags: ["v*"] # Run tests AND publish on tags
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: ["master"] # Run tests on PRs
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
test:
|
|
12
|
+
name: "Test (Python ${{ matrix.python-version }})"
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
strategy:
|
|
15
|
+
matrix:
|
|
16
|
+
# Parallelize tests across your supported versions
|
|
17
|
+
python-version: ["3.12", "3.13", "3.14"]
|
|
18
|
+
|
|
19
|
+
steps:
|
|
20
|
+
- name: Checkout
|
|
21
|
+
uses: actions/checkout@v4
|
|
22
|
+
|
|
23
|
+
- name: Install uv
|
|
24
|
+
uses: astral-sh/setup-uv@v5
|
|
25
|
+
with:
|
|
26
|
+
enable-cache: true
|
|
27
|
+
|
|
28
|
+
- name: Install Python ${{ matrix.python-version }}
|
|
29
|
+
run: uv python install ${{ matrix.python-version }}
|
|
30
|
+
|
|
31
|
+
- name: Run unit tests
|
|
32
|
+
# Explicitly tells uv which python version to use for the test environment
|
|
33
|
+
run: uv run --python ${{ matrix.python-version }} --group dev pytest
|
|
34
|
+
publish:
|
|
35
|
+
name: "Build and Publish"
|
|
36
|
+
needs: [test]
|
|
37
|
+
# ONLY run this job if the push was actually a tag
|
|
38
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
39
|
+
runs-on: ubuntu-latest
|
|
40
|
+
environment:
|
|
41
|
+
name: pypi
|
|
42
|
+
permissions:
|
|
43
|
+
id-token: write # Required for PyPI Trusted Publishing
|
|
44
|
+
contents: write # Required to create GitHub Release and upload assets
|
|
45
|
+
steps:
|
|
46
|
+
- name: Checkout
|
|
47
|
+
uses: actions/checkout@v6
|
|
48
|
+
with:
|
|
49
|
+
# Fetch all history so we can see other branches
|
|
50
|
+
fetch-depth: 0
|
|
51
|
+
|
|
52
|
+
- name: Verify Tag is on Master
|
|
53
|
+
# Only perform this check if we were triggered by a tag
|
|
54
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
55
|
+
run: |
|
|
56
|
+
# Check if 'master' branch contains the current commit
|
|
57
|
+
if ! git branch -r --contains ${{ github.sha }} | grep -q "origin/master"; then
|
|
58
|
+
echo "::error::Tag ${{ github.ref_name }} was pushed on a non-master branch. Skipping workflow."
|
|
59
|
+
exit 1
|
|
60
|
+
fi
|
|
61
|
+
|
|
62
|
+
- name: Install uv
|
|
63
|
+
uses: astral-sh/setup-uv@v7
|
|
64
|
+
|
|
65
|
+
- name: Install Python 3.13
|
|
66
|
+
run: uv python install 3.13
|
|
67
|
+
|
|
68
|
+
- name: Build
|
|
69
|
+
run: uv build
|
|
70
|
+
|
|
71
|
+
- name: Publish to PyPI
|
|
72
|
+
run: uv publish --check-url https://pypi.org/simple
|
|
73
|
+
|
|
74
|
+
- name: Create GitHub Release
|
|
75
|
+
uses: softprops/action-gh-release@v2
|
|
76
|
+
with:
|
|
77
|
+
generate_release_notes: true
|
|
78
|
+
files: |
|
|
79
|
+
dist/*.whl
|
|
80
|
+
dist/*.tar.gz
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Python-generated files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[oc]
|
|
4
|
+
build/
|
|
5
|
+
dist/
|
|
6
|
+
wheels/
|
|
7
|
+
*.egg-info
|
|
8
|
+
|
|
9
|
+
# Virtual environments
|
|
10
|
+
.venv
|
|
11
|
+
|
|
12
|
+
mojo.log
|
|
13
|
+
mojo.log.*
|
|
14
|
+
|
|
15
|
+
site
|
|
16
|
+
docs/reference/
|
|
17
|
+
mojo-models
|
|
18
|
+
textures
|
|
19
|
+
|
|
20
|
+
MUJOCO_LOG.TXT
|
|
21
|
+
|
|
22
|
+
/*.mp4
|
|
23
|
+
/*.gif
|
|
24
|
+
|
|
25
|
+
# TypeScript build artifacts (node_modules is dev-only; compiled .js files ARE committed)
|
|
26
|
+
node_modules/
|
|
27
|
+
*.js.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v6.0.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: check-added-large-files
|
|
6
|
+
args: ["--maxkb=500"]
|
|
7
|
+
- repo: local
|
|
8
|
+
hooks:
|
|
9
|
+
- id: fix-smart-quotes
|
|
10
|
+
name: Replace smart quotes
|
|
11
|
+
entry: python scripts/fix_smart_quotes.py
|
|
12
|
+
language: python
|
|
13
|
+
files: ^src/
|
|
14
|
+
pass_filenames: false
|
|
15
|
+
always_run: true
|
|
16
|
+
stages: [pre-commit]
|
|
17
|
+
- repo: local
|
|
18
|
+
hooks:
|
|
19
|
+
- id: copy-docs-examples
|
|
20
|
+
name: Copy Docs Examples to Examples
|
|
21
|
+
entry: python scripts/copy_docs_examples_to_examples.py
|
|
22
|
+
language: python
|
|
23
|
+
files: ^docs/user-guides/.*\.py$
|
|
24
|
+
additional_dependencies: [ruff==0.14.14]
|
|
25
|
+
stages: [pre-commit]
|
|
26
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
27
|
+
# Ruff version.
|
|
28
|
+
rev: v0.14.14
|
|
29
|
+
hooks:
|
|
30
|
+
# Run the linter.
|
|
31
|
+
- id: ruff-check
|
|
32
|
+
args: [--fix]
|
|
33
|
+
# Run the formatter.
|
|
34
|
+
- id: ruff-format
|
|
35
|
+
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
36
|
+
# uv version.
|
|
37
|
+
rev: 0.9.27
|
|
38
|
+
hooks:
|
|
39
|
+
- id: uv-lock
|
|
40
|
+
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
41
|
+
# uv version.
|
|
42
|
+
rev: 0.9.27
|
|
43
|
+
hooks:
|
|
44
|
+
- id: uv-export
|
|
45
|
+
- repo: https://github.com/RobertCraigie/pyright-python
|
|
46
|
+
rev: v1.1.408
|
|
47
|
+
hooks:
|
|
48
|
+
- id: pyright
|
|
49
|
+
- repo: local
|
|
50
|
+
hooks:
|
|
51
|
+
- id: act-test
|
|
52
|
+
name: Run GitHub Actions locally (act)
|
|
53
|
+
entry: act -j test
|
|
54
|
+
language: system
|
|
55
|
+
stages: [pre-push]
|
|
56
|
+
pass_filenames: false
|
|
57
|
+
files: ^(src/|tests/|pyproject\.toml|uv\.lock)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.13
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"xml.fileAssociations": [
|
|
3
|
+
{
|
|
4
|
+
"pattern": "**/*.xml",
|
|
5
|
+
"systemId": "../mujoco-xml-schema-mjcf/mujoco.xsd"
|
|
6
|
+
}
|
|
7
|
+
],
|
|
8
|
+
"yaml.schemas": {
|
|
9
|
+
"https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml"
|
|
10
|
+
},
|
|
11
|
+
"yaml.customTags": [
|
|
12
|
+
"!ENV scalar",
|
|
13
|
+
"!ENV sequence",
|
|
14
|
+
"!relative scalar",
|
|
15
|
+
"tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg",
|
|
16
|
+
"tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji",
|
|
17
|
+
"tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format",
|
|
18
|
+
"tag:yaml.org,2002:python/object/apply:pymdownx.slugs.slugify mapping"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -1,64 +1,63 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mujoco-mojo
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: A complete MJCF lifecycle and trial orchestration suite for MuJoCo, powered by Pydantic v2.
|
|
5
|
-
Author-email: David Gable <dave.a.gable@gmail.com>
|
|
6
|
-
Maintainer-email: David Gable <dave.a.gable@gmail.com>
|
|
7
|
-
License: Apache-2.0
|
|
8
5
|
Project-URL: Homepage, https://github.com/Hydrowelder/mujoco-mojo
|
|
9
6
|
Project-URL: Documentation, https://hydrowelder.github.io/mujoco-mojo/
|
|
10
7
|
Project-URL: Repository, https://github.com/Hydrowelder/mujoco-mojo
|
|
11
8
|
Project-URL: Issues, https://github.com/Hydrowelder/mujoco-mojo/issues
|
|
12
9
|
Project-URL: Discussions, https://github.com/Hydrowelder/mujoco-mojo/discussions
|
|
13
|
-
|
|
10
|
+
Author-email: David Gable <dave.a.gable@gmail.com>
|
|
11
|
+
Maintainer-email: David Gable <dave.a.gable@gmail.com>
|
|
12
|
+
License: Apache-2.0
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Keywords: mjcf,monte-carlo,mujoco,orchestration,physics,pydantic,robotics,simulation
|
|
14
15
|
Classifier: Development Status :: 4 - Beta
|
|
15
16
|
Classifier: Intended Audience :: Science/Research
|
|
16
|
-
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
17
|
-
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
18
17
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.12
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.14
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
22
23
|
Requires-Python: >=3.12
|
|
23
|
-
Description-Content-Type: text/markdown
|
|
24
|
-
License-File: LICENSE
|
|
25
24
|
Requires-Dist: coacd>=1.0.7
|
|
26
25
|
Requires-Dist: fastapi>=0.134.0
|
|
27
26
|
Requires-Dist: fastparquet>=2025.12.0
|
|
27
|
+
Requires-Dist: filelock>=3.29.0
|
|
28
|
+
Requires-Dist: ipykernel>=7.2.0
|
|
28
29
|
Requires-Dist: jinja2>=3.1.6
|
|
30
|
+
Requires-Dist: joblib>=1.5.3
|
|
29
31
|
Requires-Dist: matplotlib>=3.10.8
|
|
30
32
|
Requires-Dist: mediapy>=1.2.6
|
|
31
33
|
Requires-Dist: mujoco>=3.8.0
|
|
32
34
|
Requires-Dist: numpy>=2.4.1
|
|
33
35
|
Requires-Dist: numpydantic>=1.7.0
|
|
36
|
+
Requires-Dist: optuna-dashboard>=0.20.0
|
|
37
|
+
Requires-Dist: optuna>=4.8.0
|
|
34
38
|
Requires-Dist: pandas>=3.0.0
|
|
35
39
|
Requires-Dist: pillow>=12.1.1
|
|
40
|
+
Requires-Dist: pint>=0.25.3
|
|
41
|
+
Requires-Dist: pip>=26.0.1
|
|
36
42
|
Requires-Dist: polars>=1.39.0
|
|
37
43
|
Requires-Dist: pyarrow>=23.0.1
|
|
38
44
|
Requires-Dist: pybind11-stubgen>=2.5.5
|
|
39
45
|
Requires-Dist: pydantic>=2.12.5
|
|
46
|
+
Requires-Dist: python-fcl>=0.7.0.11
|
|
40
47
|
Requires-Dist: rich>=14.3.3
|
|
41
|
-
Requires-Dist:
|
|
48
|
+
Requires-Dist: rtree>=1.4.1
|
|
42
49
|
Requires-Dist: scipy-stubs[scipy]>=1.17.0.2
|
|
43
|
-
Requires-Dist:
|
|
50
|
+
Requires-Dist: scipy>=1.17.0
|
|
44
51
|
Requires-Dist: sse-starlette>=3.3.4
|
|
52
|
+
Requires-Dist: stochas>=2.0.0
|
|
45
53
|
Requires-Dist: tabulate>=0.9.0
|
|
46
54
|
Requires-Dist: trimesh>=4.11.2
|
|
47
55
|
Requires-Dist: typer>=0.24.1
|
|
48
56
|
Requires-Dist: uvicorn>=0.41.0
|
|
49
|
-
Requires-Dist: ipykernel>=7.2.0
|
|
50
|
-
Requires-Dist: pip>=26.0.1
|
|
51
|
-
Requires-Dist: optuna>=4.8.0
|
|
52
|
-
Requires-Dist: joblib>=1.5.3
|
|
53
|
-
Requires-Dist: optuna-dashboard>=0.20.0
|
|
54
|
-
Requires-Dist: pint>=0.25.3
|
|
55
|
-
Requires-Dist: python-fcl>=0.7.0.11
|
|
56
|
-
Requires-Dist: rtree>=1.4.1
|
|
57
|
-
Requires-Dist: filelock>=3.29.0
|
|
58
57
|
Provides-Extra: reloaded
|
|
59
|
-
Requires-Dist: mjviser>=0.0.11; extra ==
|
|
60
|
-
Requires-Dist: viser>=1.0.26; extra ==
|
|
61
|
-
|
|
58
|
+
Requires-Dist: mjviser>=0.0.11; extra == 'reloaded'
|
|
59
|
+
Requires-Dist: viser>=1.0.26; extra == 'reloaded'
|
|
60
|
+
Description-Content-Type: text/markdown
|
|
62
61
|
|
|
63
62
|
<p align="center">
|
|
64
63
|
<img alt="MuJoCo Mojo" src="https://raw.githubusercontent.com/hydrowelder/mujoco-mojo/master/docs/assets/dark-hero-logo.svg" style="width: 100%">
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[ ] Add a "dependency" Path type alias (used in XML writer to copy the file local to the XML file/use resolved path, but that makes things less portable)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
**MuJoCo Mojo**[^1] was developed by David Gable to add additional analytical capability to the [MuJoCo](https://mujoco.org/){target:"_blank"} physics engine. Check out my other work on [my website](https://www.david-gable.com/){target:"_blank"}.
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
!!! info "Disclaimer & Attribution"
|
|
5
|
+
**MuJoCo Mojo** is an independently developed open-source toolbox. It is **not** affiliated with, sponsored by, or endorsed by **Google DeepMind** or the official **MuJoCo** development team.
|
|
6
|
+
|
|
7
|
+
MuJoCo® is a registered trademark of Google LLC. All MJCF schemas and MuJoCo-related terminology used within this project are for compatibility and documentation purposes only.
|
|
8
|
+
|
|
9
|
+
[^1]: In case you were wondering, the lines in the **MuJoCo Mojo** logo are right-side up and upside-down "M"s.
|
|
Binary file
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="1600"
|
|
6
|
+
height="512"
|
|
7
|
+
viewBox="0 0 423.33352 135.46653"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
inkscape:version="1.4.3 (0d15f75, 2025-12-25)"
|
|
11
|
+
sodipodi:docname="logo.svg"
|
|
12
|
+
inkscape:export-filename="dark-hero-logo.svg"
|
|
13
|
+
inkscape:export-xdpi="96"
|
|
14
|
+
inkscape:export-ydpi="96"
|
|
15
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
16
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
17
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
18
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
19
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
|
20
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
21
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
|
22
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
23
|
+
<title
|
|
24
|
+
id="title5">MuJoCo Mojo Logo</title>
|
|
25
|
+
<sodipodi:namedview
|
|
26
|
+
id="namedview1"
|
|
27
|
+
pagecolor="#ffffff"
|
|
28
|
+
bordercolor="#000000"
|
|
29
|
+
borderopacity="0.25"
|
|
30
|
+
inkscape:showpageshadow="2"
|
|
31
|
+
inkscape:pageopacity="0.0"
|
|
32
|
+
inkscape:pagecheckerboard="true"
|
|
33
|
+
inkscape:deskcolor="#d1d1d1"
|
|
34
|
+
inkscape:document-units="mm"
|
|
35
|
+
inkscape:zoom="1.1172287"
|
|
36
|
+
inkscape:cx="775.13224"
|
|
37
|
+
inkscape:cy="297.6114"
|
|
38
|
+
inkscape:window-width="3840"
|
|
39
|
+
inkscape:window-height="2050"
|
|
40
|
+
inkscape:window-x="3828"
|
|
41
|
+
inkscape:window-y="-12"
|
|
42
|
+
inkscape:window-maximized="1"
|
|
43
|
+
inkscape:current-layer="layer1"
|
|
44
|
+
showgrid="true"
|
|
45
|
+
labelstyle="default">
|
|
46
|
+
<inkscape:page
|
|
47
|
+
x="0"
|
|
48
|
+
y="0"
|
|
49
|
+
width="423.33353"
|
|
50
|
+
height="135.46654"
|
|
51
|
+
id="page2"
|
|
52
|
+
margin="0"
|
|
53
|
+
bleed="0" />
|
|
54
|
+
</sodipodi:namedview>
|
|
55
|
+
<defs
|
|
56
|
+
id="defs1">
|
|
57
|
+
<linearGradient
|
|
58
|
+
id="linearGradient33"
|
|
59
|
+
inkscape:label="Light to Cyan">
|
|
60
|
+
<stop
|
|
61
|
+
style="stop-color:#06b6d4;stop-opacity:1;"
|
|
62
|
+
offset="0.35751292"
|
|
63
|
+
id="stop10" />
|
|
64
|
+
<stop
|
|
65
|
+
style="stop-color:#e2e8f0;stop-opacity:1;"
|
|
66
|
+
offset="0.92227978"
|
|
67
|
+
id="stop12" />
|
|
68
|
+
</linearGradient>
|
|
69
|
+
<linearGradient
|
|
70
|
+
id="linearGradient33-1"
|
|
71
|
+
inkscape:label="Dark to Cyan">
|
|
72
|
+
<stop
|
|
73
|
+
style="stop-color:#06b6d4;stop-opacity:1;"
|
|
74
|
+
offset="0.35751292"
|
|
75
|
+
id="stop32" />
|
|
76
|
+
<stop
|
|
77
|
+
style="stop-color:#0f172a;stop-opacity:1;"
|
|
78
|
+
offset="0.92227978"
|
|
79
|
+
id="stop33" />
|
|
80
|
+
</linearGradient>
|
|
81
|
+
<linearGradient
|
|
82
|
+
id="swatch8"
|
|
83
|
+
inkscape:swatch="solid">
|
|
84
|
+
<stop
|
|
85
|
+
style="stop-color:#000000;stop-opacity:1;"
|
|
86
|
+
offset="0"
|
|
87
|
+
id="stop8" />
|
|
88
|
+
</linearGradient>
|
|
89
|
+
<linearGradient
|
|
90
|
+
id="swatch7"
|
|
91
|
+
inkscape:swatch="solid">
|
|
92
|
+
<stop
|
|
93
|
+
style="stop-color:#1e293b;stop-opacity:1;"
|
|
94
|
+
offset="0"
|
|
95
|
+
id="stop7" />
|
|
96
|
+
</linearGradient>
|
|
97
|
+
<linearGradient
|
|
98
|
+
id="swatch4"
|
|
99
|
+
inkscape:swatch="solid">
|
|
100
|
+
<stop
|
|
101
|
+
style="stop-color:#000000;stop-opacity:1;"
|
|
102
|
+
offset="0"
|
|
103
|
+
id="stop4" />
|
|
104
|
+
</linearGradient>
|
|
105
|
+
<linearGradient
|
|
106
|
+
id="swatch6"
|
|
107
|
+
inkscape:swatch="solid"
|
|
108
|
+
inkscape:label="slate-500">
|
|
109
|
+
<stop
|
|
110
|
+
style="stop-color:#62748e;stop-opacity:1;"
|
|
111
|
+
offset="0"
|
|
112
|
+
id="stop6" />
|
|
113
|
+
</linearGradient>
|
|
114
|
+
<linearGradient
|
|
115
|
+
id="swatch5"
|
|
116
|
+
inkscape:swatch="solid"
|
|
117
|
+
inkscape:label="cyan-500">
|
|
118
|
+
<stop
|
|
119
|
+
style="stop-color:#00b8db;stop-opacity:1;"
|
|
120
|
+
offset="0"
|
|
121
|
+
id="stop5" />
|
|
122
|
+
</linearGradient>
|
|
123
|
+
<radialGradient
|
|
124
|
+
inkscape:collect="always"
|
|
125
|
+
xlink:href="#linearGradient33"
|
|
126
|
+
id="radialGradient32"
|
|
127
|
+
cx="47"
|
|
128
|
+
cy="47"
|
|
129
|
+
fx="47"
|
|
130
|
+
fy="47"
|
|
131
|
+
r="16.316183"
|
|
132
|
+
gradientTransform="matrix(1,0,0,1.1547005,0,-7.2709252)"
|
|
133
|
+
gradientUnits="userSpaceOnUse" />
|
|
134
|
+
<radialGradient
|
|
135
|
+
inkscape:collect="always"
|
|
136
|
+
xlink:href="#linearGradient33-1"
|
|
137
|
+
id="radialGradient12"
|
|
138
|
+
gradientUnits="userSpaceOnUse"
|
|
139
|
+
gradientTransform="matrix(1,0,0,1.1547005,0,-7.2709252)"
|
|
140
|
+
cx="47"
|
|
141
|
+
cy="47"
|
|
142
|
+
fx="47"
|
|
143
|
+
fy="47"
|
|
144
|
+
r="16.316183" />
|
|
145
|
+
<rect
|
|
146
|
+
x="530.90698"
|
|
147
|
+
y="6.457725"
|
|
148
|
+
width="1143.1482"
|
|
149
|
+
height="520.78326"
|
|
150
|
+
id="rect13" />
|
|
151
|
+
</defs>
|
|
152
|
+
<metadata
|
|
153
|
+
id="metadata5">
|
|
154
|
+
<rdf:RDF>
|
|
155
|
+
<cc:Work
|
|
156
|
+
rdf:about="">
|
|
157
|
+
<dc:title>MuJoCo Mojo Logo</dc:title>
|
|
158
|
+
<dc:creator>
|
|
159
|
+
<cc:Agent>
|
|
160
|
+
<dc:title>David Gable</dc:title>
|
|
161
|
+
</cc:Agent>
|
|
162
|
+
</dc:creator>
|
|
163
|
+
</cc:Work>
|
|
164
|
+
</rdf:RDF>
|
|
165
|
+
</metadata>
|
|
166
|
+
<g
|
|
167
|
+
inkscape:groupmode="layer"
|
|
168
|
+
id="layer1"
|
|
169
|
+
inkscape:label="Layer 1">
|
|
170
|
+
<rect
|
|
171
|
+
style="display:inline;fill:#0f172a;fill-opacity:0;stroke:#0f172a;stroke-width:0;stroke-dasharray:none"
|
|
172
|
+
id="rect12"
|
|
173
|
+
width="135.46672"
|
|
174
|
+
height="135.46672"
|
|
175
|
+
x="0"
|
|
176
|
+
y="-9.5290525e-05"
|
|
177
|
+
inkscape:label="LOGO-TRANS-BG"
|
|
178
|
+
sodipodi:insensitive="true"
|
|
179
|
+
inkscape:export-filename="dark-logo.svg"
|
|
180
|
+
inkscape:export-xdpi="96"
|
|
181
|
+
inkscape:export-ydpi="96" />
|
|
182
|
+
<g
|
|
183
|
+
id="g8"
|
|
184
|
+
transform="translate(-28.906597,-33.400236)"
|
|
185
|
+
inkscape:label="DARK-LOGO"
|
|
186
|
+
style="display:inline"
|
|
187
|
+
sodipodi:insensitive="true"
|
|
188
|
+
inkscape:export-filename="dark-logo.svg"
|
|
189
|
+
inkscape:export-xdpi="96"
|
|
190
|
+
inkscape:export-ydpi="96">
|
|
191
|
+
<path
|
|
192
|
+
sodipodi:type="star"
|
|
193
|
+
style="display:inline;fill:url(#radialGradient12);stroke:#0f172a;stroke-width:2.2518;stroke-dasharray:none;stroke-opacity:1"
|
|
194
|
+
id="path6"
|
|
195
|
+
inkscape:flatsided="true"
|
|
196
|
+
sodipodi:sides="6"
|
|
197
|
+
sodipodi:cx="47"
|
|
198
|
+
sodipodi:cy="47"
|
|
199
|
+
sodipodi:r1="18.027756"
|
|
200
|
+
sodipodi:r2="15.612495"
|
|
201
|
+
sodipodi:arg1="0.52359878"
|
|
202
|
+
sodipodi:arg2="1.0471976"
|
|
203
|
+
inkscape:rounded="0"
|
|
204
|
+
inkscape:randomized="0"
|
|
205
|
+
d="M 62.612494,56.013878 47,65.027756 31.387506,56.013878 l 0,-18.027756 L 47,28.972244 62.612494,37.986122 Z"
|
|
206
|
+
transform="matrix(3.5044454,0,0,3.5044454,-68.068977,-63.575426)"
|
|
207
|
+
inkscape:label="hex"
|
|
208
|
+
sodipodi:insensitive="true" />
|
|
209
|
+
<path
|
|
210
|
+
style="display:inline;fill:#334155;fill-opacity:1;stroke:#0f172a;stroke-width:7.89132;stroke-dasharray:none"
|
|
211
|
+
d="M 78.516104,148.51653 105.87268,37.956293 M 133.22924,148.51653 105.87268,37.956293 M 133.22924,148.51653 160.58579,69.544935 M 78.516104,148.51653 51.15954,69.544935"
|
|
212
|
+
id="path7"
|
|
213
|
+
sodipodi:nodetypes="cccccccc"
|
|
214
|
+
inkscape:label="w_path"
|
|
215
|
+
transform="translate(-9.2327158,-6.8948478e-5)"
|
|
216
|
+
sodipodi:insensitive="true" />
|
|
217
|
+
<path
|
|
218
|
+
style="display:inline;fill:#e2e8f0;stroke:#0f172a;stroke-width:7.89132;stroke-dasharray:none"
|
|
219
|
+
d="M 78.516104,53.750612 105.87268,164.31087 M 133.22924,53.750614 105.87268,164.31087 M 133.22924,53.750614 160.58579,132.72222 M 78.516104,53.750612 51.159538,132.72222"
|
|
220
|
+
id="path8"
|
|
221
|
+
sodipodi:nodetypes="cccccccc"
|
|
222
|
+
inkscape:label="m_path"
|
|
223
|
+
transform="translate(-9.2327158,-6.8948478e-5)"
|
|
224
|
+
sodipodi:insensitive="true" />
|
|
225
|
+
</g>
|
|
226
|
+
<g
|
|
227
|
+
id="g5"
|
|
228
|
+
transform="translate(-28.906595,-33.400266)"
|
|
229
|
+
inkscape:label="LIGHT-LOGO"
|
|
230
|
+
style="display:none"
|
|
231
|
+
sodipodi:insensitive="true">
|
|
232
|
+
<path
|
|
233
|
+
sodipodi:type="star"
|
|
234
|
+
style="display:inline;fill:url(#radialGradient32);fill-opacity:1;stroke:#e2e8f0;stroke-width:2.2518;stroke-dasharray:none;stroke-opacity:1"
|
|
235
|
+
id="path10"
|
|
236
|
+
inkscape:flatsided="true"
|
|
237
|
+
sodipodi:sides="6"
|
|
238
|
+
sodipodi:cx="47"
|
|
239
|
+
sodipodi:cy="47"
|
|
240
|
+
sodipodi:r1="18.027756"
|
|
241
|
+
sodipodi:r2="15.612495"
|
|
242
|
+
sodipodi:arg1="0.52359878"
|
|
243
|
+
sodipodi:arg2="1.0471976"
|
|
244
|
+
inkscape:rounded="0"
|
|
245
|
+
inkscape:randomized="0"
|
|
246
|
+
d="M 62.612494,56.013878 47,65.027756 31.387506,56.013878 l 0,-18.027756 L 47,28.972244 62.612494,37.986122 Z"
|
|
247
|
+
transform="matrix(3.5044454,0,0,3.5044454,-68.068979,-63.575427)"
|
|
248
|
+
inkscape:label="hex"
|
|
249
|
+
sodipodi:insensitive="true" />
|
|
250
|
+
<path
|
|
251
|
+
style="display:inline;fill:#334155;fill-opacity:1;stroke:#e2e8f0;stroke-width:7.89132;stroke-dasharray:none"
|
|
252
|
+
d="M 78.516104,148.51653 105.87268,37.956293 M 133.22924,148.51653 105.87268,37.956293 M 133.22924,148.51653 160.58579,69.544935 M 78.516104,148.51653 51.15954,69.544935"
|
|
253
|
+
id="path29"
|
|
254
|
+
sodipodi:nodetypes="cccccccc"
|
|
255
|
+
inkscape:label="w_path"
|
|
256
|
+
transform="translate(-9.2327158,-6.8948478e-5)"
|
|
257
|
+
sodipodi:insensitive="true" />
|
|
258
|
+
<path
|
|
259
|
+
style="display:inline;fill:#e2e8f0;stroke:#e2e8f0;stroke-width:7.89132;stroke-dasharray:none"
|
|
260
|
+
d="M 78.516104,53.750612 105.87268,164.31087 M 133.22924,53.750614 105.87268,164.31087 M 133.22924,53.750614 160.58579,132.72222 M 78.516104,53.750612 51.159538,132.72222"
|
|
261
|
+
id="path30"
|
|
262
|
+
sodipodi:nodetypes="cccccccc"
|
|
263
|
+
inkscape:label="m_path"
|
|
264
|
+
transform="translate(-9.2327158,-6.8948478e-5)"
|
|
265
|
+
sodipodi:insensitive="true" />
|
|
266
|
+
</g>
|
|
267
|
+
<g
|
|
268
|
+
id="g6"
|
|
269
|
+
transform="translate(-138.61709,-29.665472)"
|
|
270
|
+
inkscape:label="TEXT"
|
|
271
|
+
style="display:inline"
|
|
272
|
+
sodipodi:insensitive="true">
|
|
273
|
+
<path
|
|
274
|
+
style="font-weight:bold;font-size:256px;line-height:1;font-family:'Segoe UI';-inkscape-font-specification:'Segoe UI Bold';letter-spacing:0px;white-space:pre;fill:#06b6d4;stroke:#06b6d4;stroke-width:15.1181"
|
|
275
|
+
d="m 755.65625,205.05016 h -39.875 V 97.800163 q 0,-17.375 1.5,-38.375 h -1 q -3.125,16.5 -5.625,23.75 l -42,121.874997 h -33 l -42.75,-120.624997 q -1.75,-4.875 -5.625,-25 h -1.125 q 1.625,26.5 1.625,46.499997 v 99.125 h -36.375 V 25.800163 h 59.125 l 36.625,106.249997 q 4.375,12.75 6.375,25.625 h 0.75 q 3.375,-14.875 7.125,-25.875 l 36.625,-105.999997 h 57.625 z m 186.875,-77.625 q 0,80.75 -75.25,80.75 -73,0 -73,-78.875 V 25.800163 h 40.5 V 129.80016 q 0,43.5 34,43.5 33.375,0 33.375,-42 V 25.800163 h 40.375 z m 109.12505,6.5 q 0,36 -16.75,55.125 -16.6251,19.125 -48.25005,19.125 -14.125,0 -26.125,-4.875 v -37.875 q 10.375,7.875 23.25,7.875 27.62495,0 27.62495,-41 V 25.800163 h 40.2501 z m 115,74.25 q -38.5,0 -62.75,-25 -24.25,-25.125 -24.25,-65.375 0,-42.499997 24.625,-68.749997 24.625,-26.25 65.25,-26.25 38.375,0 62,25.125 23.75,25.125 23.75,66.249997 0,42.25 -24.625,68.125 -24.5,25.875 -64,25.875 z m 1.75,-150.624997 q -21.25,0 -33.75,16 -12.5,15.875 -12.5,42.124997 0,26.625 12.5,42.125 12.5,15.5 32.75,15.5 20.875,0 33.125,-15 12.25,-15.125 12.25,-41.875 0,-27.874997 -11.875,-43.374997 -11.875,-15.5 -32.5,-15.5 z m 245.125,141.124997 q -19.625,9.5 -51.25,9.5 -41.25,0 -64.875,-24.25 -23.625,-24.25 -23.625,-64.625 0,-42.999997 26.5,-69.749997 26.625,-26.75 69,-26.75 26.25,0 44.25,6.625 v 38.875 q -18,-10.75 -41,-10.75 -25.25,0 -40.75,15.875 -15.5,15.875 -15.5,42.999997 0,26 14.625,41.5 14.625,15.375 39.375,15.375 23.625,0 43.25,-11.5 z m 103.875,9.5 q -38.5,0 -62.75,-25 -24.25,-25.125 -24.25,-65.375 0,-42.499997 24.625,-68.749997 24.625,-26.25 65.25,-26.25 38.375,0 62,25.125 23.75,25.125 23.75,66.249997 0,42.25 -24.625,68.125 -24.5,25.875 -64,25.875 z m 1.75,-150.624997 q -21.25,0 -33.75,16 -12.5,15.875 -12.5,42.124997 0,26.625 12.5,42.125 12.5,15.5 32.75,15.5 20.875,0 33.125,-15 12.25,-15.125 12.25,-41.875 0,-27.874997 -11.875,-43.374997 -11.875,-15.5 -32.5,-15.5 z M 755.65625,461.05016 h -39.875 v -107.25 q 0,-17.375 1.5,-38.375 h -1 q -3.125,16.5 -5.625,23.75 l -42,121.875 h -33 l -42.75,-120.625 q -1.75,-4.875 -5.625,-25 h -1.125 q 1.625,26.5 1.625,46.5 v 99.125 h -36.375 v -179.25 h 59.125 l 36.625,106.25 q 4.375,12.75 6.375,25.625 h 0.75 q 3.375,-14.875 7.125,-25.875 l 36.625,-106 h 57.625 z m 116.5,3.125 q -38.5,0 -62.75,-25 -24.25,-25.125 -24.25,-65.375 0,-42.5 24.625,-68.75 24.625,-26.25 65.25,-26.25 38.375,0 62,25.125 23.75,25.125 23.75,66.25 0,42.25 -24.625,68.125 -24.5,25.875 -64,25.875 z m 1.75,-150.625 q -21.25,0 -33.75,16 -12.5,15.875 -12.5,42.125 0,26.625 12.5,42.125 12.5,15.5 32.75,15.5 20.875,0 33.125,-15 12.25,-15.125 12.25,-41.875 0,-27.875 -11.875,-43.375 -11.875,-15.5 -32.5,-15.5 z m 188.87505,76.375 q 0,36 -16.75,55.125 -16.625,19.125 -48.25005,19.125 -14.125,0 -26.125,-4.875 v -37.875 q 10.375,7.875 23.25,7.875 27.62495,0 27.62495,-41 v -106.5 h 40.2501 z m 115,74.25 q -38.5,0 -62.75,-25 -24.25,-25.125 -24.25,-65.375 0,-42.5 24.625,-68.75 24.625,-26.25 65.25,-26.25 38.375,0 62,25.125 23.75,25.125 23.75,66.25 0,42.25 -24.625,68.125 -24.5,25.875 -64,25.875 z m 1.75,-150.625 q -21.25,0 -33.75,16 -12.5,15.875 -12.5,42.125 0,26.625 12.5,42.125 12.5,15.5 32.75,15.5 20.875,0 33.125,-15 12.25,-15.125 12.25,-41.875 0,-27.875 -11.875,-43.375 -11.875,-15.5 -32.5,-15.5 z"
|
|
276
|
+
id="text1"
|
|
277
|
+
inkscape:label="text_path"
|
|
278
|
+
transform="matrix(0.26458345,0,0,0.26458345,128.73718,32.975931)"
|
|
279
|
+
aria-label="MUJOCO MOJO " />
|
|
280
|
+
<text
|
|
281
|
+
xml:space="preserve"
|
|
282
|
+
transform="matrix(0.26458345,0,0,0.26458345,128.73718,32.975931)"
|
|
283
|
+
id="text13"
|
|
284
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:128px;line-height:1;font-family:'Segoe UI';-inkscape-font-specification:'Segoe UI Bold';letter-spacing:0.1px;writing-mode:lr-tb;direction:ltr;white-space:pre;shape-inside:url(#rect13);display:none;fill:#06b6d4;stroke:#06b6d4;stroke-width:15.1181"
|
|
285
|
+
inkscape:label="text_original"
|
|
286
|
+
sodipodi:insensitive="true"><tspan
|
|
287
|
+
x="530.90625"
|
|
288
|
+
y="205.05016"
|
|
289
|
+
id="tspan2"><tspan
|
|
290
|
+
style="font-size:256px;letter-spacing:0px"
|
|
291
|
+
id="tspan1">MUJOCO
|
|
292
|
+
</tspan></tspan><tspan
|
|
293
|
+
x="530.90625"
|
|
294
|
+
y="461.05016"
|
|
295
|
+
id="tspan5"><tspan
|
|
296
|
+
style="font-size:256px;letter-spacing:0px"
|
|
297
|
+
id="tspan3">MOJO</tspan><tspan
|
|
298
|
+
dx="-0.1"
|
|
299
|
+
id="tspan4">
|
|
300
|
+
</tspan></tspan></text>
|
|
301
|
+
</g>
|
|
302
|
+
</g>
|
|
303
|
+
</svg>
|