Coder Social home page Coder Social logo

Questions and Features about myfit HOT 7 OPEN

patrick-b-c avatar patrick-b-c commented on July 17, 2024
Questions and Features

from myfit.

Comments (7)

patrick-b-c avatar patrick-b-c commented on July 17, 2024 1

I understand how it works now. But yeah it seems suboptimal. Example if youre deadlifting 200kg, adding a 2.5kg (the smallet increment in my gym) is only a 1.25% increase. However if youre doing cable side lateral raises with 5 kg, where the minimum increment is also 2.5kg. This is now a whopping 50% increase.

Info about 1 rep max formulas: https://en.wikipedia.org/wiki/One-repetition_maximum

The idea of 1 Rep max formulas is that you can calculate your estimated 1 rep max from known reps and weight. You can then use your 1 rep max to calculate what your reps should be at a given weight. Here's a version of the formula adjusted to have more customization. (Based on the Brzycki formula)

$$R_{2}=\frac{M_{2}\left(-a+r_{1}+R_{1}-37\right)}{FM_{1}}+a+37-r_{2}$$

Where:
R_2 is the reps at the new weight.

M_1 is your previous used weight.
M_2 is your new weight
F is the preferred overload percentage as a decimal. (So a 2.5% overload would be F=1.025)
R_1 is your previous performed reps
r_1 is your previous RIR for previous weight
r_2 is your target RIR for the new weight
a is a factor you can chose. It determines how difficult more reps are compared to few reps. (Example: If you previously did 100kgx12 and you now want to use a 120kg, the reps at a=0 would be 7. However some people might find it easier to lift heavier for few reps than lighter for more reps. Putting a=-5 the reps would be 8 instead. So a person who find it easier to lift heavy might want a negative "a" value. A person who finds it easier to lift light for more reps might need a positive "a" value. As a standard, how the formula was originally created a=0)

You can also solve the equation for M_2 if you want to find the new weight given reps instead.

I believe it would be valuable for you to take a look at the RP app, to see how it handles it (and handles other aspects related to algorithms)

...

The new UI looks nice! Seems you already have more features planned than many available apps, I believe this will be great. Also having different choices for progression seems like a nice option to have down the line.

from myfit.

WhyAsh5114 avatar WhyAsh5114 commented on July 17, 2024

Wow, that's a big list, thanks for taking the time to write all this down for me.

Q1) So the working of the progression algorithm is pretty basic for now, it finds out the least reps to add to reach at least 2.5% increase from the last time, it chooses the least volume set to increase first. And the loads change only when rep range is reached at its extremes. For the science behind it, just standard progressive overload, try to up the weight since last workouts. Nothing too fancy yet. It sometimes doesn't change reps and directly goes for load, for example in deadlifts in the 5-10 rep range, a rep change from 6 to 7 on 100kg is a much bigger change than 2.5% than simply changing the load from 100 to 105.

Q2) The stimulus/fatigue proxy does in fact do nothing for now, they're questions I added for manual checking, the decision on whether or not to add a set is for the user to make, the app will simply tell you in workout view whether or not the muscles are getting sore, I am automating this part in v3 though, there will be an option when creating the mesocycle itself if you want automatic set changes.

Q3) Deloads were also planned but I couldn't get to their implementations in time as the database schema isn't rich enough to support their recommendation, and instead of migrating v2, I thought it'd be better to do it in v3.

F1) I thought a standard 5 increment would be enough, but I'm realising that it isn't the case. I could add this in v2 if you want, it's just a global constant, I could instead put something in user settings to customize that, but for individual exercise adjustment, you'll have to wait a bit more.

F2) Automated reps and load recommendations when change huh, that's a neat idea, I kept the compare function for that but that is quite tedious to bruteforce and check manually, I agree, will add to my list for sure.

F3) Yeah... the algorithm is designed in such a way that the sets become down sets even though that wasn't my intention. I am adding option for set types: straight, down, top, etc. and different progression for each.

So yeah, basically many features I had planned but I just rushed the app (which is my fault, I agree). But I didn't really expect to gain such a big user base, I thought I'd be the only one to use the app, so I could just manually change my database and schema whenever I wanted to make any changes. But now that I realize I have quite a few users, I can't just do that as it could ruin the existing experience, some of these I can implement right now in v2, the load change is doable it seems, globally though, not per exercise, do tell me if you want it in this or can wait till v3.

from myfit.

patrick-b-c avatar patrick-b-c commented on July 17, 2024

Hi again. Thanks for answering! Also forgot to mention that I think you nailed the UI, was completely intuitive to use. (Maybe dark/light mode for the future?)

In general the algoritms for progression, deload, adjusting amount of sets based on feedback etc. is the bread and butter of the RP app. Nailing this part is what would really take this app to the next level in my opinion.

Q1: So a 2.5% increase in number of reps? Volume (reps x weight x sets)? If it is volume I'm not sure at is the best idea. (Lets say youre doing 100kgx12 in a 6-12 rep range. Then the equal volume is 200kgx6. Ain't nobody doing that :-D). It might be better of to use a 1 rep max formula, you could even use a 1 rep max formula and then use the history of how the user typically progresses to adjust to ones individual progression speed.

Q2: Great to know! The proxies are one of the most interesting things about the RP app for sure. A good idea might be (if you havent all ready) to take a look at the RP app, the RP spreadsheets and the RP Books. Especially the speadsheets might give you a good idea of how to handle this.

Q3: Sounds great, that it will be coming!

F1: Individual exercise adjustment in V3 (or later) would be awesome! I dont believe you have to implement the work around for V2, just keep focusing on V3 :-D

F2: Yeah . Kinda like when you havent entered anything yourself yet it will write the recommended parameters in grey or something. Then when you enter one of the parameters it will become solid black, and the other still grey parameters for that set will change accordingly, until you enter those parameters themselves, where they will also become black solid (and therefore "locked"). This also means if you just hit the recommended parameters, nothing should change, as youre already entering the same values as it already awas suggesting.

F3) Again sounds great! Having some way of forcing all sets to be using the same weight is really necessary in my opinion. The other set types would be nice as well!

You started making this for free and for yourself. The fact that you even shared it and hears the "communities" request is fantastic, thank you so much! I hope you'll be setting up the donations for V3.

from myfit.

WhyAsh5114 avatar WhyAsh5114 commented on July 17, 2024

Thank you for the kind words!
I didn't quite understand your progression idea though, I'll need some help for that as I've never used 1RM stuff, feel free to link some material for me to read up. Right now the app tries to up the overall volume of the entire exercise by 2.5%. So the 100kg for 6-12 reps will start with say 100kg * 7, then go to 100 * 8, all the way till 100 * 12, then it changes the loads and reps slightly, I just tried it out, its recommendation is 105 * 12. I'm open to various algorithms for different kinds of exercises, this is just a cookie-cutter kinda progression algorithm that seemed to work for various lifts.

Again thanks a lot for taking the time out to suggest all this :)
Light/dark mode is definitely gonna be there in v3, the new UI which is cleaner yet has a similar flow as the old app, so adoption for v2 users will be easier. Here's a sneak peek:

image

from myfit.

WhyAsh5114 avatar WhyAsh5114 commented on July 17, 2024

Great! Thanks a lot for the info, will look deeper into it. Maybe we could set a default algorithm based on the exercise type (rep range and stuff), it'll be customisable of course.

I do want to see how the RP app handles all this, but it's quite expensive for me, that's why I made this in the first place 😅. But there seem to be many options for progression, looks like I'll have to work a bit more than I expected on the progression algorithm part... Fun stuff though!

from myfit.

patrick-b-c avatar patrick-b-c commented on July 17, 2024

Forgot to mention, if you're using the formula I provided as an example, initial values of F could be determined by the user selecting their experience level ("Completely New" F=1.025, "Beginner" F=1.015, "Intermediate" F=1.0075, "Advanced" F=1.0025 or something similar). Initial value of a could just be a=0. There would also be some logic needed to be implmented as the suggested reps would often be a decimal, you'd probably have to average the increase in reps for all the sets, then distribute them (or something like that).

If one would go completely overboard, you could then use the proxy feedback to adjust F down the line, and/or I also believe you could use multivariate regression to estimate F and/or "a" based on how previous workouts progressed.

Regarding the RP app: Well just one more reason for opening up for donations :D. Hopefully enough people would donate for you to be able to buy a month or so of the RP app, so you can get some inspiration.

from myfit.

WhyAsh5114 avatar WhyAsh5114 commented on July 17, 2024

Damn, a lot of options and customisation for the formulae, that's cool, and tbh quite scary to implement... lot of challenges, although thanks for suggesting various ways of adjusting variables!
I'm also thinking of creating docs for how the app does stuff, so it'll be easier for curious users like you to understand what's happening in the background and offer suggestions.

I'll definitely add a donations option in the app in v3.

from myfit.

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.