Skip to content

Releases: pyomeca/bioptim

PublicProperty

25 Nov 13:12
fdafe4d

Choose a tag to compare

Privacy is good, but sometime things need to be a bit more public. The Custom models are now requiring some public properties to function well. This is more verbose, tidy and open!

NOTE: Here is the migration guide for those who define their own CustomModel

STEP 1
In your dynamic model, if you were declaring state_configuration, control_configuration, algebraic_configuration or functions, they must now be properties of the class and their names must be updated to state_configuration_functions, control_configuration_functions, algebraic_configuration_functions and extra_configuration_functions respectively.
These fields are not mandaroty properties of the dynamic class.

STEP 2
In your dynamic model, the field "name_dof" was changed to "name_dofs" and should now be a property of the class.

STEP 3
In your dynamic model, the field name is now mandatory and should be a property of the class.

STEP 4
In your dynamic model, for the class that inherits from StateDynamicsWithContacts, the field contact_types is now mandatory as a property and should not be passed anymore to the init method.

What's Changed

  • [BREAKING] name_dof -> name_dofs, Simplified States and Controls methods and and more precise State Dynamics by @pariterre in #1033

Full Changelog: Release_3.3.1...Release_3.4.0

SolverResolver

04 Nov 21:02
ec85e04

Choose a tag to compare

Evolution is beautiful and must be embraced. Old paths change, new ones are created; ways to follow follow the new and the new old paths.
Bioptim has now renewed with its old-friend ACADOS, but has also make new-friends such as FATROP. New ways to do things, but remains the same good old bioptim.

Enjoy the new old! or the old new?

What's Changed

  • fix(example): refactors bounds and initial guess definitions by @Ipuch in #986
  • Corrected variable name in pendulum example of ReadMe by @echapp in #992
  • Smaller marker size because I do not see anything XD by @EveCharbie in #988
  • docs: holonomic constraints in the solver within an example by @Ipuch in #989
  • Removing obsolete constraint from time dependent test by @Kev1CO in #1000
  • [BREAKING] fix: removed * dt in defects by @EveCharbie in #987
  • Weight class for interpolation of objective weights by @EveCharbie in #998
  • Added information about the GUI examples in the ReadMe by @pariterre in #1001
  • [RTR] Refactors dynamics implementations by @Ipuch in #994
  • feat: New class MusclesWithExcitationsBiorbdModel by @Ipuch in #995
  • [RTR after 995] clean: Fatigue instantiation in child classes by @Ipuch in #996
  • Added GUI to launch.json by @pariterre in #1003
  • [RTM] fix: example holonomic double pendulum by @Ipuch in #1004
  • refactor: bound vector by @Ipuch in #1005
  • [RTR] Removing ConstraintType.IMPLICIT and g_implicit by @EveCharbie in #1006
  • [RTR] tests: the current vector layout by @Ipuch in #1007
  • [RTR] test(vector_layout): linear continuous by @Ipuch in #1008
  • URGENT(FIX) by @Ipuch in #1009
  • [RTR] factoring out the linear continuous duplication of controls by @Ipuch in #1010
  • [RTR] UniquePerPhaseOPtionList -> OptionList ? by @EveCharbie in #1015
  • be more lax on github action maximum time by @pariterre in #1016
  • [RTM when tests pass] feat: Custom vector layout by @Ipuch in #1002
  • [RTM when updated] ACADOS savior by @pariterre in #1011
  • [RTM when answered] Implemented ConstraintWeight by @EveCharbie in #1013
  • [RTM] Moving examples by @EveCharbie in #1023
  • Added a static_property to folder by @pariterre in #1026
  • Modified viewer loop to fix visualization when using multimodel by @p-shg in #1012
  • [RTM] Implementing FATROP interface by @pariterre in #1019
  • [RTM when tests pass] testing cost (cost value, print_cost, detailed_cost) by @EveCharbie in #1025
  • [RTM when tests pass] Added the capability to skip shake_tree if problem did not change by @pariterre in #1017
  • Allowed for biorbd=1.12 by @pariterre in #1027
  • [RTM] updated to latest bioviz which solves the segfault issue from pyqt6 by @pariterre in #1028
  • [RTM when tests pass] fixing example model paths by @EveCharbie in #1029
  • [RTR] Added CONSTANT_WITH_FIRST_AND_LAST_DIFFERENT case in the test of ObjectiveWeight ans ConstraintWeight by @EveCharbie in #1031
  • [RTR] Walking example by @EveCharbie in #991
  • [RTR] Reordered constraint vector so the jacobian is compatible with FATROP by @pariterre in #1030
  • Added example to setup by @pariterre in #1032

New Contributors

Full Changelog: Release_3.3.0...Release_3.3.1

ANewGround

21 Jul 15:02
8a7609c

Choose a tag to compare

People are leaving and coming, so we have to reconsider the world we live in. At bioptim we follow the trend of rethinking the world! Therefore, we made some major changes in the core of the code, for the better (and hopefully not for the worst!). With that in mind, we are pleased to invite you in this new ground, so we can (simulate) walk (and other human movement) together! As an invitation to hold hands while we move forward, we have attached to this release a small guide to help you update your code.

What's Changed

  • [RTR] contact force at the end of interval for takeoff by @EveCharbie in #891
  • feat: tracked markers displayed with pyorerun by @Ipuch in #896
  • Testing the tests on windows by @pariterre in #897
  • [RTM when corrected] Enabling parameters in receding horizon by @Kev1CO in #894
  • [RTM] Fixed plots for muscle driven by @EveCharbie in #899
  • [RTM] dt dependent integration gub fix by @EveCharbie in #900
  • Removing mx_reduced by creating "biorbd wrapper" by @EveCharbie in #881
  • refactor: check mapping dof (cleaning on the fly) by @Ipuch in #902
  • Lagrange Polynomials Decoupling - Collocation and IRK by @Ipuch in #905
  • feat: alternative partition recommendation by @Ipuch in #906
  • Updated the tests so they work again on CI! by @pariterre in #909
  • Minimize_contact_force in objectives. by @Ipuch in #904
  • [WIP] Added with_friction support for muscle driven dynamics. Ported funtionalities from torque driven dynamics by @p-shg in #910
  • Fixing error in set_friction_coefficients by @p-shg in #913
  • [RTR] removing node_mapping by @EveCharbie in #915
  • Refactor and fixing bugs - list of OdeSolvers, multiphase algebraic states bounds and not on every phases. by @Ipuch in #914
  • [RTR] refactor: splitting ode_solver script by @Ipuch in #916
  • [RTR] refactor: update init in ocp by @Ipuch in #917
  • feat: holonomic torque driven can friction too by @Ipuch in #919
  • [RTR] Fixing some TODOs by @EveCharbie in #922
  • [RTR] refactor: retrieve_force by @Ipuch in #924
  • [RTR] feat: autopartition for holonomic models by @Ipuch in #925
  • Update README.md - Variable scaling by @Ipuch in #923
  • Moving time horizon for collocations by @Kev1CO in #926
  • [RTM]Added named complex types by @EastWest14 in #928
  • [RTM] Walking penalties by @EveCharbie in #921
  • [RTR] deleted the lines that should have been deleted by @EveCharbie in #935
  • [RTR] Memory and execution time tests (before refactor) by @EveCharbie in #941
  • [RTR/RTM] fix: parameter objective need parameters decision variables in any scenario right ? by @Ipuch in #930
  • [RTM] Algebraic states are states by @Ipuch in #907
  • Misc module type conversion by @EastWest14 in #934
    1. [RTM] plot tests / refactor: Plot by @Ipuch in #932
  • [RTM when pinged] create casadi function only the first call by @EveCharbie in #944
  • [RTM] Annotated biorbd by @EastWest14 in #951
  • [RTR] fix: intermediate algebraic states used in continuity constraint by @Ipuch in #954
  • [RTM] LINEAR_CONTINUOUS in COLLOCATION by @EveCharbie in #955
  • [RTM] ExternalForcesVariables by @EveCharbie in #956
  • [RTM] removed as_states_dot by @EveCharbie in #957
  • BREAKING CHANGE: Replaced with_contact with contact_type by @EveCharbie in #958
  • BREAKING CHANGE: Move ode_solver from OptimalControlProgram to DynamicsList.add by @EveCharbie in #959
  • Converted protocols package to use new type hints by @EastWest14 in #963
  • [RTM]Convert limits to use type hint by @EastWest14 in #968
  • [RTM when approved] Enabling collocations in mhe problems by @Kev1CO in #969
  • [RTR]Convert interfaces by @EastWest14 in #972
  • [RTM] Fully converted dynamics fatigue to new types by @EastWest14 in #977
  • [RTR]Convert gui to new types by @EastWest14 in #975
  • [RTR]Convert dynamics to new types by @EastWest14 in #976
  • [RTR] multinode penalties with OdeSolver.COLLOCATION (inclusion of cx_intermediates) by @EveCharbie in #967
  • BREAKING CHANGE: Removed SoftContactDynamics and DefectType.IMPLICIT/EXPLICIT by @EveCharbie in #964
  • [BREAKING] Refactor dynamics by @EveCharbie in #974
  • fix plot by @EveCharbie in #984
  • Type converted multi_start by @EastWest14 in #978
  • Serializes ODE Solver in NlpSerializable by @Ipuch in #985

New Contributors

Full Changelog: Release_3.2.1...Release_3.3.0

TooMuchToTell

15 Aug 15:14
c2dc979

Choose a tag to compare

What's maintainers? Have you forgotten me? I need to get free! I need releases!
Now there are too much changes to tell the most important one... You made this to yourself! So people, enjoy the new me!

What's Changed

New Contributors

Full Changelog: Release_3.2.0...Release_3.2.1

SpringCleaning

11 Jan 18:08
17e3628

Choose a tag to compare

Over the time, dust accumulate to the point you don't see the floor anymore... electronic code does not make exception! Therefore Bioptimn needed a huge dedusting from years of development

SpringCleaning is a rewrite of the core dynamics of bioptim, not so much of the API except for few breaking changes. All in all, this is a very welcome breath of fresh air for Bioptim!

What's Changed

  • [RTR] fix on live optimization by @Ipuch in #702
  • [RTM] Bug and BoundsList by @20chupin in #703
  • [RTM] Ipopt options were problematic by @Ipuch in #709
  • [RTM] IntegralApproximation -> QuadratureRule by @20chupin in #704
  • [RTM] restoring the right types for protocols and markervelocities by @Ipuch in #708
  • BiorrbdModelHolonomic and VariationalBiorbdModel in core by @20chupin in #699
  • [RTR] some little test on preparing the data for animation of tracked markers. by @Ipuch in #714
  • [RTR] StochastiOCP merge by @EveCharbie in #715
  • [RTR] solver options ipopt test by @Ipuch in #723
  • [RTM] Restoring bounds on graphs by @EveCharbie in #724
  • [RTM] show bounds test in ocp by @Ipuch in #728
  • [RTM if tests pass] implicit formulation of the SOCP by @EveCharbie in #721
  • [RTM] added multi-node penalties to objective plots by @EveCharbie in #726
  • Made expand modifiable from API by @pariterre in #727
  • [RTM when answered] Add min power (joint and muscle) - typo in Readme - new strategy of CI by @mickaelbegon in #733
  • [RTM if tests pass] Cholesky decomposition of the covariance matrix by @EveCharbie in #731
  • [RTM when #733 is merged] controls piecewise constant with last node by @EveCharbie in #737
  • change way to report coverage by @mickaelbegon in #740
  • [RTR] s_scaling good version by @EveCharbie in #734
  • [RTM] add trapezoidal integrator by @EveCharbie in #738
  • [RTM] Not compute the defects if not in implicit by @EveCharbie in #742
  • DMOCC now working entirely with honomic constraints. by @Ipuch in #736
  • [RTR] Refactor new_variable by @Ipuch in #730
  • [RTM] collocations for SOCP by @EveCharbie in #744
  • [RTM when tests pass] changed reshape_to_vector/matrix for good (test breaking) by @EveCharbie in #750
  • [RTM when tests pass] Including custom functions as built-ins for stochastic problems by @EveCharbie in #743
  • [RTR] Multi-threading in SOCP_COLLOCATION by @EveCharbie in #753
  • [RTR] extra models for futher computations by @Ipuch in #757
  • [To be deleted] Running tests on all platforms by @pariterre in #758
  • [WIP] Unique dynamic function for time dependent problem by @Kev1CO in #718
  • [RTR] tiny commit to help everyone debugging by @Ipuch in #760
  • [RTR] Multimodel, I need animation and displaced the file for more convinience by @Ipuch in #761
  • [RTM] Wild refactor trying to understand what's going on in compute_values for graphics by @Ipuch in #762
  • Fixed custom_plot by @pariterre in #767
  • [RTR] Unit test on helper function. by @Ipuch in #764
  • Migrating to biorbd 1.10.0 by @pariterre in #768
  • [RTM when tests pass] Time dependent test correction by @Kev1CO in #759
  • FIxed a bug of time in plot for multiphase programs by @pariterre in #769
  • Update README.md with PhaseDynamics instead of assume_phase_dynamics by @Ipuch in #774
  • get_u isolated as a helper+ unit test by @Ipuch in #775
  • [RTM when ping] SOCP_COLLOCATION corrections to make it right :) by @EveCharbie in #771
  • [RTR] removing assume_phase from readme by @Kev1CO in #777
  • [RTM when tests pass] external forces moved out of ocp too by @Ipuch in #779
  • [RTM when tests pass] Using integrate_extra_dynamics instead of duplicating code by @EveCharbie in #780
  • [RTR] Stochastic variables should not be inputs of OCP by @Ipuch in #765
  • [RTM when tested] Added a multi-node constraint for the total duration of the movement by @EveCharbie in #782
  • [RTM] Added more complex example of optimal estimation by @EveCharbie in #784
  • Minibug patch by @Ipuch in #786
  • some unit test in integration for stability purpose. by @Ipuch in #785
  • [RTR] Solving a critical issue of codeclimate by @Ipuch in #788
  • [RTR] Try to refactor a bit the initialisation of Solution by @Ipuch in #787
  • [RTM when tests pass] Refactor solution with classmethods by @Ipuch in #789
  • [RTM when tests pass] Breaking up solution in multiple scripts by @Ipuch in #790
  • [RTR] Udpate min max + test by @Ipuch in #798
  • [RTR] duplicate_collocation_starting_point by @Ipuch in #796
  • [RTR] Refactoring solver interface utils for the better by @Ipuch in #793
  • [RTR] Mayer_TRACK_CONTACT_FORCES by @Alpha2Shahiri in #797
  • [RTM when tests pass] Reorganize files by @Ipuch in #792
  • [RTM] Added the commit ID + version to sol by @EveCharbie in #806
  • Major refactor towards 3.2.0 by @pariterre in #814
  • [RTM] Commit for mickael by @Ipuch in #811
  • [RTM] yml code climate by @Ipuch in #800
  • Final stretch of the reformating! by @pariterre in #816

New Contributors

Full Changelog: Release_3.1.0...Release_3.2.0

TheNewOrder

23 Jun 16:28
2cecbe2

Choose a tag to compare

The new order is a deep state conspiracy... Here at pyomeca, we believe in shallow state, still we need to be ordered anyway. So thanks to the new way of declaring initial guesses and bounds, no one can be mistaken anymore on the order of the variables!

What's Changed

Full Changelog: Release_3.0.1...Release_3.1.0

SeparatedTwins

06 Mar 15:53
61f2438

Choose a tag to compare

Twins are special, unique, they are inseparable. But at some point in their live, they must get their own live. It is the same for dynamic constraints in an optimal control program. Even though, they seem identical, they have their own personality that must be acknowledged.

Constraints between shooting node are now independent, assuring that they work properly. Bioptim is better, stronger and happier!

What's Changed

New Contributors

Full Changelog: Release_3.0.0...Release_3.0.1

Bioptimistic

26 Jan 21:16
bfa4d90

Choose a tag to compare

Dynamics is the core nature of most, if not all, things; at least for every instance of moving things. Bioptim was restrained to one type of dynamics and it made it sad. How can I describe the world if I cannot define my own dynamics, it was saying. Don't be sad no more, Bioptim, 'cause now, all dynamics are at your door! This new release disconnect biorbd from the core of bioptim allowing for arbitrary dynamics to be implemented. This is exciting! This opens bioptim to a lot of new usage! We are so optimist with what you can bring to the world that I'd say we are bioptimistic!

What's Changed

New Contributors

Full Changelog: Release_2.3.0...Release_3.0.0

SeeOfChanges

22 Sep 18:38
007e79d

Choose a tag to compare

"Over the see, no one can see" - No name (actually no one... but who cares!)
When one looks at the horizon, they can't see past a certain point. Too far is the horizon, too much water separate them to the new world ahead. When they are sailing that see, the same can be said for the land behind. They must forgot where they are from, to focus on where they are going.

Bioptim is a sailor, no one can remember what happened between that release and the previous one. Bioptim has so evolved, it cannot see over its own see of changes

What's Changed

New Contributors

Full Changelog: Release_2.2.2...Release_2.3.0