The first workout log that tracks which muscles fired, which nerves drove them, and where compensations appeared β using Muscular Neuro Notation. Log in to save your data between visits, or try the demo instantly.
π§
Nerve-Level Tracking
Select muscles and the app auto-maps the nerves. You learn the pathways as you log β no anatomy degree required.
β‘
Compensation Detection
Flag when the wrong muscle took over. Over time, see exactly which set, rep range, and fatigue level triggers compensations.
πΎ
Saved in Your Browser
All data is stored in your browser's local cache. Nothing is sent to any server. Export JSON anytime to back up or transfer devices.
How it works: Your workout data is stored in your browser's localStorage, tied to your login. Each user gets their own private log. Clearing your browser data will erase it β use Export to save backups. Learn more about MNN β
Quick guide:
1. Pick exercise, reps Γ weight, RPE
2. Select a movement pattern
3. Tap the muscles that fired β the nerves auto-fill!
4. Adjust activation levels (+/++/+++)
5. Flag any compensations if the wrong muscle dominated
6. Hit Save Set
Don't know what to pick? Start with just the exercise and muscles. The Reference tab has the full nerve map.
RPE = Rate of Perceived Exertion
How hard the set felt, based on how many reps you had left: 6 = Could do 4 more
8 = Could do 2 more
10 = Absolute max Compensations usually appear at RPE 8+. Tracking this helps you see when form breaks.
MNN Notation Builder
Compact
Movement Pattern (optional)
Muscles (optional)β nerves auto-map when you select
Activation & Nerve Map
Nerves (auto-filled)β override if needed
Compensation (optional)β if wrong muscle dominated
⢠𦴠Joint Position (optional β for rotation/angle tracking)
Set joint angles for this set. Defines the body position precisely β useful for tracking what angle works best, and required for future machine control.
RPE measures how hard a set felt, based on how many reps you could still have done: 6 Easy β could do 4 more reps 7 Moderate β could do 3 more 8 Hard β could do 2 more 9 Very hard β could do 1 more 10 Max effort β nothing left
Why track it? Compensations usually appear at RPE 8+. Your sternal pec might fire correctly at RPE 7, but by RPE 9 the front delt takes over because the pec pathway is fatigued. Logging RPE alongside MNN notation shows at what effort level your form breaks.
Activation Levels
+ Low β stabilizer or light assist ++ Moderate β synergist / secondary mover +++ High β prime mover
Common Compensations
[Comp:Dlt.A for Pec.S] Front delt takes over bench [Comp:Trp.U for Dlt.L] Shrugging on lateral raise [Comp:Bic for Lat] Biceps take over rows [Comp:Ers for Glu.Mx] Low back takes over deadlift [Comp:Trp.U for Trp.L] Upper trap compensating lower
π§ Nerve Status Check-In
Flag which spinal levels feel off today. Muscles served by those roots get a β dot in the builder so you can see whatβs connected.
Example: Flag C5βC6 and muscles served by C5βC6 (deltoids via Axillary, biceps via Musculocutaneous) are highlighted. Muscles on other roots (triceps via Radial at C7βC8, sternal pec via Medial Pectoral at C8βT1) are not flagged.
Useful for understanding which muscles share nerve roots, planning around a tweaky day, or just learning the map. Your history logs which levels were flagged alongside your sets β so you build context over time.
𦴠Joint Position Tags
Define body position per joint. Only non-zero axes appear in notation.
Format:[Pos:Side.Joint(Axis:value,...)]
[Pos:L.Sh(IR:25,Flex:90)] Left shoulder, 25Β° IR, 90Β° flexion [Pos:R.El(Flex:15,Pro:45)] Right elbow, 15Β° flexion, 45Β° pronation [Pos:Bi.Hip(Flex:90)] Both hips at 90Β° (seated) [Pos:Sp(Rot:15)] Spine rotated 15Β°
Joints: Sh (Shoulder), El (Elbow), Wr (Wrist), Hip, Kn (Knee), Ank (Ankle), Sp (Spine), Scap (Scapula) Sides: L (Left), R (Right), Bi (Bilateral) Why: Tracks exactly which angle produces clean activation vs compensation. Essential for machine control β a cable rig or exoskeleton needs joint angles to reproduce a position.
π― Resistance Vector Tags
Describe the resistance source direction and setup.
Format:[Vec:H:height,A:angle,Src:source]
[Vec:H:Mid,Src:Cable] Cable at mid height [Vec:H:Floor,A:45Β°,Src:Cable] Low cable, 45Β° to the side [Vec:H:Over,A:0Β°,Src:Cable] Overhead cable, straight ahead [Vec:Src:Gravity] Free weight (gravity only)
Heights: Floor, Low, Mid, High, Overhead Angle: 0Β° = straight ahead, +/- for side angle Sources: Cable, Band, Gravity, Machine, Manual Why: Changes the force line. Same muscle, same joint angle, different cable height = different activation pattern. Machines need this to set pulley position.
π Prior Art & Related Standards
MNN is a notation for human movement β not just exercise. The same MNN string works across three domains: exercise & rehab, virtual world avatars, and remote control / robotics. Write once, use everywhere.
Why doesnβt a unified notation already exist? Every field evolved independently β different decades, different problems, different vocabularies. The silos werenβt necessarily planned, but theyβre real: your movement data doesnβt travel with you between the clinic, the lab, the gym, or the game engine. MNN breaks that cycle: plain text, no proprietary software, no license to read your own movement data.
ISB Joint Coordinate System (Wu et al., 2002/2005) β Biomechanics standard for joint rotations via Euler angles. Research convention, not a compact notation. MNNβs [Pos:] tag is ISB-compatible.
C3D / BVH / OpenSim β Motion capture file formats. Binary sensor data, not human-authored. No muscle/nerve layer.
SENIAM / ISEK β EMG standards. Voltage waveforms (%MVC), no standardized muscle symbols, no nerve mapping. MNNβs [Con:] tag fills this gap.
ACSM FITT / NSCA β Exercise dose (setsΓrepsΓload). Zero info on joint angles, nerve involvement, or compensation. MNN complements these.
Labanotation (Laban, 1920s) β Dance choreography notation. No concept of nerve firing, muscle contraction, or resistance vector.
Your workout data is saved in your browser's localStorage under your login. Nothing is sent to any server. Data persists between visits but is tied to this browser. Use Export JSON to back up or transfer to another device. Clearing browser data will permanently delete your logs.
Custom plan built around DDD (5 degenerate discs: cervical, thoracic, lumbar) + arthritis in shoulders, clavicles, and sternum. Every pec contraction pulls on arthritic bone at both ends. The goal: isolate pec heads through their separate nerve pathways, minimize joint compression, and get anti-rotation core work from unilateral movements.
π§ The Five-Layer Equation
Every set involves five variables. Standard logs track one (load). MNN tracks two (pathway + compensation). This plan adds the remaining three.
1. NerveIs this pathway flared today? β Nerve Status Check-In2. MuscleIs the target muscle the prime mover? β Compensation tracking3. BoneIs the load tolerable at arthritic attachment points? β Weight selection4. JointIs the angle compressive or tensile at the arthritic surface? β IR angle, fly vs press5. CoreAm I getting spinal stabilizer work? β Unilateral selection
πͺ Pec Isolation: Two Muscles, Two Nerves
The sternal head and clavicular head are on different nerves from different spinal roots. They can be trained independently because the brain can route to one without the other.
Arthritis note: Pec.S originates on arthritic sternum. Pec.C originates on arthritic clavicle. Both insert through arthritic shoulder. Force magnitude at origin matters as much as nerve pathway. Low weight + clean activation > heavy weight + compression.
β Best Exercises β Pec.S (Sternal Head)
Target: MedPec nerve (C8βT1). Horizontal adduction. Minimal delt involvement. Tension over compression.
π₯ Single-Arm Cable Fly β Mid-Chest Height + 20β25Β° IR
Cleanest Pec.S isolation. Constant cable tension, no pressing = front delt and tri nearly silent. IR clears subacromial space (no grinding). Unilateral = anti-rotation core work (Trans.Ab, obliques via intercostals T7βL1) for free. Tension-based loading is kinder to arthritic sternum than compressive pressing.
π₯ Single-Arm Cable Chest Press β 20β25Β° IR
Your discovery. IR shifts greater tuberosity away from acromion, biases sternal fibers. Pressing adds triceps (Rad, C6βC8) as synergist. Unilateral for core. Keep weight moderate β pressing compresses the shoulder joint more than fly does.
Same horizontal adduction as cable fly but gravity-loaded. Minimal delt/tri contribution. Single-arm for core.
{Pull.H} [Con:Pec.S+++, Pec.C+] β MedPec/LatPec
β οΈ Decline Cable Press β 15Β° decline + IR
Decline shifts force vector toward sternal fibers, reduces delt contribution. Good pathway but pressing = more shoulder compression. Watch arthritic shoulder tolerance. Use when shoulder joints feel okay.
Target: LatPec nerve (C5βC7). Shoulder flexion + adduction from low position. Caution: C5βC7 overlaps with flare-prone cervical roots. Skip Pec.C work entirely on days when C5βC6 or C6βC7 is flagged. The clavicular origin also pulls on arthritic clavicle β keep loads light.
π₯ Single-Arm Low-to-High Cable Fly
Cable at bottom, sweep upward across body. Exact fiber direction of clavicular head. Very little delt if you stay in adduction plane. Unilateral for core. Low weight to spare clavicle attachment.
Past 30Β° the anterior delt dominates. At 30Β° the clavicular fibers are in strongest position. But incline increases pull on arthritic clavicle. Skip if clavicular joints are bad that day.
This is Stuart McGillβs core stiffness principle: the muscles around your degenerate discs co-contract to create a hydraulic splint. Intra-abdominal pressure goes up, disc stress goes down. You get this without axially loading the spine the way squats or deadlifts would.
Every single-arm cable fly or press is a plank you didnβt have to do.
π Decision Tree: What to Train Today
Step 1: Nerve Check-In
ββ C5βC6 or C6βC7 flared? β Skip Pec.C, skip overhead. Focus Pec.S via MedPec (C8βT1)
ββ C8βT1 flared? β Skip Pec.S. Consider light Pec.C via LatPec (C5βC7) if cervical is clear
ββ Nothing flared? β Both heads available
Step 2: Joint Check
ββ Shoulders grinding? β Fly only (tension, not compression). Add IR. Drop weight.
ββ Sternum sore? β Reduce Pec.S load. Sternal origin under tension.
ββ Clavicle sore? β Skip Pec.C. Clavicular origin under tension.
ββ Joints quiet? β Can include cable press alongside fly
Step 3: Exercise Selection
ββ Always unilateral (core work)
ββ Always IR 20β25Β° (subacromial clearance)
ββ Fly before press (tension before compression)
ββ Rehab weight range (3β15 lbs) if joints are hot, moderate (20β45) if clear
π Notes to Self
Flies > presses for arthritic shoulders (tension vs compression). C8βT1 pathway is usually your safest bet β itβs below the cervical flare zone. Pec.C via C5βC7 overlaps the danger zone, so treat it as conditional. Weight at arthritic attachment matters as much as nerve routing. The five layers arenβt optional β check all five before picking an exercise. Single arm everything.
Privacy & Terms
π Privacy Policy
BodSpas MNN Workout Log stores all data locally in your browserβs localStorage. No data is sent to any server. No cookies, no analytics, no tracking. Your workout logs, account credentials, and nerve status data remain entirely on your device.
If you clear your browser data, your logs are permanently deleted. Use the Export JSON feature to create backups. Imported data stays local.
The AIUNITES webring links to other sites in the network. Each site has its own privacy practices. Navigating to another site leaves this appβs scope.
π Terms of Use
This tool is for personal workout tracking. It is not a medical device and does not provide medical advice, diagnosis, or treatment.
MNN (Muscular Neuro Notation) maps muscles to nerves and spinal roots based on standard anatomy, simplified for practical gym use. The Nerve Status Check-In highlights muscles by root level for awareness. Neither feature is intended for clinical diagnosis.
You are responsible for your own training decisions. BodSpas, AIUNITES, and the creators of this tool assume no liability for injury or adverse outcomes.