openscvx 0.4.1.dev4__tar.gz → 0.4.1.dev10__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.4.1.dev4/openscvx.egg-info → openscvx-0.4.1.dev10}/PKG-INFO +1 -1
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/_version.py +3 -3
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/problem.py +128 -1
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10/openscvx.egg-info}/PKG-INFO +1 -1
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/assets/logo.svg +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/release-drafter.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/workflows/_docs.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/workflows/branch-name.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/workflows/docs.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/workflows/lint.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/workflows/nightly.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/workflows/release-drafter.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/workflows/release.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/workflows/tests-integration.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.github/workflows/tests-unit.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/.gitignore +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/CONTRIBUTING.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/LICENSE +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/README.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/Foundations/constraint_reformulation.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/Foundations/control_parameterization.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/Foundations/discretization.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/Foundations/ocp.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/Foundations/scvx.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/Foundations/time_dilation.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UnderTheHood/lowering_architecture.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UnderTheHood/vectorization_and_vmapping.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UsersGuide/00_introduction.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UsersGuide/01_hello_world_brachistochrone.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UsersGuide/02_drone_racing_constraints.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UsersGuide/03_obstacle_avoidance_vmap.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UsersGuide/04_viewpoint_constraints.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UsersGuide/05_visualization.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UsersGuide/06_logic.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UsersGuide/07_lie.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/assets/favicon.png +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/assets/images/ct-scvx_dark.png +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/assets/images/ct-scvx_light.png +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/assets/images/ctcs_dark.png +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/assets/images/ctcs_light.png +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/assets/images/problem_class_dark.png +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/assets/images/problem_class_light.png +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/assets/logo.svg +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/citation.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/examples.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/getting-started.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/index.md +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/javascripts/mathjax.js +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/abstract/brachistochrone.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/arm/three_link_arm.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/car/dubins_car.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/car/dubins_car_conditional.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/car/dubins_car_disjoint.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/car/dubins_car_stljax.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/drone/cinema_vp.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/drone/dr_double_integrator.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/drone/dr_vp.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/drone/dr_vp_nodal.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/drone/dr_vp_polytope.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/drone/drone_racing.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/drone/obstacle_avoidance.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/drone/obstacle_avoidance_nodal.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/drone/obstacle_avoidance_vmap.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/plotting.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/plotting_viser.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/realtime/base_problems/cinema_vp_realtime_base.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/realtime/base_problems/drone_racing_realtime_base.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/realtime/base_problems/obstacle_avoidance_realtime_base.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/realtime/cinema_vp_realtime.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/realtime/drone_racing_realtime.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/realtime/dubins_car_realtime.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/realtime/obstacle_avoidance_realtime.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/rocket/3DoF_pdg.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/examples/spacecraft/proxops_cw.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/figures/ctlos_cine.gif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/figures/ctlos_dr.gif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/figures/dtlos_cine.gif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/figures/dtlos_dr.gif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/figures/openscvx_logo.svg +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/figures/openscvx_logo_square.png +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/figures/oscvx_structure_full_dark.svg +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/figures/video_preview.png +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/1-background.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/1-background@1x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/1-background@2x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/1-background@3x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/1-background@4x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/2-mars.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/2-mars@1x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/2-mars@2x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/2-mars@3x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/2-mars@4x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/3-moon.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/3-moon@1x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/3-moon@2x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/3-moon@3x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/3-moon@4x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/4-sat1.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/4-sat1@1x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/4-sat1@2x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/4-sat1@3x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/4-sat1@4x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/5-space.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/5-space@1x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/5-space@2x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/5-space@3x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/5-space@4x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/6-earth.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/6-earth@1x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/6-earth@2x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/6-earth@3x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/6-earth@4x.avif +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/javascripts/parallax.js +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/logo.svg +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/stylesheets/custom.css +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/stylesheets/parallax.css +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/home.html +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/main.html +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/partials/parallax/hero.html +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/partials/parallax.html +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/mkdocs.yml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/algorithms/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/algorithms/autotuning.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/algorithms/base.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/algorithms/optimization_results.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/algorithms/penalized_trust_region.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/config.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/discretization/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/discretization/discretization.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/expert/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/expert/byof.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/expert/lowering.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/expert/validation.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/init/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/init/interpolation.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/integrators/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/integrators/runge_kutta.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/lowered/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/lowered/cvxpy_constraints.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/lowered/cvxpy_variables.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/lowered/dynamics.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/lowered/jax_constraints.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/lowered/parameters.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/lowered/problem.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/lowered/unified.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/plotting/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/plotting/plotting.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/plotting/scp_iteration.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/plotting/viser/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/plotting/viser/animated.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/plotting/viser/plotly_integration.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/plotting/viser/primitives.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/plotting/viser/scp.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/plotting/viser/server.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/propagation/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/propagation/post_processing.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/propagation/propagation.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/solvers/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/solvers/base.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/solvers/ptr_solver.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/augmentation.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/builder.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/constraint_set.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/arithmetic.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/array.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/constraint.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/control.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/expr.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/lie/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/lie/adjoint.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/lie/se3.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/lie/so3.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/linalg.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/logic.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/math.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/spatial.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/state.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/stl.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/variable.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/expr/vmap.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/hashing.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lower.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/_lowerer.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/_registry.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/arithmetic.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/array.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/constraint.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/control.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/expr.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/linalg.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/logic.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/math.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/cvxpy/state.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/_lowerer.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/_registry.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/arithmetic.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/array.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/constraint.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/control.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/expr.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/lie.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/linalg.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/logic.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/math.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/spatial.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/state.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/stl.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/lowerers/jax/vmap.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/preprocessing.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/problem.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/time.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/symbolic/unified.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/utils/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/utils/cache.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/utils/caching.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/utils/printing.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/utils/profiling.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx/utils/utils.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx.egg-info/SOURCES.txt +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx.egg-info/dependency_links.txt +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx.egg-info/requires.txt +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/openscvx.egg-info/top_level.txt +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/pyproject.toml +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/scripts/gen_example_pages.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/scripts/gen_ref_pages.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/setup.cfg +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/brachistochrone_analytical.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/__init__.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_arithmetic.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_array.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_constraint.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_expr.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_lie.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_linalg.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_logic.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_math.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_node_reference.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_parameters.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_scaling.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_spatial.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_variable.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/expr/test_vmap.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/test_augmentation.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/test_hashing.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/test_lower_cvxpy.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/test_lower_jax.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/test_preprocessing.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/symbolic/test_unified.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/test_autotuning.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/test_brachistochrone.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/test_cvxpygen_optional.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/test_discretization.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/test_examples.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/test_expert.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/test_init.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/test_integrators.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/test_plotting.py +0 -0
- {openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/tests/test_propagation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.4.1.
|
|
3
|
+
Version: 0.4.1.dev10
|
|
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.4.1.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 4, 1, '
|
|
31
|
+
__version__ = version = '0.4.1.dev10'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 4, 1, 'dev10')
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'gb6a70b8ee'
|
|
@@ -264,11 +264,115 @@ class Problem:
|
|
|
264
264
|
|
|
265
265
|
def _sync_parameters(self):
|
|
266
266
|
"""Sync all parameter values to CVXPy parameters."""
|
|
267
|
+
if self._lowered is None:
|
|
268
|
+
return
|
|
269
|
+
|
|
267
270
|
if self._lowered.cvxpy_params is not None:
|
|
268
271
|
for name, value in self._parameter_wrapper.items():
|
|
269
272
|
if name in self._lowered.cvxpy_params:
|
|
270
273
|
self._lowered.cvxpy_params[name].value = value
|
|
271
274
|
|
|
275
|
+
def _sync_boundary_conditions(self):
|
|
276
|
+
"""Sync boundary conditions from State objects to lowered representation.
|
|
277
|
+
|
|
278
|
+
This method reads the current `.initial` and `.final` values and types
|
|
279
|
+
from the original State objects and updates both the unified state
|
|
280
|
+
representation and the CVXPy solver parameters. This enables workflows
|
|
281
|
+
where initial conditions change between solves.
|
|
282
|
+
|
|
283
|
+
Note:
|
|
284
|
+
Safe to call before initialize() - it will simply do nothing.
|
|
285
|
+
"""
|
|
286
|
+
if self._lowered is None:
|
|
287
|
+
return
|
|
288
|
+
|
|
289
|
+
# Sync initial/final values and types from State objects to optimization unified
|
|
290
|
+
# representation
|
|
291
|
+
for state in self.symbolic.states:
|
|
292
|
+
if state.initial is not None:
|
|
293
|
+
self._lowered.x_unified.initial[state._slice] = state.initial
|
|
294
|
+
self._lowered.x_unified.initial_type[state._slice] = state.initial_type
|
|
295
|
+
if state.final is not None:
|
|
296
|
+
self._lowered.x_unified.final[state._slice] = state.final
|
|
297
|
+
self._lowered.x_unified.final_type[state._slice] = state.final_type
|
|
298
|
+
|
|
299
|
+
# Sync initial/final values and types to propagation unified representation
|
|
300
|
+
# (states_prop includes optimization states, so we sync those too)
|
|
301
|
+
for state in self.symbolic.states_prop:
|
|
302
|
+
if state.initial is not None:
|
|
303
|
+
self._lowered.x_prop_unified.initial[state._slice] = state.initial
|
|
304
|
+
self._lowered.x_prop_unified.initial_type[state._slice] = state.initial_type
|
|
305
|
+
if state.final is not None:
|
|
306
|
+
self._lowered.x_prop_unified.final[state._slice] = state.final
|
|
307
|
+
self._lowered.x_prop_unified.final_type[state._slice] = state.final_type
|
|
308
|
+
|
|
309
|
+
# Update CVXPy solver parameters (only if solver is initialized)
|
|
310
|
+
if self._solver._problem is not None:
|
|
311
|
+
self._solver.update_boundary_conditions(
|
|
312
|
+
x_init=self._lowered.x_unified.initial,
|
|
313
|
+
x_term=self._lowered.x_unified.final,
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
def _sync_guesses(self):
|
|
317
|
+
"""Sync trajectory guesses from State/Control objects to lowered representation.
|
|
318
|
+
|
|
319
|
+
This method reads the current `.guess` values from the original State and
|
|
320
|
+
Control objects and updates the unified representations. This enables warm-starting
|
|
321
|
+
workflows where the initial trajectory guess is updated between solves (e.g., shifting
|
|
322
|
+
the previous solution).
|
|
323
|
+
|
|
324
|
+
Note:
|
|
325
|
+
This only updates the unified representation. The AlgorithmState is
|
|
326
|
+
created from these values in reset() or initialize(), so this must
|
|
327
|
+
be called before those methods to take effect.
|
|
328
|
+
"""
|
|
329
|
+
if self._lowered is None:
|
|
330
|
+
return
|
|
331
|
+
|
|
332
|
+
# Sync optimization state guesses
|
|
333
|
+
for state in self.symbolic.states:
|
|
334
|
+
if state.guess is not None:
|
|
335
|
+
self._lowered.x_unified.guess[:, state._slice] = state.guess
|
|
336
|
+
|
|
337
|
+
# Sync propagation state guesses (includes optimization states)
|
|
338
|
+
for state in self.symbolic.states_prop:
|
|
339
|
+
if state.guess is not None:
|
|
340
|
+
self._lowered.x_prop_unified.guess[:, state._slice] = state.guess
|
|
341
|
+
|
|
342
|
+
# Sync control guesses
|
|
343
|
+
for control in self.symbolic.controls:
|
|
344
|
+
if control.guess is not None:
|
|
345
|
+
self._lowered.u_unified.guess[:, control._slice] = control.guess
|
|
346
|
+
|
|
347
|
+
def sync(self):
|
|
348
|
+
"""Sync parameters and boundary conditions to the solver.
|
|
349
|
+
|
|
350
|
+
Call this after modifying State.initial/final or parameters when using
|
|
351
|
+
step() without reset(). This allows warm-starting from the previous
|
|
352
|
+
solution while updating problem data.
|
|
353
|
+
|
|
354
|
+
Note:
|
|
355
|
+
This is automatically called by solve() and reset(). Only needed
|
|
356
|
+
when using step() directly with modified parameters or boundary
|
|
357
|
+
conditions between iterations.
|
|
358
|
+
|
|
359
|
+
Example:
|
|
360
|
+
MPC with warm-starting::
|
|
361
|
+
|
|
362
|
+
problem.initialize()
|
|
363
|
+
while running:
|
|
364
|
+
# Update initial condition from measurement
|
|
365
|
+
pos.initial = measured_state
|
|
366
|
+
problem.sync() # Sync without resetting algorithm state
|
|
367
|
+
|
|
368
|
+
# Continue from previous solution (warm-start)
|
|
369
|
+
for _ in range(max_iters):
|
|
370
|
+
if problem.step()["converged"]:
|
|
371
|
+
break
|
|
372
|
+
"""
|
|
373
|
+
self._sync_parameters()
|
|
374
|
+
self._sync_boundary_conditions()
|
|
375
|
+
|
|
272
376
|
@property
|
|
273
377
|
def state(self) -> Optional[AlgorithmState]:
|
|
274
378
|
"""Access the current solver state.
|
|
@@ -543,6 +647,10 @@ class Problem:
|
|
|
543
647
|
Creates fresh AlgorithmState while preserving compiled dynamics and solvers.
|
|
544
648
|
Use this to run multiple optimizations without re-initializing.
|
|
545
649
|
|
|
650
|
+
This method automatically syncs:
|
|
651
|
+
- Trajectory guesses from State/Control `.guess` attributes
|
|
652
|
+
- Boundary conditions from State `.initial` and `.final` attributes
|
|
653
|
+
|
|
546
654
|
Raises:
|
|
547
655
|
ValueError: If initialize() has not been called yet.
|
|
548
656
|
|
|
@@ -554,10 +662,28 @@ class Problem:
|
|
|
554
662
|
result1 = problem.step()
|
|
555
663
|
problem.reset()
|
|
556
664
|
result2 = problem.solve() # Fresh run with same setup
|
|
665
|
+
|
|
666
|
+
MPC with warm-starting from previous solution::
|
|
667
|
+
|
|
668
|
+
for measured_state in measurements:
|
|
669
|
+
# Update initial condition
|
|
670
|
+
pos.initial = measured_state[:3]
|
|
671
|
+
|
|
672
|
+
# Warm-start: shift previous solution as new guess
|
|
673
|
+
pos.guess = np.roll(prev_result.nodes["pos"], -1, axis=0)
|
|
674
|
+
|
|
675
|
+
problem.reset() # Syncs guesses and boundary conditions
|
|
676
|
+
result = problem.solve()
|
|
557
677
|
"""
|
|
558
678
|
if self._compiled_dynamics is None:
|
|
559
679
|
raise ValueError("Problem has not been initialized. Call initialize() first")
|
|
560
680
|
|
|
681
|
+
# Sync guesses from State/Control objects (must happen before AlgorithmState creation)
|
|
682
|
+
self._sync_guesses()
|
|
683
|
+
|
|
684
|
+
# Sync boundary conditions from State objects
|
|
685
|
+
self._sync_boundary_conditions()
|
|
686
|
+
|
|
561
687
|
# Create fresh solver state from settings
|
|
562
688
|
self._state = AlgorithmState.from_settings(self.settings)
|
|
563
689
|
|
|
@@ -619,8 +745,9 @@ class Problem:
|
|
|
619
745
|
OptimizationResults with trajectory and convergence info
|
|
620
746
|
(call post_process() for full propagation)
|
|
621
747
|
"""
|
|
622
|
-
# Sync parameters before solving
|
|
748
|
+
# Sync parameters and boundary conditions before solving
|
|
623
749
|
self._sync_parameters()
|
|
750
|
+
self._sync_boundary_conditions()
|
|
624
751
|
|
|
625
752
|
required = [
|
|
626
753
|
self._compiled_dynamics,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openscvx
|
|
3
|
-
Version: 0.4.1.
|
|
3
|
+
Version: 0.4.1.dev10
|
|
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
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UnderTheHood/vectorization_and_vmapping.md
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/docs/UsersGuide/01_hello_world_brachistochrone.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
|
|
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.4.1.dev4 → openscvx-0.4.1.dev10}/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
|
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/2-mars.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/2-mars@1x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/2-mars@2x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/2-mars@3x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/2-mars@4x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/3-moon.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/3-moon@1x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/3-moon@2x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/3-moon@3x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/3-moon@4x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/4-sat1.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/4-sat1@1x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/4-sat1@2x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/4-sat1@3x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/4-sat1@4x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/5-space.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/5-space@1x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/5-space@2x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/5-space@3x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/5-space@4x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/6-earth.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/6-earth@1x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/6-earth@2x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/6-earth@3x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/images/layers/6-earth@4x.avif
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/javascripts/parallax.js
RENAMED
|
File without changes
|
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/stylesheets/custom.css
RENAMED
|
File without changes
|
{openscvx-0.4.1.dev4 → openscvx-0.4.1.dev10}/material/overrides/assets/stylesheets/parallax.css
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
|