Code Monkey home page Code Monkey logo

Comments (6)

astashov avatar astashov commented on July 18, 2024 1

You can kinda do that right now, with creating a non used exercise, and reuse its progress:

my_very_cool_progression: Squat / 1x1 / used: none / progress: custom() {~
  // your logic
~}

Bench Press / 3x8 / progress: { ...my_very_cool_progression: Squat }

from liftosaur.

astashov avatar astashov commented on July 18, 2024

Usually you want to increase weight when you hit the upper limit though, right? Like the standard double progression - you have a range 8-12, and once you hit 12, you bump up the weight. Currently you can do it like Squat / 3x8-12 / progress: lp(5lb).

But you want to increase the weight when you hit min reps in the range ,right?

from liftosaur.

youhavejameswoods avatar youhavejameswoods commented on July 18, 2024

Yeah, my thought is that if I wanted to bump up the weight when I hit the upper limit, then I'd just use the single target weight rather than a range.

I'm personally using the ranges on the sets that follow the set with the highest weight/volume lifted - I like to increase after I hit the target on the big set, as long as my other sets that follow are somewhere between 7-9 (for example).

from liftosaur.

youhavejameswoods avatar youhavejameswoods commented on July 18, 2024

Is there a plan to implement this at some point in the future? Mainly asking because I’m considering transitioning my programs from the legacy versions to new, but I’ll hold off a bit if this is a future enhancement since it’ll cut down on custom code significantly (I think it’ll actually remove the need for any custom code for progressions for me).
Thanks!

from liftosaur.

astashov avatar astashov commented on July 18, 2024

Currently, if you use rep ranges with progress: lp, then it uses the top of the range to make a decision if you need to bump up the weight, and the bottom of range to make a decision if you need to reduce the weight. I.e. if you have Squat / 3x8-12 / progress: lp(5lb, 1, 0, 10lb, 1, 0), then it'll increase the weight if you hit 12 on all the sets, and will reduce the weight if at least one of the sets is below 8.

I think the logic makes sense, and frankly if I change it - it's going to be a breaking change for a lot of people. So, in your case I'd recommend to still use a custom progressions. Something like this:

Squat / 4x8-12 / progress: custom() {~
  if (completedReps[1] >= reps[1] && completedReps >= minReps) {
    weights += 5lb
  }
~}

That would make sure you hit the max rep on the first set, and the rest of the sets are at least within the rep range.
You could reuse the logic in all the rest of your exercises, like:

Bench Press /  4x8-12 / progress: custom() { ...Squat }

from liftosaur.

youhavejameswoods avatar youhavejameswoods commented on July 18, 2024

Thank you very much! That reminds me… I was thinking that it’d be useful to define the reusable custom progressions more generally, outside of exercises. It would help people from having to remember how progressions are defined per exercise.

For example, I’d like to name a progression “Increase by 5lbs after 1 success, decrease by 5lbs after 5 failures” - that way it’s very clear what custom progression I’m repeating when calling upon it. I may decide later that I want to wait until 6 failures for squats but not for all of the exercises that were reusing the progression.

from liftosaur.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.