Repository navigation
Equipment profiles: pick the exact machines your gym has (with pictures) #923
hamidrezahanafi
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Related conversations
This request is deliberately the missing slice: a profile should be able to say "leg press yes, leg extension no". None of the above does that.
What problem this solves?
Equipment profiles stop at the catalogue's equipment type, and that is too coarse for machines.
"Leverage machine" covers 279 exercises — leg press, hack squat, leg extension, leg curl, chest press, pec deck, shoulder press, seated row, lat pulldown, calf raise and more. Smith machine covers 94, sled machine 48, assisted 43. A leg press is spread across three types: lever leg press, 45° sled leg press and Smith leg press.
So a profile can only say "all leverage machines" or "none". My gym has a leg press and a lat pulldown but no leg extension. Today that means:
This is not a weight-stack problem — v1.4.3 already lets a machine carry its own stack. It is an availability problem, and it is worst exactly where gyms differ most: the machines.
Mockups
These are concept mockups using openGym's design tokens and real catalogue stills. The counts and the 26-kind vocabulary are illustrative.
Proposed approach
Give each equipment profile a Machines section: a visual picker of machine kinds, not a list of exercises.
leg press,LP,45 degree,hack squat); each group has an "All" card and a "None" action.sled machine. Each catalogue exercise maps to exactly one kind, or to Other.machine kindfield incatalogue/(preferred: one value per row, checked by the build) or a curatedlib/machine-kinds.jstable read from the name, likeaccessoriesOfdoes for bench and pull-up bar. A test must fail if a new row with a machineeqhas no kind. "Other" is an explicit fallback, not a silent skip.The smallest useful slice is the four strength machine types and roughly 25 kinds. Cardio machines, cable stations, equipment brands and per-exercise exceptions can follow.
How the best apps do it
The apps most often compared for this job, and where they stop:
Machine - StrengthandMachine - CardioSources: Alpha Progression guide and gym profile glossary, Fitbod My Plan, Hevy feature guide and Hevy machine tracking, Jefit exercise database, Boostcamp programs.
What to borrow from Alpha Progression: the exact machine vocabulary, per-gym scoping, and the escape hatch of whitelisting or blacklisting a single exercise. Matching that list is table stakes for a planner.
What openGym can do better: Alpha's documented flow is an equipment list the user has to read through. A picture-first grid with search, aliases and exercise counts is faster for the user who recognizes a leg press but does not know what the app calls it; and openGym already has the catalogue thumbnails, so the pictures cost no new assets. "All other machines" stays as an explicit fallback instead of silently swallowing unmapped rows.
Alternatives considered
eqvalues (leg press machine,leg extension machine, …): duplicates the taxonomy, retags hundreds of rows, and touchesLOADED_EQ,SELF_CONTAINED,EQ_PRIOR, aliases and imports. It also makes the profile checklist enormous.Scope
In scope: machine kinds for Leverage machine, Sled machine, Smith machine and Assisted; the visual picker; the mapping invariant;
eqAvailable, plan fitting and Coach intake inheriting the same rule; sync merge and backup import; tests.Not in scope: per-gym plates, dumbbells and bars (#808); equipment brands (#602); per-gym history (#106); admin-added equipment types (#541); per-machine weight stacks (already in v1.4.3); QR codes on machines (#531); machine photos, per-machine history, or cardio stations in the first slice.
Open questions
lib/? The field is cleaner; the table is a smaller diff.Dependencies
Moved from issue #922.
All reactions