openscvx 0.5.1.dev2__tar.gz → 0.5.2__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.
Files changed (392) hide show
  1. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/workflows/_docs.yml +11 -3
  2. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.gitignore +13 -2
  3. openscvx-0.5.2/.gitmodules +3 -0
  4. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/CONTRIBUTING.md +7 -2
  5. {openscvx-0.5.1.dev2/openscvx.egg-info → openscvx-0.5.2}/PKG-INFO +28 -16
  6. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/README.md +22 -7
  7. openscvx-0.5.2/docs/assets/viser-client/index.html +20 -0
  8. openscvx-0.5.2/docs/assets/viser-recordings/drone_racing.viser +0 -0
  9. openscvx-0.5.2/docs/assets/viser-recordings/franka_fr3v2_pick_place.viser +0 -0
  10. openscvx-0.5.2/docs/index.md +38 -0
  11. openscvx-0.5.2/docs/versions.json +7 -0
  12. openscvx-0.5.2/examples/_viser_embed_export.py +174 -0
  13. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/abstract/brachistochrone.py +13 -4
  14. openscvx-0.5.2/examples/abstract/hypersensitive.py +121 -0
  15. openscvx-0.5.2/examples/animations/franka_fr3v2_pick_place.py +289 -0
  16. openscvx-0.5.2/examples/arm/franka_fr3v2_pick_place.py +912 -0
  17. openscvx-0.5.2/examples/arm/franka_fr3v2_viewplanning.py +541 -0
  18. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/car/dubins_car_waypoint_stl.py +11 -2
  19. openscvx-0.5.2/examples/mjx/cartpole_mjx.py +281 -0
  20. openscvx-0.5.2/examples/mjx/double_cartpole_mjx.py +682 -0
  21. openscvx-0.5.2/examples/mjx/skydio_x2_mjx.py +280 -0
  22. openscvx-0.5.2/examples/mjx/triple_cartpole_3d_mjx.py +620 -0
  23. openscvx-0.5.2/examples/mjx/triple_cartpole_game.py +1046 -0
  24. openscvx-0.5.2/examples/mjx/triple_cartpole_mjx.py +488 -0
  25. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/plotting_viser.py +32 -6
  26. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/rocket/6DoF_pdg.py +58 -46
  27. openscvx-0.5.2/examples/spacecraft/let_transfer.py +1131 -0
  28. openscvx-0.5.2/figures/openscvx_logo_square.png +0 -0
  29. openscvx-0.5.2/material/overrides/assets/stylesheets/custom.css +465 -0
  30. openscvx-0.5.2/material/overrides/assets/stylesheets/home-dropin.css +231 -0
  31. openscvx-0.5.2/material/overrides/assets/stylesheets/home-hero.css +930 -0
  32. openscvx-0.5.2/material/overrides/assets/stylesheets/home-viser.css +138 -0
  33. openscvx-0.5.2/material/overrides/home.html +21 -0
  34. openscvx-0.5.2/material/overrides/main.html +11 -0
  35. openscvx-0.5.2/material/overrides/partials/home-diagram.html +71 -0
  36. openscvx-0.5.2/material/overrides/partials/home-dropin-banner.html +41 -0
  37. openscvx-0.5.2/material/overrides/partials/home-hero.html +25 -0
  38. openscvx-0.5.2/material/overrides/partials/home-pipeline.html +90 -0
  39. openscvx-0.5.2/material/overrides/partials/home-viser-strip.html +72 -0
  40. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/mkdocs.yml +18 -9
  41. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/_version.py +3 -3
  42. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/algorithms/penalized_trust_region.py +32 -3
  43. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/discretization/base.py +11 -1
  44. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/discretization/discretize_linearize.py +0 -4
  45. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/expert/validation.py +34 -9
  46. openscvx-0.5.2/openscvx/integrations/__init__.py +62 -0
  47. openscvx-0.5.2/openscvx/integrations/menagerie.py +198 -0
  48. openscvx-0.5.2/openscvx/integrations/mjx.py +323 -0
  49. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/plotting/viser/__init__.py +1 -1
  50. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/plotting/viser/server.py +2 -2
  51. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/hashing.py +16 -3
  52. {openscvx-0.5.1.dev2 → openscvx-0.5.2/openscvx.egg-info}/PKG-INFO +28 -16
  53. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx.egg-info/SOURCES.txt +32 -36
  54. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx.egg-info/requires.txt +4 -7
  55. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/pyproject.toml +7 -9
  56. openscvx-0.5.2/scripts/gen_example_pages.py +239 -0
  57. openscvx-0.5.2/scripts/gen_ref_pages.py +187 -0
  58. openscvx-0.5.2/scripts/mkdocs_copy_viser_client_hook.py +52 -0
  59. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/expr/test_gmsr.py +30 -20
  60. openscvx-0.5.2/tests/integrations/test_mjx.py +366 -0
  61. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_stl.py +1 -1
  62. openscvx-0.5.2/tests/symbolic/parser/__init__.py +0 -0
  63. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_brachistochrone.py +5 -0
  64. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_discretization.py +10 -0
  65. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_examples.py +22 -1
  66. openscvx-0.5.1.dev2/docs/getting-started.md +0 -239
  67. openscvx-0.5.1.dev2/docs/index.md +0 -9
  68. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/1-background.avif +0 -0
  69. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/1-background@1x.avif +0 -0
  70. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/1-background@2x.avif +0 -0
  71. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/1-background@3x.avif +0 -0
  72. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/1-background@4x.avif +0 -0
  73. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/2-mars.avif +0 -0
  74. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/2-mars@1x.avif +0 -0
  75. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/2-mars@2x.avif +0 -0
  76. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/2-mars@3x.avif +0 -0
  77. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/2-mars@4x.avif +0 -0
  78. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/3-moon.avif +0 -0
  79. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/3-moon@1x.avif +0 -0
  80. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/3-moon@2x.avif +0 -0
  81. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/3-moon@3x.avif +0 -0
  82. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/3-moon@4x.avif +0 -0
  83. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/4-sat1.avif +0 -0
  84. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/4-sat1@1x.avif +0 -0
  85. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/4-sat1@2x.avif +0 -0
  86. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/4-sat1@3x.avif +0 -0
  87. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/4-sat1@4x.avif +0 -0
  88. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/5-space.avif +0 -0
  89. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/5-space@1x.avif +0 -0
  90. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/5-space@2x.avif +0 -0
  91. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/5-space@3x.avif +0 -0
  92. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/5-space@4x.avif +0 -0
  93. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/6-earth.avif +0 -0
  94. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/6-earth@1x.avif +0 -0
  95. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/6-earth@2x.avif +0 -0
  96. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/6-earth@3x.avif +0 -0
  97. openscvx-0.5.1.dev2/material/overrides/assets/images/layers/6-earth@4x.avif +0 -0
  98. openscvx-0.5.1.dev2/material/overrides/assets/javascripts/parallax.js +0 -54
  99. openscvx-0.5.1.dev2/material/overrides/assets/logo.svg +0 -1
  100. openscvx-0.5.1.dev2/material/overrides/assets/stylesheets/custom.css +0 -135
  101. openscvx-0.5.1.dev2/material/overrides/assets/stylesheets/parallax.css +0 -216
  102. openscvx-0.5.1.dev2/material/overrides/home.html +0 -26
  103. openscvx-0.5.1.dev2/material/overrides/main.html +0 -8
  104. openscvx-0.5.1.dev2/material/overrides/partials/parallax/hero.html +0 -46
  105. openscvx-0.5.1.dev2/material/overrides/partials/parallax.html +0 -7
  106. openscvx-0.5.1.dev2/scripts/gen_example_pages.py +0 -103
  107. openscvx-0.5.1.dev2/scripts/gen_ref_pages.py +0 -41
  108. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/assets/logo.svg +0 -0
  109. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/release-drafter.yml +0 -0
  110. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/workflows/branch-name.yml +0 -0
  111. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/workflows/docs.yml +0 -0
  112. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/workflows/lint.yml +0 -0
  113. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/workflows/nightly.yml +0 -0
  114. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/workflows/release-drafter.yml +0 -0
  115. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/workflows/release.yml +0 -0
  116. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/workflows/tests-integration.yml +0 -0
  117. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/.github/workflows/tests-unit.yml +0 -0
  118. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/LICENSE +0 -0
  119. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/Foundations/constraint_reformulation.md +0 -0
  120. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/Foundations/control_parameterization.md +0 -0
  121. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/Foundations/discretization.md +0 -0
  122. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/Foundations/ocp.md +0 -0
  123. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/Foundations/scvx.md +0 -0
  124. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/Foundations/time_dilation.md +0 -0
  125. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UnderTheHood/lowering_architecture.md +0 -0
  126. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UnderTheHood/vectorization_and_vmapping.md +0 -0
  127. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UsersGuide/00_introduction.md +0 -0
  128. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UsersGuide/01_hello_world_brachistochrone.md +0 -0
  129. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UsersGuide/02_drone_racing_constraints.md +0 -0
  130. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UsersGuide/03_obstacle_avoidance_vmap.md +0 -0
  131. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UsersGuide/04_viewpoint_constraints.md +0 -0
  132. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UsersGuide/05_visualization.md +0 -0
  133. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UsersGuide/06_logic.md +0 -0
  134. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UsersGuide/07_lie.md +0 -0
  135. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/UsersGuide/08_mpcc.md +0 -0
  136. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/assets/favicon.png +0 -0
  137. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/assets/images/ct-scvx_dark.png +0 -0
  138. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/assets/images/ct-scvx_light.png +0 -0
  139. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/assets/images/ctcs_dark.png +0 -0
  140. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/assets/images/ctcs_light.png +0 -0
  141. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/assets/images/problem_class_dark.png +0 -0
  142. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/assets/images/problem_class_light.png +0 -0
  143. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/assets/logo.svg +0 -0
  144. {openscvx-0.5.1.dev2/figures → openscvx-0.5.2/docs/assets}/openscvx_logo_square.png +0 -0
  145. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/citation.md +0 -0
  146. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/examples.md +0 -0
  147. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/docs/javascripts/mathjax.js +0 -0
  148. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/abstract/impulsive.py +0 -0
  149. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/abstract/stl_integer_variable.py +0 -0
  150. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/abstract/stl_or.py +0 -0
  151. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/animations/7_dof_arm.py +0 -0
  152. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/animations/_camera.py +0 -0
  153. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/animations/_render.py +0 -0
  154. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/animations/_sensor_view.py +0 -0
  155. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/animations/dr_vp_polytope.py +0 -0
  156. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/animations/logo.py +0 -0
  157. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/animations/obstacle_avoidance_vmap.py +0 -0
  158. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/arm/3_dof_arm.py +0 -0
  159. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/arm/7_dof_arm.py +0 -0
  160. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/arm/7_dof_arm_collision.py +0 -0
  161. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/arm/7_dof_arm_vp.py +0 -0
  162. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/car/dubins_car.py +0 -0
  163. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/car/dubins_car_disjoint.py +0 -0
  164. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/car/dubins_car_obstacle_conditional.py +0 -0
  165. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/car/dubins_car_obstacle_stl.py +0 -0
  166. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/car/dubins_car_stl_or.py +0 -0
  167. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/cinema_vp.py +0 -0
  168. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/dr_double_integrator.py +0 -0
  169. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/dr_vp.py +0 -0
  170. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/dr_vp_nodal.py +0 -0
  171. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/dr_vp_polytope.py +0 -0
  172. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/drone_racing.py +0 -0
  173. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/logo.py +0 -0
  174. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/logo_utils/acl_logo.svg +0 -0
  175. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/logo_utils/svg_path_utils.py +0 -0
  176. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/obstacle_avoidance.py +0 -0
  177. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/obstacle_avoidance_nodal.py +0 -0
  178. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/drone/obstacle_avoidance_vmap.py +0 -0
  179. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/mpc/double_integrator_discrete.py +0 -0
  180. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/mpc/double_integrator_drone_racing.py +0 -0
  181. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/mpc/dubins_car_circle_analytical.py +0 -0
  182. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/mpc/dubins_car_circle_discrete.py +0 -0
  183. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/mpc/realtime_double_integrator_drone_racing.py +0 -0
  184. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/plotting.py +0 -0
  185. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/3DoF_pdg_realtime.py +0 -0
  186. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/6DoF_pdg_realtime.py +0 -0
  187. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/base_problems/3DoF_pdg_realtime_base.py +0 -0
  188. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/base_problems/6DoF_pdg_realtime_base.py +0 -0
  189. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/base_problems/cinema_vp_realtime_base.py +0 -0
  190. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/base_problems/drone_racing_realtime_base.py +0 -0
  191. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/base_problems/dubins_car_realtime_base.py +0 -0
  192. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/base_problems/obstacle_avoidance_realtime_base.py +0 -0
  193. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/cinema_vp_realtime.py +0 -0
  194. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/drone_racing_realtime.py +0 -0
  195. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/dubins_car_realtime.py +0 -0
  196. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/realtime/obstacle_avoidance_realtime.py +0 -0
  197. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/rocket/3DoF_pdg.py +0 -0
  198. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/spacecraft/halo_orbit.py +0 -0
  199. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/spacecraft/hohmann_transfer.py +0 -0
  200. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/examples/spacecraft/proxops_cw.py +0 -0
  201. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/figures/ctlos_cine.gif +0 -0
  202. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/figures/ctlos_dr.gif +0 -0
  203. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/figures/dtlos_cine.gif +0 -0
  204. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/figures/dtlos_dr.gif +0 -0
  205. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/figures/openscvx_logo.svg +0 -0
  206. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/figures/oscvx_structure_full_dark.svg +0 -0
  207. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/figures/video_preview.png +0 -0
  208. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/material/__init__.py +0 -0
  209. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/__init__.py +0 -0
  210. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/__main__.py +0 -0
  211. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/algorithms/__init__.py +0 -0
  212. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/algorithms/augmented_lagrangian.py +0 -0
  213. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/algorithms/base.py +0 -0
  214. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/algorithms/constant_proximal_weight.py +0 -0
  215. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/algorithms/optimization_results.py +0 -0
  216. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/algorithms/ramp_proximal_weight.py +0 -0
  217. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/algorithms/weights.py +0 -0
  218. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/config.py +0 -0
  219. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/discretization/__init__.py +0 -0
  220. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/discretization/linearize_discretize.py +0 -0
  221. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/discretization/linearize_discretize_sparse.py +0 -0
  222. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/discretization/sparse_utils/__init__.py +0 -0
  223. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/discretization/sparse_utils/bcoo_helpers.py +0 -0
  224. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/discretization/sparse_utils/sparse_jacobian.py +0 -0
  225. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/expert/__init__.py +0 -0
  226. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/expert/byof.py +0 -0
  227. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/expert/lowering.py +0 -0
  228. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/init/__init__.py +0 -0
  229. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/init/interpolation.py +0 -0
  230. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/init/inverse_kinematics.py +0 -0
  231. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/integrators/__init__.py +0 -0
  232. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/integrators/diffrax.py +0 -0
  233. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/integrators/runge_kutta.py +0 -0
  234. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/loader.py +0 -0
  235. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/lowered/__init__.py +0 -0
  236. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/lowered/cvxpy_constraints.py +0 -0
  237. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/lowered/cvxpy_variables.py +0 -0
  238. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/lowered/dynamics.py +0 -0
  239. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/lowered/jax_constraints.py +0 -0
  240. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/lowered/parameters.py +0 -0
  241. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/lowered/problem.py +0 -0
  242. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/lowered/unified.py +0 -0
  243. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/plotting/__init__.py +0 -0
  244. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/plotting/plotting.py +0 -0
  245. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/plotting/scp_iteration.py +0 -0
  246. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/plotting/viser/animated.py +0 -0
  247. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/plotting/viser/orbits.py +0 -0
  248. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/plotting/viser/plotly_integration.py +0 -0
  249. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/plotting/viser/primitives.py +0 -0
  250. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/plotting/viser/scp.py +0 -0
  251. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/problem.py +0 -0
  252. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/propagation/__init__.py +0 -0
  253. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/propagation/post_processing.py +0 -0
  254. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/propagation/propagation.py +0 -0
  255. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/solvers/__init__.py +0 -0
  256. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/solvers/base.py +0 -0
  257. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/solvers/ptr_solver.py +0 -0
  258. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/__init__.py +0 -0
  259. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/augmentation.py +0 -0
  260. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/builder.py +0 -0
  261. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/constraint_set.py +0 -0
  262. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/__init__.py +0 -0
  263. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/arithmetic.py +0 -0
  264. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/array.py +0 -0
  265. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/constraint.py +0 -0
  266. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/control.py +0 -0
  267. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/expr.py +0 -0
  268. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/lie/__init__.py +0 -0
  269. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/lie/adjoint.py +0 -0
  270. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/lie/se3.py +0 -0
  271. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/lie/so3.py +0 -0
  272. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/linalg.py +0 -0
  273. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/logic.py +0 -0
  274. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/math.py +0 -0
  275. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/parameter.py +0 -0
  276. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/spatial.py +0 -0
  277. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/state.py +0 -0
  278. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/stl.py +0 -0
  279. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/stljax.py +0 -0
  280. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/time.py +0 -0
  281. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/variable.py +0 -0
  282. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/expr/vmap.py +0 -0
  283. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lower.py +0 -0
  284. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/__init__.py +0 -0
  285. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/__init__.py +0 -0
  286. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/_lowerer.py +0 -0
  287. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/_registry.py +0 -0
  288. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/arithmetic.py +0 -0
  289. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/array.py +0 -0
  290. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/constraint.py +0 -0
  291. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/control.py +0 -0
  292. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/expr.py +0 -0
  293. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/linalg.py +0 -0
  294. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/logic.py +0 -0
  295. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/math.py +0 -0
  296. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/cvxpy/state.py +0 -0
  297. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/__init__.py +0 -0
  298. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/_lowerer.py +0 -0
  299. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/_registry.py +0 -0
  300. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/arithmetic.py +0 -0
  301. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/array.py +0 -0
  302. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/constraint.py +0 -0
  303. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/control.py +0 -0
  304. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/expr.py +0 -0
  305. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/lie.py +0 -0
  306. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/linalg.py +0 -0
  307. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/logic.py +0 -0
  308. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/math.py +0 -0
  309. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/spatial.py +0 -0
  310. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/state.py +0 -0
  311. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/stl.py +0 -0
  312. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/stljax.py +0 -0
  313. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/lowerers/jax/vmap.py +0 -0
  314. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/__init__.py +0 -0
  315. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/_registry.py +0 -0
  316. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/array.py +0 -0
  317. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/constraint.py +0 -0
  318. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/lie.py +0 -0
  319. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/linalg.py +0 -0
  320. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/logic.py +0 -0
  321. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/math.py +0 -0
  322. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/parser.py +0 -0
  323. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/spatial.py +0 -0
  324. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/stl.py +0 -0
  325. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/stljax.py +0 -0
  326. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/parser/tokenizer.py +0 -0
  327. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/preprocessing.py +0 -0
  328. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/problem.py +0 -0
  329. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/sparsity.py +0 -0
  330. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/symbolic/unified.py +0 -0
  331. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/utils/__init__.py +0 -0
  332. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/utils/cache.py +0 -0
  333. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/utils/caching.py +0 -0
  334. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/utils/printing.py +0 -0
  335. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/utils/profiling.py +0 -0
  336. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx/utils/utils.py +0 -0
  337. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx.egg-info/dependency_links.txt +0 -0
  338. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx.egg-info/entry_points.txt +0 -0
  339. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/openscvx.egg-info/top_level.txt +0 -0
  340. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/setup.cfg +0 -0
  341. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/__init__.py +0 -0
  342. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/brachistochrone_analytical.py +0 -0
  343. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/expr/__init__.py +0 -0
  344. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/fixtures/brachistochrone.json +0 -0
  345. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/fixtures/brachistochrone.yaml +0 -0
  346. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/hohmann_analytical.py +0 -0
  347. {openscvx-0.5.1.dev2/tests/symbolic → openscvx-0.5.2/tests/integrations}/__init__.py +0 -0
  348. {openscvx-0.5.1.dev2/tests/symbolic/expr → openscvx-0.5.2/tests/symbolic}/__init__.py +0 -0
  349. {openscvx-0.5.1.dev2/tests/symbolic/parser → openscvx-0.5.2/tests/symbolic/expr}/__init__.py +0 -0
  350. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_arithmetic.py +0 -0
  351. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_array.py +0 -0
  352. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_constraint.py +0 -0
  353. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_expr.py +0 -0
  354. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_lie.py +0 -0
  355. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_linalg.py +0 -0
  356. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_logic.py +0 -0
  357. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_math.py +0 -0
  358. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_node_reference.py +0 -0
  359. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_parameters.py +0 -0
  360. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_scaling.py +0 -0
  361. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_spatial.py +0 -0
  362. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_variable.py +0 -0
  363. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/expr/test_vmap.py +0 -0
  364. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_array.py +0 -0
  365. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_constraint.py +0 -0
  366. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_lie.py +0 -0
  367. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_linalg.py +0 -0
  368. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_load.py +0 -0
  369. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_logic.py +0 -0
  370. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_math.py +0 -0
  371. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_parser.py +0 -0
  372. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_spatial.py +0 -0
  373. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_stl.py +0 -0
  374. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_tokenizer.py +0 -0
  375. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/parser/test_vmap.py +0 -0
  376. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/test_augmentation.py +0 -0
  377. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/test_hashing.py +0 -0
  378. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/test_lower_cvxpy.py +0 -0
  379. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/test_lower_jax.py +0 -0
  380. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/test_preprocessing.py +0 -0
  381. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/test_sparsity.py +0 -0
  382. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/symbolic/test_unified.py +0 -0
  383. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_autotuning.py +0 -0
  384. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_cvxpygen_optional.py +0 -0
  385. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_expert.py +0 -0
  386. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_impulsive.py +0 -0
  387. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_init.py +0 -0
  388. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_integrators.py +0 -0
  389. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_loader.py +0 -0
  390. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_optimization_results.py +0 -0
  391. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_plotting.py +0 -0
  392. {openscvx-0.5.1.dev2 → openscvx-0.5.2}/tests/test_propagation.py +0 -0
@@ -12,6 +12,11 @@ jobs:
12
12
  docs:
13
13
  name: 📖 Documentation
14
14
  runs-on: ubuntu-latest
15
+ env:
16
+ # Material stderr banner (MkDocs 2.0 blog); CI uses MkDocs 1.x + --strict.
17
+ NO_MKDOCS_2_WARNING: "true"
18
+ # ProperDocs may emit a follow-up WARNING; keep --strict clean.
19
+ DISABLE_MKDOCS_2_WARNING: "true"
15
20
 
16
21
  steps:
17
22
  - name: Checkout repository
@@ -38,20 +43,23 @@ jobs:
38
43
  - name: Cache MkDocs build
39
44
  uses: actions/cache@v4
40
45
  with:
41
- key: mkdocs-material-${{ hashFiles('mkdocs.yml', 'docs/**') }}
46
+ key: mkdocs-material-${{ hashFiles('mkdocs.yml', 'docs/**', 'material/overrides/**', 'scripts/gen_ref_pages.py', 'scripts/gen_example_pages.py', 'scripts/mkdocs_copy_viser_client_hook.py') }}
42
47
  path: .cache
43
48
  restore-keys: |
44
49
  mkdocs-material-
45
50
 
46
51
  - name: Install system dependencies
47
- run: sudo apt-get update && sudo apt-get install -y pngquant
52
+ run: >-
53
+ sudo apt-get update &&
54
+ sudo apt-get install -y pngquant libcairo2-dev libfreetype6-dev libffi-dev
55
+ libjpeg-dev libpng-dev zlib1g-dev
48
56
 
49
57
  # - name: Install MkDocs Material Insiders
50
58
  # run: uv pip install --system git+https://${{ secrets.MKDOCS_INSIDERS_TOKEN }}@github.com/squidfunk/mkdocs-material-insiders.git
51
59
 
52
60
  - name: Install documentation tools
53
61
  run: |
54
- uv pip install --system mkdocs-material mkdocstrings-python
62
+ uv pip install --system "mkdocs-material[imaging]" mkdocstrings-python
55
63
  uv pip install --system mkdocs-gen-files mkdocs-literate-nav mkdocs-section-index
56
64
  uv pip install --system mike
57
65
 
@@ -205,8 +205,19 @@ check_lint.py
205
205
  # option (not recommended) you can uncomment the following to ignore the entire idea folder.
206
206
  #.idea/
207
207
 
208
+ # MuJoCo runtime log
209
+ MUJOCO_LOG.TXT
210
+
208
211
  # MkDocs Material Insiders (installed from GitHub in CI, not committed)
209
- material/
210
- # But allow custom overrides to be committed
212
+ # Ignore contents of material/ but not material/overrides/ (Git cannot un-ignore
213
+ # paths inside an ignored directory when the rule is material/).
214
+ material/*
211
215
  !material/overrides/
216
+ !material/overrides/**
212
217
  src/
218
+
219
+ # SPICE kernels for spacecrafts examples
220
+ examples/spacecraft/ker/
221
+
222
+ # Solver_data folder
223
+ solver_data/
@@ -0,0 +1,3 @@
1
+ [submodule "third_party/mujoco_menagerie"]
2
+ path = third_party/mujoco_menagerie
3
+ url = https://github.com/google-deepmind/mujoco_menagerie
@@ -20,7 +20,6 @@ pip install -e ".[test]"
20
20
  ```
21
21
 
22
22
  For additional features, you can install optional dependencies:
23
- - `pip install -e ".[gui]"` - GUI visualization tools
24
23
  - `pip install -e ".[cvxpygen]"` - Code generation support
25
24
  - `pip install -e ".[stl]"` - STL (Signal Temporal Logic) constraints
26
25
 
@@ -204,11 +203,17 @@ def solve(self, max_iterations: int = 100) -> OptimizationResult:
204
203
  To preview documentation locally, first install the dependencies:
205
204
 
206
205
  ```bash
207
- pip install mkdocs-material mkdocstrings-python mkdocs-gen-files mkdocs-literate-nav mkdocs-section-index
206
+ pip install "mkdocs-material[imaging]" mkdocstrings-python mkdocs-gen-files mkdocs-literate-nav mkdocs-section-index
208
207
  ```
209
208
 
209
+ The `social` plugin (enabled in `mkdocs.yml`) uses **CairoSVG**, which loads the native **Cairo** library. A `pip`-only `cairosvg` on macOS often cannot find `libcairo` and will spam warnings during `mkdocs build` / `mkdocs serve`. Install Cairo into the same environment (for example `conda install -c conda-forge cairo cairosvg`) or install Cairo via Homebrew so the dynamic linker can resolve it. Uninstalling `cairosvg` does not silence the build: the plugin will warn on every page that imaging dependencies are missing.
210
+
210
211
  Then serve the documentation locally:
211
212
 
212
213
  ```bash
213
214
  mkdocs serve
214
215
  ```
216
+
217
+ To silence MkDocs 2.0 / ProperDocs notices when building with **`--strict`**, set **`NO_MKDOCS_2_WARNING=true`** (Material’s stderr banner) and, if you use ProperDocs, **`DISABLE_MKDOCS_2_WARNING=true`** for the pip-style WARNING; the documentation workflow sets both for CI.
218
+
219
+ The version dropdown uses Material’s **mike** integration and expects a `versions.json` at the site root. Plain `mkdocs serve` does not run `mike deploy`, so the repo includes a minimal **`docs/versions.json`** (copied into the build) to avoid a 404 in local previews. On **GitHub Pages**, CI replaces the published root with **`mike deploy`**, which writes the real multi-version manifest. To preview multiple versions locally the same way as production, use **`mike serve`** after you have a `gh-pages` branch with deployed versions.
@@ -1,13 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openscvx
3
- Version: 0.5.1.dev2
3
+ Version: 0.5.2
4
4
  Summary: A general Python-based successive convexification implementation which uses a JAX backend.
5
5
  Author-email: Chris Hayner and Griffin Norris <haynec@uw.edu>
6
6
  License: Apache Software License
7
- Project-URL: Homepage, https://openscvx.github.io/openscvx/
7
+ Project-URL: Homepage, https://openscvx.github.io/OpenSCvx/
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: License :: OSI Approved :: Apache Software License
10
- Requires-Python: >=3.9
10
+ Requires-Python: >=3.11
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
13
  Requires-Dist: cvxpy>=1.8.1
@@ -23,12 +23,6 @@ Requires-Dist: viser
23
23
  Requires-Dist: matplotlib
24
24
  Requires-Dist: pyyaml
25
25
  Requires-Dist: pydantic>=2.0
26
- Provides-Extra: gui
27
- Requires-Dist: pyqtgraph; extra == "gui"
28
- Requires-Dist: PyQt5; extra == "gui"
29
- Requires-Dist: scipy; extra == "gui"
30
- Requires-Dist: PyOpenGL; extra == "gui"
31
- Requires-Dist: PyOpenGL_accelerate; extra == "gui"
32
26
  Provides-Extra: cvxpygen
33
27
  Requires-Dist: cvxpygen; extra == "cvxpygen"
34
28
  Requires-Dist: qocogen; extra == "cvxpygen"
@@ -36,6 +30,9 @@ Provides-Extra: stl
36
30
  Requires-Dist: stljax; extra == "stl"
37
31
  Provides-Extra: lie
38
32
  Requires-Dist: jaxlie; extra == "lie"
33
+ Provides-Extra: mjx
34
+ Requires-Dist: mujoco>=3.0; extra == "mjx"
35
+ Requires-Dist: mujoco-mjx>=3.0; extra == "mjx"
39
36
  Provides-Extra: test
40
37
  Requires-Dist: pytest; extra == "test"
41
38
  Requires-Dist: scipy; extra == "test"
@@ -153,11 +150,11 @@ uv pip install openscvx
153
150
  ```
154
151
 
155
152
  > [!TIP]
156
- > **Optional Dependencies**
153
+ > **Optional dependencies**
157
154
  >
158
- > For GUI support or CVXPYGen code generation:
155
+ > For CVXPYGen code generation:
159
156
  > ```bash
160
- > pip install openscvx[gui,cvxpygen]
157
+ > pip install openscvx[cvxpygen]
161
158
  > ```
162
159
 
163
160
  > [!TIP]
@@ -192,13 +189,28 @@ source .venv/bin/activate
192
189
  uv pip install -e .
193
190
  ```
194
191
 
195
- ## Getting Started
192
+ > [!NOTE]
193
+ > **MuJoCo Menagerie (optional submodule)**
194
+ >
195
+ > Core OpenSCvx installs fine from a plain clone—you do **not** need the submodule unless you want bundled [MuJoCo Menagerie](https://github.com/google-deepmind/mujoco_menagerie) assets. To fetch it in one step, clone with `--recurse-submodules`, or add it later to `third_party/mujoco_menagerie` so `openscvx.integrations.menagerie` can load those MuJoCo XML/models/meshes without a separate checkout:
196
+ >
197
+ > ```bash
198
+ > git clone --recurse-submodules https://github.com/OpenSCvx/OpenSCvx.git
199
+ > ```
200
+ >
201
+ > After a clone without submodules, initialize Menagerie whenever you need it:
202
+ >
203
+ > ```bash
204
+ > git submodule update --init third_party/mujoco_menagerie
205
+ > ```
206
+
207
+ ## Documentation
196
208
 
197
- Check out the OpenSCvx documentation to help you get started
209
+ Check out the OpenSCvx documentation:
198
210
 
199
- - [Getting Started Docs](https://openscvx.github.io/OpenSCvx/latest/getting-started/)
200
211
  - [Users Guide](https://openscvx.github.io/OpenSCvx/latest/UsersGuide/00_introduction/)
201
- - [API Reference](https://openscvx.github.io/OpenSCvx/latest/Reference/problem/)
212
+ - [API Reference](https://openscvx.github.io/OpenSCvx/latest/Reference/)
213
+ - [Examples overview](https://openscvx.github.io/OpenSCvx/latest/examples/)
202
214
 
203
215
  ### Running the Examples
204
216
 
@@ -107,11 +107,11 @@ uv pip install openscvx
107
107
  ```
108
108
 
109
109
  > [!TIP]
110
- > **Optional Dependencies**
110
+ > **Optional dependencies**
111
111
  >
112
- > For GUI support or CVXPYGen code generation:
112
+ > For CVXPYGen code generation:
113
113
  > ```bash
114
- > pip install openscvx[gui,cvxpygen]
114
+ > pip install openscvx[cvxpygen]
115
115
  > ```
116
116
 
117
117
  > [!TIP]
@@ -146,13 +146,28 @@ source .venv/bin/activate
146
146
  uv pip install -e .
147
147
  ```
148
148
 
149
- ## Getting Started
149
+ > [!NOTE]
150
+ > **MuJoCo Menagerie (optional submodule)**
151
+ >
152
+ > Core OpenSCvx installs fine from a plain clone—you do **not** need the submodule unless you want bundled [MuJoCo Menagerie](https://github.com/google-deepmind/mujoco_menagerie) assets. To fetch it in one step, clone with `--recurse-submodules`, or add it later to `third_party/mujoco_menagerie` so `openscvx.integrations.menagerie` can load those MuJoCo XML/models/meshes without a separate checkout:
153
+ >
154
+ > ```bash
155
+ > git clone --recurse-submodules https://github.com/OpenSCvx/OpenSCvx.git
156
+ > ```
157
+ >
158
+ > After a clone without submodules, initialize Menagerie whenever you need it:
159
+ >
160
+ > ```bash
161
+ > git submodule update --init third_party/mujoco_menagerie
162
+ > ```
163
+
164
+ ## Documentation
150
165
 
151
- Check out the OpenSCvx documentation to help you get started
166
+ Check out the OpenSCvx documentation:
152
167
 
153
- - [Getting Started Docs](https://openscvx.github.io/OpenSCvx/latest/getting-started/)
154
168
  - [Users Guide](https://openscvx.github.io/OpenSCvx/latest/UsersGuide/00_introduction/)
155
- - [API Reference](https://openscvx.github.io/OpenSCvx/latest/Reference/problem/)
169
+ - [API Reference](https://openscvx.github.io/OpenSCvx/latest/Reference/)
170
+ - [Examples overview](https://openscvx.github.io/OpenSCvx/latest/examples/)
156
171
 
157
172
  ### Running the Examples
158
173