Git Product home page Git Product logo

streprogen's Introduction

Streprogen - the Python strength program generator.

PyPi

Documentation Status

Test Status

Install locally using pip install streprogen, or run live notebooks online.

Run code in your browser

If you don't have Python installed, you can run the code in your browser.

Learn how to make strength training programs

Example strength training program library

Check out the example PDF output.

Multi-day meal planning

Instructions for live code: Click "Runtime", then "Run all". To download a saved file, click on the arrow on the top left, left click the file and "Download". A downloaded .html file can be printed from your local browser.

Project summary

Streprogen (short for strength program generator) is a Python 3.6+ package which allows the user to easily create dynamic, flexible strength training programs. The main features are:

  • Sensible defaults: We aim for sensible default values for all input parameters, giving the novice strength athlete some guidance on parameter selection. The software will raise warnings for unreasonable input parameters, but will still run.
  • High level of customization: Every important parameter can be changed by the user. It is possible to create long-term training programs with several layers of periodization for advanced planning.
  • Simple interface: The software should be usable even by people with little Python knowledge.
  • Pretty output: Training programs may be saved as .txt, .html or .tex files. Print it and bring it to the gym.

image

Installation

Here's how to install the software on your local machine.

  1. Download Anaconda distribution of Python 3.x from the Anaconda Website.
  2. Install streprogen from PyPI.
    1. Windows: Open the Anaconda prompt from the start menu and run pip install streprogen.
    2. Linux: Open the terminal and run pip install streprogen.
  3. Open a Python Editor (such as Spyder, which comes with Anaconda).
  4. Copy the example below and run it to get started.

Sample code

----------------------------------------------------------------
Program: My first program!

Program parameters
  duration: 8
  reps_per_exercise: 25
  intensity: 83
  units: kg
----------------------------------------------------------------
Exercise information
  Day A
   Bench press    80kg -> 89.6kg 
    reps: [3, 8]   weekly inc.: 1.5%
   Squats        100kg -> 112kg  
    reps: [3, 8]   weekly inc.: 1.5%
  Day B
   Deadlifts     100kg -> 112kg  
    reps: [2, 7]   weekly inc.: 1.5%
   Curls         3 x 10 @ 18kg
----------------------------------------------------------------
Program
 Week 1
  Day A
   Bench press   8 x 60kg   7 x 65kg   7 x 65kg   7 x 65kg   
   Squats        8 x 75kg   7 x 80kg   7 x 80kg   7 x 80kg   

  Day B
   Deadlifts     7 x 80kg   7 x 80kg   6 x 80kg   6 x 80kg   5 x 85kg   
   Curls         3 x 10 @ 18kg

 Week 2
  Day A
   Bench press   7 x 65kg   7 x 65kg   6 x 65kg   5 x 70kg   5 x 70kg   
   Squats        7 x 80kg   7 x 80kg   6 x 85kg   5 x 85kg   5 x 85kg   

  Day B
   Deadlifts     7 x 80kg   7 x 80kg   6 x 85kg   5 x 85kg   5 x 85kg   
   Curls         3 x 10 @ 18kg

 Week 3
  ...
   ...  

streprogen's People

Contributors

tommyod avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

streprogen's Issues

Future plan

Quick history of streprogen for the interested

Streprogen is something that I've worked with for many years, in several languages as with several interfaces. At one point it was a website built in PHP, at one point it was a website built in Python, and so forth.

I always made it for myself, to automate my own training regimes. It's also used by my real-life circle of friends with the same interest. As I

  1. got better at programming,
  2. learned more math and
  3. got feedback from my own usage and my friends

it's converged to what it is today: a Python package with a (hopefully) simple AI, yet a powerful engine in the background.

The future plan

I have three main objectives that I want to accomplish over the next months:

  1. I've written a mathematical optimization formulation of a multi-day meal planning problem.
    This will be included, so streprogen will allow both strength and nutritional planning.
    I'm very excited about this. It's insanely powerful stuff and I've used it with great success myself.
  2. I've added a few example training programs in the README. I hope to increase the number to 5-10 programs.
  3. I should do some promotion, e.g. post it to forums and websites. I really think it could be useful for a lot of people,
    but putting something up on github rarely leads to attention on its own (you're an exception in this case).

Apart from those three goals, it's the common maintenance: fixing typos, making sure code is clean, adding features if needed, etc.

Anyone is welcome to contribute to any of the above. I'll of course add your name as a contributor.

[Appreciation and feature request] This is gold!

Thanks for creating this wonderful package with nice documentation. Python and exercise science in the same page? This is automatically the most wonderful thing I've seen today.

It would be nice to have some features to make this more applicable for athletes or trainers. I hope it's not too rude to comment on such.


Repetition Maximum based output

It's very common for trainers to stick to their training goal while shift the loads depending on their physiques status. They might train under slightly lower weight with more repetitions to avoid the potential risk of injury while getting constant progress.

Repetition Maximum and it's equations

Another potential application is that trainers might train for different function goals. Whereas small volume high repetition for endurance and high volume low repetition for explosiveness and strength.

Instruction from different association

Training protocol based on adaptation phase shift.

It's known that individuals with little to no training experience will gain muscular strength from neuromuscular adaptation which would take approximately 8 weeks.

After this phase, one would have to increase muscular strength more directly from muscle growth.

A great read about strength-endurance-continuum


Thanks for how modular and accessible your code are constructed, I think it's highly possible to implement the above ideas into this tool.

Although I'm not a python expert, if there's anything I can help, I would love to volunteer.

p.s: English is not my native tongue so forgive me for being unclear if that happens.

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.