Inspiration
For beginners, it is hard to know which exercises to choose, how many sets to do, or when a muscle has done enough work. We wanted to make training less about guessing and more about understanding what your body is doing.
What it does
MyoCoach simulates EMG signals during a workout and shows muscle activity on a 3D upper-body model. It records sets, reps, weight settings, and rest time, then summarizes which muscles worked most and suggests what to train next. A phone-browser remote can help log the workout.
How we built it
We used React, TypeScript, and Three.js for the website and body model. Our simulator generates EMG-like signals and turns them into live muscle activation. We built a phone remote, local workout history, rule-based guidance, and an optional AI coach powered by the StepFun API.
Challenges we ran into
Connecting the phone and computer was less reliable than we expected, especially on networks that block devices from reaching each other. We also revised the 3D model several times: our first muscles looked like shapes attached to a mannequin, so we researched anatomy and worked to make the model more useful and realistic.
Accomplishments that we're proud of
We brought the whole workout loop together: simulated muscle signals, a live body map, set-by-set records, and guidance for the next workout. Seeing the record directly on the muscle model makes the data much easier to understand.
What we learned
Useful feedback needs more than data. It needs a clear visual explanation, dependable connections between devices, and honest limits on what a simulation can tell someone.
What's next for MyoCoach
Today, the EMG data is simulated. Next, we want to build an EMG vest that measures real signals. We have a preliminary circuit design and a software path for connecting hardware, but the wearable still needs to be built, calibrated, and tested.
Built With
- gamepad-api
- node.js
- react
- react-three-fiber
- serial
- stepfun-api
- three.js
- typescript
- vite
- web
- websockets

Log in or sign up for Devpost to join the conversation.