| A while ago I posted openGym here a self-hosted gym and body-weight tracker built with React + Node. It runs in two Docker containers, supports passkeys, has an Android APK, 14 languages and is AGPL licensed. The most common request I got since then was basically: "can you add some kind of coaching?" So v1.3 now has a Coach. I wanted to keep it in line with the rest of openGym though, so instead of sending all your workout data to some random cloud service, the Coach is designed to work with your own AI provider. What the Coach actually does
Everything is undoable, and the Coach doesn't touch your working weights. The normal deterministic progression system still handles that. Bring your own AIWhen setting it up, the admin goes through a 5-step setup: provider -> endpoint -> key -> model -> test You can use:
The phone app can either use the server's provider or its own API key. PrivacyThis was probably the part I spent the most time on. The Coach doesn't just dump your whole database into an LLM. It sends an allowlisted set of data: your plan, relevant sessions, aggregates, body weight and your answers to the intake questions. It's sent using an opaque handle, so your name, login and other users' data aren't included. Each user has to consent individually and can see what categories of data will be sent before using the Coach. API keys are encrypted on the server and only sent to the provider while a job is running. The admin can see usage counts and outcomes, but not what users asked the Coach. There's a more detailed write-up in Also added in 1.3:
LinksSource + releases: https://gitlab.com/DuarteSantos8/opengym Website / docs / APK: https://opengym.duarte-santos.ch Try it directly in the browser: https://opengym.duarte-santos.ch/demo/ The demo Coach uses a canned response, so you don't need an API key to try the UI. The actual Coach needs a provider configured. For existing self-hosters:
Then go to Settings -> Admin -> AI Coach. I'm especially interested in feedback on the prompt design and the validator. The model's response gets checked against a closed list of allowed change types and real exercise IDs before anything can actually be applied. Also happy to answer questions about running it with Ollama / local models. It's free and will stay free. AGPL, no pro tier. If openGym ends up replacing a paid tracker for you, there's a Buy Me a Coffee link on the website. That mostly goes towards hosting, signing certificates and properly licensing the exercise content. [link] [留言] |
openGym v. 1.3
Related
Every Greedy Metric Said the Model Was Improving. Then pass@64 Fell From 0.83 to 0.19
Every number we watched said the run was working. Correct-per-sample probability tripled. The greedy accuracy curve was climbing. By the numbers on our dashboard, this was a textbook RLVR win. Then we sampled the checkpoint 64 times per problem instead of once. pass@64 had collapsed from 0.83 to 0.
Stop changing your sprite sheet to fix animation speed
An eight-frame animation does not have a fixed duration. At 8 fps it lasts one second; at 12 fps it lasts two-thirds of a second; at 16 fps it lasts half a second. Before drawing or generating more frames, check whether the problem is missing poses or the time each pose stays on screen. We maintain
Your Hand Is a Continuous Signal. A Scale Is Not. That Gap Is the Whole Problem.
A webcam hand tracker hands you a position, thirty or sixty times a second, as a float between 0 and 1. A musical scale hands you seven notes per octave. Building a browser hand-gesture synthesizer is mostly the work of getting from the first thing to the second thing without it sounding like a fax