workout-guide
302 open exercise illustrations and a framework-neutral npm package by Bryl Lim
What is it?
What it is
An open exercise illustration library containing 302 exercises with three consistent frames per exercise, delivered as a typed framework-neutral npm package with a searchable static gallery built on Astro.
Why it exists
To provide a comprehensive, accessible collection of exercise illustrations with structured metadata, normalized assets, and developer-friendly APIs. The project builds upon the Everkinetic pose artwork (CC BY-SA 4.0), expanding it with additional exercises, animation frames, package tooling, and documentation to serve both fitness enthusiasts and developers integrating exercise data into applications.
Who should use it
Developers building fitness or wellness applications, React Native developers integrating exercise demonstrations, web developers needing exercise illustration assets, TypeScript/JavaScript developers creating workout-related projects, and teams building apps with exercise libraries that need visual references.
Who should avoid it
Non-developers seeking general workout guidance, those looking for premium or paid exercise content, developers needing 3D exercise models (this provides 2D illustrations only), and users without comfort with npm package installation and JavaScript/TypeScript imports.
How it works
A quick walkthrough in plain English
How workout-guide works
Step 1 of 3
You interact with it
Open workout-guide, send a request, or connect it to your stack.
Features
Advantages
- Large collection of 302 exercises provides comprehensive coverage for fitness applications
- Consistent three-frame animation structure enables smooth visual demonstrations
- Framework-neutral design allows integration across React Native, web, and other platforms
- TypeScript support improves developer experience and reduces integration errors
- Static gallery enables fast, searchable browsing without runtime dependencies
- High-quality 512x512 SVG assets ensure crisp rendering at any scale
- Clear licensing terms (MIT for code, CC BY-SA 4.0 for assets) facilitate legal use
- Monorepo structure with dedicated packages simplifies maintenance and updates
- Comprehensive documentation including integration guides and examples
- Deterministic tooling ensures reproducible builds and catalog management
Disadvantages
- Large asset count (906 SVGs) may increase bundle size for applications using many exercises
- Dual licensing (MIT for code, CC BY-SA 4.0 for assets) may complicate commercial usage
- Astro-based site requires specific build tooling that may not align with all tech stacks
- Manual catalog regeneration process may be complex for new contributors
- Limited to static illustrations without interactive or video-based exercise guidance
- No built-in animation player or gesture recognition features
- Asset normalization and metadata structuring require ongoing maintenance effort
- Framework-neutral approach may lack platform-specific optimizations
Installation
native
npm install @bryllim/workout-guide
FAQ
How many exercises are included in the Workout Guide library and how many frames does each exercise have?
The library contains 302 exercises, with three consistent frames provided per exercise.
How do I install and use the @bryllim/workout-guide npm package?
Install it with `npm install @bryllim/workout-guide`, then import helpers such as `getExercise`, `searchExercises`, and `getAssetUrl`. For example: `const pushUp = getExercise('push-up');` or `const url = getAssetUrl('push-up', 1);`. Direct asset imports and React Native `require()` usage are documented in the integration guide.
What is the structure of the monorepo and how do I run it locally?
It is an npm-workspace monorepo containing `packages/workout-guide` (package API, canonical manifest, and all 906 transparent 512×512 SVGs plus PNG sources), `apps/site` (Astro landing page, gallery, detail pages, and guide), and `scripts` (catalog import and validation utilities). To run locally: `npm install`, then `npm run check`, then `npm run dev`.
Can the normalized catalog and assets be regenerated from a source export?
Yes. Maintainers can regenerate them from a compatible source export using `npm run catalog:import -- /path/to/source`. The normalized catalog and all package assets are also checked into the repository.
How is the visual artwork licensed and what attribution is required?
The code and documentation are under the MIT License, while the visual assets are licensed under CC BY-SA 4.0. The original pose artwork comes from Everkinetic under CC BY-SA 4.0, expanded by Bryl Lim with additional exercises and frames. See LICENSES.md and ATTRIBUTION.md for the complete breakdown.
How can I search or filter exercises programmatically?
Use `searchExercises` from the package, optionally passing filter options. For example, to find bodyweight chest exercises: `const bodyweightChest = searchExercises('chest', { equipment: 'bodyweight' });`.
Featured in Videos
YouTube tutorials and walkthroughs for workout-guide