openscvx 0.3.1.dev139__tar.gz → 0.3.2.dev129__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.
- openscvx-0.3.2.dev129/CONTRIBUTING.md +213 -0
- {openscvx-0.3.1.dev139/openscvx.egg-info → openscvx-0.3.2.dev129}/PKG-INFO +1 -1
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/_version.py +3 -3
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129/openscvx.egg-info}/PKG-INFO +1 -1
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx.egg-info/SOURCES.txt +1 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.github/assets/logo.svg +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.github/release-drafter.yml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.github/workflows/_docs.yml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.github/workflows/docs.yml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.github/workflows/lint.yml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.github/workflows/nightly.yml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.github/workflows/release-drafter.yml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.github/workflows/release.yml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.github/workflows/tests-integration.yml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.github/workflows/tests-unit.yml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/.gitignore +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/LICENSE +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/README.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Overview/constraint_reformulation.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Overview/control_parameterization.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Overview/discretization.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Overview/ocp.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Overview/scvx.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Overview/time_dilation.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/UnderTheHood/lowering_architecture.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/UnderTheHood/vectorization_and_vmapping.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/advanced_problem_setup.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/api.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/api_constraints.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/api_control.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/api_integrators.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/api_state.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/api_trajoptproblem.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/api_variable.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/basic_problem_setup.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/tutorial_6dof_los_guidance.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/tutorial_6dof_obstacle_avoidance.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/tutorials.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/assets/favicon.png +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/assets/images/ct-scvx_dark.png +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/assets/images/ct-scvx_light.png +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/assets/images/ctcs_dark.png +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/assets/images/ctcs_light.png +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/assets/images/problem_class_dark.png +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/assets/images/problem_class_light.png +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/assets/logo.svg +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/citation.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/examples.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/getting-started.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/index.md +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/javascripts/mathjax.js +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/abstract/3DoF_pdg.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/abstract/brachistochrone.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/car/dubins_car.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/car/dubins_car_disjoint.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/car/dubins_car_stljax.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/cinema_vp.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/cinema_vp_realtime_base.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/dr_double_integrator.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/dr_vp.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/dr_vp_nodal.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/dr_vp_polytope.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/drone_racing.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/obstacle_avoidance.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/obstacle_avoidance_nodal.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/obstacle_avoidance_realtime_base.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/plotting.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/plotting_viser.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/realtime/cinema_vp_realtime.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/realtime/drone_racing_realtime.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/realtime/dubins_car_realtime.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/realtime/obstacle_avoidance_realtime.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/figures/ctlos_cine.gif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/figures/ctlos_dr.gif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/figures/dtlos_cine.gif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/figures/dtlos_dr.gif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/figures/openscvx_logo.svg +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/figures/openscvx_logo_square.png +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/figures/oscvx_structure_full_dark.svg +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/figures/video_preview.png +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/1-background.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/1-background@1x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/1-background@2x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/1-background@3x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/1-background@4x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/2-mars.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/2-mars@1x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/2-mars@2x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/2-mars@3x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/2-mars@4x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/3-moon.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/3-moon@1x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/3-moon@2x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/3-moon@3x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/3-moon@4x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/4-sat1.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/4-sat1@1x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/4-sat1@2x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/4-sat1@3x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/4-sat1@4x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/5-space.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/5-space@1x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/5-space@2x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/5-space@3x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/5-space@4x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/6-earth.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/6-earth@1x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/6-earth@2x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/6-earth@3x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/6-earth@4x.avif +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/javascripts/parallax.js +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/logo.svg +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/stylesheets/custom.css +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/stylesheets/parallax.css +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/home.html +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/main.html +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/partials/parallax/hero.html +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/partials/parallax.html +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/mkdocs.yml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/algorithms/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/algorithms/autotuning.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/algorithms/optimization_results.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/algorithms/ptr.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/algorithms/solver_state.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/config.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/discretization/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/discretization/discretization.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/expert/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/expert/byof.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/expert/lowering.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/expert/validation.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/integrators/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/integrators/runge_kutta.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/lowered/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/lowered/cvxpy_constraints.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/lowered/cvxpy_variables.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/lowered/dynamics.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/lowered/jax_constraints.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/lowered/parameters.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/lowered/problem.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/lowered/unified.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/plotting/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/plotting/plotting.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/plotting/scp_iteration.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/plotting/viser/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/plotting/viser/animated.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/plotting/viser/plotly_integration.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/plotting/viser/primitives.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/plotting/viser/scp.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/plotting/viser/server.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/problem.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/propagation/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/propagation/post_processing.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/propagation/propagation.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/solvers/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/solvers/cvxpy.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/augmentation.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/builder.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/constraint_set.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/arithmetic.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/array.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/constraint.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/control.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/expr.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/linalg.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/math.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/spatial.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/state.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/stl.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/expr/variable.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/hashing.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/lower.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/lowerers/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/lowerers/cvxpy.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/lowerers/jax.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/preprocessing.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/problem.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/time.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/symbolic/unified.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/utils/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/utils/cache.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/utils/caching.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/utils/printing.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/utils/profiling.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/utils/utils.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx.egg-info/dependency_links.txt +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx.egg-info/requires.txt +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx.egg-info/top_level.txt +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/pyproject.toml +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/scripts/gen_example_pages.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/scripts/gen_ref_pages.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/setup.cfg +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/brachistochrone_analytical.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/__init__.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_arithmetic.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_array.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_constraint.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_expr.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_linalg.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_math.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_node_reference.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_parameters.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_scaling.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_spatial.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/expr/test_variable.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/test_augmentation.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/test_hashing.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/test_lower_cvxpy.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/test_lower_jax.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/test_preprocessing.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/symbolic/test_unified.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/test_brachistochrone.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/test_cvxpygen_optional.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/test_discretization.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/test_examples.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/test_expert.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/test_integrators.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/test_plotting.py +0 -0
- {openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/tests/test_propagation.py +0 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
## Contributing to OpenSCvx
|
|
2
|
+
|
|
3
|
+
### Local Installation
|
|
4
|
+
|
|
5
|
+
To set up OpenSCvx for local development, first clone the repository and create a virtual environment:
|
|
6
|
+
|
|
7
|
+
> **Note:** These instructions use SSH URLs. If you haven't set up SSH keys with GitHub, see [Connecting to GitHub with SSH](https://docs.github.com/en/authentication/connecting-to-github-with-ssh).
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
git clone git@github.com:haynec/OpenSCvx.git
|
|
11
|
+
cd OpenSCvx
|
|
12
|
+
python -m venv venv
|
|
13
|
+
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Then install the package in editable mode with development dependencies:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pip install -e ".[test]"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
For additional features, you can install optional dependencies:
|
|
23
|
+
- `pip install -e ".[gui]"` - GUI visualization tools
|
|
24
|
+
- `pip install -e ".[cvxpygen]"` - Code generation support
|
|
25
|
+
- `pip install -e ".[stl]"` - STL (Signal Temporal Logic) constraints
|
|
26
|
+
|
|
27
|
+
#### Using uv (Alternative)
|
|
28
|
+
|
|
29
|
+
If you prefer using [uv](https://github.com/astral-sh/uv) for faster dependency resolution:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
git clone git@github.com:haynec/OpenSCvx.git
|
|
33
|
+
cd OpenSCvx
|
|
34
|
+
uv venv
|
|
35
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
36
|
+
uv pip install -e ".[test]"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
To contribute changes, you'll need to create a branch or fork. See [Forking and Merging](#forking-and-merging) below for details on our workflow and [Branch Naming Conventions](#branch-naming-conventions) for required naming patterns.
|
|
40
|
+
|
|
41
|
+
### Forking and Merging
|
|
42
|
+
|
|
43
|
+
All contributions must be submitted via pull request and approved by a maintainer before merging. This ensures code quality, maintains consistency across the codebase, and gives contributors feedback on their changes.
|
|
44
|
+
|
|
45
|
+
We currently use standard merge commits for pull requests. We may transition to squash merges in the future to maintain a cleaner commit history on `main`.
|
|
46
|
+
|
|
47
|
+
Contributors can either:
|
|
48
|
+
1. **Create a branch directly** on the OpenSCvx repository (for those with write access)
|
|
49
|
+
2. **Fork the repository** to their own GitHub account and submit pull requests from there (recommended for external contributors)
|
|
50
|
+
|
|
51
|
+
#### Fork Setup
|
|
52
|
+
|
|
53
|
+
To set up a fork for development:
|
|
54
|
+
|
|
55
|
+
1. Fork the repository on GitHub by clicking the "Fork" button on the [OpenSCvx repository page](https://github.com/haynec/OpenSCvx)
|
|
56
|
+
|
|
57
|
+
2. Clone your fork locally:
|
|
58
|
+
```bash
|
|
59
|
+
git clone git@github.com:YOUR_USERNAME/OpenSCvx.git
|
|
60
|
+
cd OpenSCvx
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
3. Add the upstream repository as a remote:
|
|
64
|
+
```bash
|
|
65
|
+
git remote add upstream git@github.com:haynec/OpenSCvx.git
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
4. Verify your remotes:
|
|
69
|
+
```bash
|
|
70
|
+
git remote -v
|
|
71
|
+
# origin git@github.com:YOUR_USERNAME/OpenSCvx.git (fetch)
|
|
72
|
+
# origin git@github.com:YOUR_USERNAME/OpenSCvx.git (push)
|
|
73
|
+
# upstream git@github.com:haynec/OpenSCvx.git (fetch)
|
|
74
|
+
# upstream git@github.com:haynec/OpenSCvx.git (push)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
5. Keep your fork up to date by periodically pulling from upstream:
|
|
78
|
+
```bash
|
|
79
|
+
git fetch upstream
|
|
80
|
+
git checkout main
|
|
81
|
+
git merge upstream/main
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
#### Branch Naming Conventions
|
|
85
|
+
|
|
86
|
+
We use [release-drafter](https://github.com/release-drafter/release-drafter) to automatically generate release notes based on pull request labels. These labels are auto-assigned based on your branch name prefix.
|
|
87
|
+
|
|
88
|
+
**Required branch prefixes:**
|
|
89
|
+
|
|
90
|
+
| Prefix | Label Applied | Release Category |
|
|
91
|
+
|--------|---------------|------------------|
|
|
92
|
+
| `feature/` | enhancement | Features |
|
|
93
|
+
| `fix/` | bug | Bug Fixes |
|
|
94
|
+
| `refactor/` | refactor | Maintenance |
|
|
95
|
+
| `chore/` | chore | Maintenance |
|
|
96
|
+
| `docs/` or `doc/` | documentation | Maintenance |
|
|
97
|
+
|
|
98
|
+
**Examples:**
|
|
99
|
+
- `feature/add-new-solver` - Adding a new solver option
|
|
100
|
+
- `fix/convergence-issue` - Fixing a bug
|
|
101
|
+
- `refactor/simplify-dynamics` - Code refactoring
|
|
102
|
+
- `chore/update-dependencies` - Maintenance tasks
|
|
103
|
+
- `docs/api-examples` - Documentation updates
|
|
104
|
+
|
|
105
|
+
See the [workflow](.github/workflows/release-drafter.yml) and [configuration](.github/release-drafter.yml) for details.
|
|
106
|
+
|
|
107
|
+
### Development Guidelines
|
|
108
|
+
|
|
109
|
+
#### Use of LLM-Based Tools
|
|
110
|
+
|
|
111
|
+
While the development of OpenSCvx has been greatly assisted by LLM-based tools for coding tasks, it is up to the contributor to use them in a responsible manner. We welcome their use, _but with great power comes great responsibility_.
|
|
112
|
+
|
|
113
|
+
Our goal is to produce a high-quality codebase that is well organized, easy to modify, easy to understand, and, most importantly, easy to maintain. We will not accept so-called _AI-slop_. Contributors are expected to:
|
|
114
|
+
|
|
115
|
+
1. **Understand every line** of code they submit. You are responsible for it, not the LLM
|
|
116
|
+
2. **Review and refactor** generated code to match the project's style and patterns
|
|
117
|
+
3. **Write meaningful commit messages and keep commits small-ish** to break the changes into bite-sized chunks that can be understood based on the commit message.
|
|
118
|
+
4. **Test thoroughly** - LLMs can generate plausible-looking but subtly incorrect code. See point 1.
|
|
119
|
+
|
|
120
|
+
#### Keep It Simple
|
|
121
|
+
|
|
122
|
+
We value simplicity over cleverness. Before adding code, ask yourself:
|
|
123
|
+
|
|
124
|
+
- **[YAGNI](https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it)**: "You Aren't Gonna Need It" - don't add functionality until it's actually needed
|
|
125
|
+
- **[KISS](https://en.wikipedia.org/wiki/KISS_principle)**: "Keep It Simple, Stupid" - the simplest solution is usually the best one
|
|
126
|
+
- **[Feature creep](https://en.wikipedia.org/wiki/Feature_creep)**: the enemy of maintainable software. A 10-line function that's easy to understand beats a 50-line "flexible" abstraction that handles hypothetical future requirements. When in doubt, leave it out.
|
|
127
|
+
|
|
128
|
+
While we don't always follow these rules, we try.
|
|
129
|
+
|
|
130
|
+
#### Code Style
|
|
131
|
+
|
|
132
|
+
We use [Ruff](https://github.com/astral-sh/ruff) for linting and formatting. Before submitting a PR, ensure your code passes:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
ruff check .
|
|
136
|
+
ruff format --check .
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
To auto-fix issues:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
ruff check --fix .
|
|
143
|
+
ruff format .
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
See the `[tool.ruff]` section in `pyproject.toml` for our configuration.
|
|
147
|
+
|
|
148
|
+
#### Testing
|
|
149
|
+
|
|
150
|
+
OpenSCvx uses `pytest` for automated testing. Tests run automatically via GitHub Actions:
|
|
151
|
+
|
|
152
|
+
- **[tests-unit.yml](.github/workflows/tests-unit.yml)**: Runs on every PR - fast unit tests including the brachistochrone benchmark
|
|
153
|
+
- **[tests-integration.yml](.github/workflows/tests-integration.yml)**: Runs weekly - full example problems as a smoke test
|
|
154
|
+
|
|
155
|
+
##### Running Tests Locally
|
|
156
|
+
|
|
157
|
+
For faster feedback during development, run tests locally:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
pytest tests/ # All unit tests
|
|
161
|
+
pytest tests/test_brachistochrone.py -v # Just the brachistochrone benchmark
|
|
162
|
+
pytest -v -m "not integration" # Skip expensive integration tests
|
|
163
|
+
pytest -v -m integration # Only integration tests (runs test_examples.py)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
##### Brachistochrone Problem
|
|
167
|
+
|
|
168
|
+
The [brachistochrone problem](https://en.wikipedia.org/wiki/Brachistochrone_curve) serves as our primary validation benchmark. This classic problem asks for the curve of fastest descent under gravity between two points, and has a known analytical solution: the cycloid. We use it as part of the unit-test suite because:
|
|
169
|
+
|
|
170
|
+
- **Analytical solution exists**: We can validate numerical results against the exact cycloid curve
|
|
171
|
+
- **Small and fast**: The problem converges quickly, making it ideal for CI/CD pipelines
|
|
172
|
+
- **Representative**: It exercises core features like free final time optimization and nonlinear dynamics
|
|
173
|
+
|
|
174
|
+
##### Test-Driven Development
|
|
175
|
+
|
|
176
|
+
While we do not strictly follow [test driven development (TDD)](https://en.wikipedia.org/wiki/Test-driven_development), we aim to keep a representative test-suite where it makes sense to do so and leverage TDD when possible.
|
|
177
|
+
|
|
178
|
+
For example, the [symbolic-expression layer](openscvx/symbolic/__init__.py) is well covered by [tests](tests/symbolic/) which were written simultaneously with the symbolic layer.
|
|
179
|
+
|
|
180
|
+
The extensive test suite helps ensure that new features and refactors don't break existing functionality.
|
|
181
|
+
|
|
182
|
+
#### Documentation
|
|
183
|
+
|
|
184
|
+
We use [MkDocs](https://www.mkdocs.org/) with [Material](https://squidfunk.github.io/mkdocs-material/) theme for documentation, hosted at [haynec.github.io/OpenSCvx](https://haynec.github.io/OpenSCvx/).
|
|
185
|
+
|
|
186
|
+
API reference is auto-generated from docstrings using [mkdocstrings](https://mkdocstrings.github.io/). Please use [Google-style docstrings](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings) for all public functions and classes:
|
|
187
|
+
|
|
188
|
+
```python
|
|
189
|
+
def solve(self, max_iterations: int = 100) -> OptimizationResult:
|
|
190
|
+
"""Solve the trajectory optimization problem.
|
|
191
|
+
|
|
192
|
+
Args:
|
|
193
|
+
max_iterations: Maximum number of SCP iterations.
|
|
194
|
+
|
|
195
|
+
Returns:
|
|
196
|
+
The optimization result containing the trajectory and convergence info.
|
|
197
|
+
|
|
198
|
+
Raises:
|
|
199
|
+
ConvergenceError: If the solver fails to converge.
|
|
200
|
+
"""
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
To preview documentation locally, first install the dependencies:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
pip install mkdocs-material mkdocstrings-python mkdocs-gen-files mkdocs-literate-nav mkdocs-section-index
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
Then serve the documentation locally:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
mkdocs serve
|
|
213
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2.dev129
|
|
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
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.3.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 3,
|
|
31
|
+
__version__ = version = '0.3.2.dev129'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 3, 2, 'dev129')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g24aff8688'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2.dev129
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/UnderTheHood/vectorization_and_vmapping.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/docs/Usage/tutorial_6dof_obstacle_avoidance.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/drone/obstacle_avoidance_realtime_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/examples/realtime/obstacle_avoidance_realtime.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/2-mars.avif
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/3-moon.avif
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/4-sat1.avif
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/5-space.avif
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/images/layers/6-earth.avif
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/javascripts/parallax.js
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/stylesheets/custom.css
RENAMED
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/assets/stylesheets/parallax.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/material/overrides/partials/parallax/hero.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openscvx-0.3.1.dev139 → openscvx-0.3.2.dev129}/openscvx/plotting/viser/plotly_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|