β—† AIUNITES | AIZines πŸ’ͺ BodSpas VoiceStry AIByJob VideoBate 🌌 COSMOS
Universal Movement Notation

Any movement, anywhere β€”
made visible

UMN is a plain-text notation system for human and non-human movement. InThisWorld uses it as a live demonstration environment β€” the avatar you see walking, sitting, or waving is the notation string being executed in real time.

End users who see the data directly: a bodybuilder reviewing muscle activation logs, a vocalist checking resonance placement, an athlete tracking compensation patterns.
Practitioners who read it on behalf of someone: a physical therapist documenting a patient’s gait, a trainer logging form cues, a nurse recording exercise compliance. The patient may see it too β€” or may not.
Creators and builders: world designers scripting NPC behavior, animators authoring poses, developers building movement-aware apps.
MNN Β· Body FNN Β· Face VMN Β· Vehicle VRN Β· Voice AGENT Β· NPC
@MOV()Movement pattern
@ACT()Muscle activation
@FNN()Facial state
@VMN()Vehicle class
@RES()Voice resonance
@AGENT()Agent identity
@BEH()AI behavior
● MNN Β· Body

Body Movement States

MNN strings for common movement patterns. A physical therapist documenting a patient's gait uses the same notation as an avatar controller. The virtual world makes it visible β€” the string is identical in a clinic log, a game engine, or a cable rig.

Idle Stance
Avatar standing at rest. Core lightly engaged for postural stability.
MNN
@MOV(Idle) @ACT(TrA:1, Ers:1) >> Intercost/DorsRami
Walking
Natural forward gait. Glutes and quads alternate, gastrocnemius push-off.
MNN
@MOV(Walk) @ACT(Glu.Mx:2, Quad.RF:2, Gas:1) >> InfGlu/Fem/Tib
Running
High-effort locomotion. Glutes max + quads at peak, hip flexors engaged.
MNN
@MOV(Run) @ACT(Glu.Mx:3, Quad.RF:3, HpFl:2, Gas:2) >> InfGlu/Fem/Tib
Flying
Avatar fly mode. Shoulder girdle stabilized, core braced for horizontal posture.
MNN
@MOV(Fly) @ACT(Trp.L:2, Ser:2, TrA:2) >> CNXI/LTh/Intercost
@JNT(Bi.Sh:Flex=30,Abd=20)
Seated β€” Chair
Standard seated posture. Hip flexors + lumbar extensors holding position.
MNN
@MOV(Sit) @ACT(HpFl:2, Ers:1, TrA:1) >> Fem/DorsRami
@JNT(Bi.Hip:Flex=90 Bi.Kn:Flex=90)
Seated β€” Floor (Cross-legged)
Ground-level sit. Hip external rotation, adductors relaxed, core upright.
MNN
@MOV(Sit.Floor) @ACT(Pir:2, Ers:1, TrA:1) >> Sci.T/DorsRami
@JNT(Bi.Hip:Flex=90,ER=45)
Swimming
Avatar swim mode. Lat dominant, shoulder rotation, core anti-extension.
MNN
@MOV(Swim) @ACT(Lat:2, Pec.S:2, TrA:2, Obl.E:1) >> ThDors/MedPec
Dancing
Rhythmic full-body movement. Core rotation dominant, arms free.
MNN
@MOV(Dance) @ACT(Obl.E:2, TrA:1, Glu.Md:1) >> Intercost/SupGlu
● MNN + FNN + VRN Β· Social

Social Interactions & Expressions

Compound strings encoding body, face, and voice together β€” a complete behavioral state at one moment. Useful anywhere an expression must be precisely reproduced: actor coaching, NPC scripting, clinical expression assessment, or vocal training feedback.

Greeting β€” Wave + Smile
Right arm raised, Duchenne smile, forward posture. Full greeting scene.
Compound
@MOV(Wave) @ACT(Dlt.A:2, Dlt.L:1, Tri:1) >> Axil/Rad
@JNT(R.Sh:Flex=100,Abd=60)
@FNN(Zyg.Mj:3, Orb.Oc.O:2) >> CNVII/Zyg
MNN body state + FNN facial state = one complete greeting snapshot
Active Conversation
Standing, speaking clearly, attentive expression. Vocal state included.
Compound
@MOV(Idle) @ACT(TrA:1)
@FNN(Orb.Or:1, Zyg.Mj:1) >> CNVII
@RES(Ch:2, Or:1) @PLC(A) @VOC(Fl) @BR(Sp2)
MNN body + FNN face + VRN voice = full conversational avatar state
Laughing Together
Full laugh expression with body lean, vocal burst. Social energy peak.
Compound
@MOV(Idle) @ACT(RA.U:2, Obl.E:2)
@JNT(Sp.L:Flex=15)
@EXPR(Laugh) @FNN(Zyg.Mj:4, Orb.Oc.O:3, Dep.Lab:2)
@RES(Ch:3, H:2) @VOC(Fl) @BR(Sp3)
Bowing / Respectful Greeting
Forward spinal flexion, neutral face, no vocalization. Cultural bow gesture.
Compound
@MOV(Bow) @ACT(Ers:2, RA.U:1)
@JNT(Sp.L:Flex=35, Sp.C:Flex=20)
@FNN(Zyg.Mj:1, Orb.Or:1) >> CNVII
Singing β€” Opera Projection
Standing tall, full resonance stack, all chambers open. Maximum vocal presence.
VRN
@MOV(Idle) @ACT(Dia:3, TrA:2, Ers:1)
@FNN(Zyg.Mj:2, Orb.Or:2)
@RES(H:3, Ch:3, Zy:3, Ma:3) @PLC(F) @VOC(Fl) @BR(Sp5)
Dancing β€” Euphoric
Free movement, genuine smile, head voice hum. Pure joy state.
Compound
@MOV(Dance) @ACT(Obl.E:2, Glu.Md:2)
@EXPR(Laugh) @FNN(Zyg.Mj:3, Orb.Oc.O:3)
@RES(H:2, Zy:2) @VOC(Hd) @BR(Sp2)
● VMN Β· Vehicle + LSL Bridge

Vehicle States

VMN strings for vehicle physics states. The virtual environment makes them visible, but the strings themselves are platform-neutral β€” they map directly to the LSL vehicle physics API for Second Life / OpenSim, and could equally drive a simulator or documentation tool.

Car β€” Street Cruise
Ground vehicle at moderate urban speed, gentle left curve.
VMN
@VMN(Car) @ATT(Rol=4,Yaw=270)
@VEL(Fwd=14) @CTRL(Throt=0.7,Steer=-20)
@MODE(Cruise)
⌁ LSL Translation
llSetVehicleType(VEHICLE_TYPE_CAR);
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <14,0,0>);
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 1.0);
llSetVehicleFloatParam(VEHICLE_ANGULAR_MOTOR_DIRECTION, 0.35);
llSetVehicleFlags(VEHICLE_FLAG_NO_DEFLECTION_UP);
llSetVehicleFlags(VEHICLE_FLAG_LIMIT_ROLL_ONLY);
Boat β€” Coastal Sail
Sailing vessel heeled to port, beam reach, 7 knots.
VMN
@VMN(Sea) @ATT(Rol=-12,Yaw=135)
@VEL(Fwd=7) @CTRL(Throt=0.4,Rudd=-8)
@MODE(Cruise)
⌁ LSL Translation
llSetVehicleType(VEHICLE_TYPE_BOAT);
llSetVehicleRotationParam(VEHICLE_REFERENCE_FRAME,
    llEuler2Rot(<0.0, -12.0, 135.0> * DEG_TO_RAD));
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <7,0,0>);
llSetVehicleFloatParam(VEHICLE_BUOYANCY, 1.0);
llSetVehicleFlags(VEHICLE_FLAG_REACT_TO_WIND);
Plane β€” Final Approach
Fixed-wing aircraft descending to land. Gear down, flaps, low throttle.
VMN
@VMN(Air) @ATT(Pit=-3,Rol=0,Yaw=090)
@VEL(Fwd=62,Vert=-2) @ALT(m=200)
@CTRL(Throt=0.3) @MODE(Approach)
⌁ LSL Translation
llSetVehicleType(VEHICLE_TYPE_AIRPLANE);
llSetVehicleRotationParam(VEHICLE_REFERENCE_FRAME,
    llEuler2Rot(<-3.0, 0.0, 90.0> * DEG_TO_RAD));
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <62, 0, -2>);
llSetVehicleFloatParam(VEHICLE_LINEAR_MOTOR_TIMESCALE, 2.4);
Helicopter β€” City Hover
Heli stationary above a city region at 80m. Collective holding altitude.
VMN
@VMN(Heli) @ATT(Pit=0,Rol=0,Yaw=000)
@VEL(Fwd=0,Vert=0) @ALT(m=80)
@CTRL(Throt=0.68,Coll=0.68) @MODE(Hover)
⌁ LSL Translation
llSetVehicleType(VEHICLE_TYPE_AIRPLANE);
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <0,0,0>);
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9);
llSetVehicleFloatParam(VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 0.5);
// Custom rotor: llApplyImpulse via rotor script
Submarine β€” Deep Patrol
Underwater vessel at 40m depth, westward heading, slow descent.
VMN
@VMN(Sub) @ATT(Pit=-6,Yaw=270)
@VEL(Fwd=4,Vert=-0.5)
@ALT(m=-40) @CTRL(Throt=0.4,Buoy=0.35)
@MODE(Cruise)
⌁ LSL Translation
llSetVehicleType(VEHICLE_TYPE_BOAT);
llSetVehicleFloatParam(VEHICLE_BUOYANCY, 0.35);
llSetVehicleVectorParam(VEHICLE_LINEAR_MOTOR_DIRECTION, <4, 0, -0.5>);
llSetVehicleRotationParam(VEHICLE_REFERENCE_FRAME,
    llEuler2Rot(<-6.0, 0.0, 270.0> * DEG_TO_RAD));
Seaplane β€” Water Landing (Morph)
Air→Sea morphing vehicle at 70% transition. Touching down on water.
Morph
@VMN(Multi:Air+Sea) @PROGRESS(0.70)
@MODE(Transition:AirToSea)
@ATT(Pit=-5,Rol=0,Yaw=090)
@VEL(Fwd=38,Vert=-1.5)
⌁ LSL Translation (morphing)
float p = 0.70;
llSetVehicleFloatParam(VEHICLE_LINEAR_DEFLECTION_EFFICIENCY,
    0.5 * (1.0 - p));
llSetVehicleFloatParam(VEHICLE_BUOYANCY, p * 1.0);
llSetVehicleFloatParam(VEHICLE_LINEAR_FRICTION_TIMESCALE,
    4.0 + (6.0 * p));
if (p >= 0.95) llSetVehicleType(VEHICLE_TYPE_BOAT);
● MNN + FNN + VMN Β· Scene

Inhabited Vehicles β€” Body + Vehicle + Face

The notation has no separate layer for β€œsomething riding something else” β€” you just compose the protocols. A physiotherapist documenting posture during driving, a simulator instructor logging pilot position under load, or a game designer scripting a cockpit scene all use the same string format.

Pilot β€” Banking Left
Small aircraft in a 25Β° left bank. Pilot torso compensating, concentrated face.
Full Scene
@VMN(Air) @ATT(Pit=3,Rol=-25,Yaw=270) @VEL(Fwd=88)
@MODE(Cruise)
@MOV(Sit) @ACT(Trap:1)
@JNT(Sp.T:Lat=8, Sp.C:Rot=-10)
@FNN(Corr:1, Orb.Oc.O:2)
Aircraft state + pilot postural compensation + facial concentration β€” one string
Driver β€” Hard Cornering
Car at speed through a tight corner. Driver leaning into the turn, gripping.
Full Scene
@VMN(Car) @VEL(Fwd=22)
@CTRL(Throt=0.85,Steer=-35)
@MODE(Cruise)
@MOV(Sit) @ACT(Obl.E:2, Trap:2, Bic:1)
@JNT(Sp.T:Lat=-12)
@FNN(Corr:2, Orb.Oc.O:2)
Sailor β€” Beating Upwind
Sailing yacht heeled hard. Crew hiking out against the boat's lean.
Full Scene
@VMN(Sea) @ATT(Rol=-28,Yaw=045)
@VEL(Fwd=6) @MODE(Cruise)
@MOV(Stab) @ACT(Obl.E:3, Lat:2, Ers:2)
@JNT(Sp.L:Lat=28)
@FNN(Corr:2, Plat:1)
Spacecraft Crew β€” Zero-G
Avatar floating in spacecraft at orbital velocity. No gravity, relaxed posture.
Full Scene
@VMN(Space) @ATT(Pit=0,Yaw=090)
@VEL(Fwd=180) @MODE(Orbit)
@MOV(Float) @ACT(TrA:1)
@JNT(Bi.Hip:Flex=30 Bi.Kn:Flex=20)
@FNN(Zyg.Mj:1, Front:1)
● AGENT + BEH · NPCs

NPCs, Pets & Companions

In virtual worlds, NPCs are the use case. In physical rehab, the trainer watches while the patient moves β€” the notation captures both the intended behavior and the actual body state. The same structure applies: an identifier, an intended state (BEH or care plan), and the actual movement state (MNN/FNN).

@AGENT(id, type, species, role) = who Β Β·Β  @BEH(state, target, radius) = AI goal Β Β·Β  MNN = current body state Β Β·Β  FNN = current face state
Pet Cat — Following Player
NPC cat trotting behind its owner. The species field in @AGENT tells the renderer to use a quadruped rig. The MNN patterns are the same.
AGENT
@AGENT(id=Mittens,type=Pet,species=Cat)
@BEH(Follow:Player1,Radius=1.5m)
@MOV(Walk) @ACT(Ers:1) >> DorsRami
@FNN(Orb.Oc.O:2)
@AGENT = who  →  @BEH = AI goal  →  MNN+FNN = current state at this moment
Companion NPC — Idle Chat
Humanoid companion standing and speaking. Full body, face, and voice state in one string.
AGENT
@AGENT(id=Aria,type=NPC,role=Companion)
@BEH(Idle)
@MOV(Idle) @ACT(TrA:1)
@FNN(Zyg.Mj:2, Orb.Oc.O:1) >> CNVII
@RES(Ch:2, Or:1) @PLC(A) @VOC(Fl) @BR(Sp2)
Guard NPC — Patrol Route
Guard walking a 10m patrol loop. Alert posture, brow slightly furrowed. BEH encodes the patrol radius.
AGENT
@AGENT(id=Guard1,type=NPC,role=Guard)
@BEH(Patrol,Radius=10m)
@MOV(Walk) @ACT(Trp.U:1, Ers:1)
@FNN(Corr:1) >> CNVII/Temp
Dog — Excited Greeting
Dog running toward player with a happy expression. High-energy gait, open mouth, wide eyes.
AGENT
@AGENT(id=Rex,type=Pet,species=Dog)
@BEH(Greet:Player1)
@MOV(Run) @ACT(Glu.Mx:3, Quad.RF:3, Gas:2)
@FNN(Zyg.Mj:3, Orb.Oc.O:2, Dep.Lab:1)
Merchant NPC — Seated at Stall
Shop keeper sitting idle. Relaxed posture, subtle smile. Classic NPC configuration.
AGENT
@AGENT(id=Shopkeeper,type=NPC,role=Merchant)
@BEH(Idle)
@MOV(Sit) @ACT(HpFl:1, Ers:1)
@JNT(Bi.Hip:Flex=90 Bi.Kn:Flex=90)
@FNN(Zyg.Mj:1)
Dragon — Perched Idle
Creature NPC at rest. Same notation system as all others β€” species drives the renderer, not the string.
AGENT
@AGENT(id=Drake,type=Creature,species=Dragon)
@BEH(Idle)
@MOV(Sit.Floor) @ACT(Ers:2, TrA:1)
@FNN(Orb.Oc.O:2)
● Multi-Agent

Full Scene β€” Multiple Agents

Multiple subjects in one notation snapshot. In a virtual world this is players, NPCs, and pets. In a clinical setting it could be a patient and a physical therapist. In a training session, an athlete and a coach. The notation is the same in all cases.

@ENS(Preset:MidSummerNoon)

// Player avatar
@AGENT(id=Player1,type=Avatar)
@MOV(Walk) @ACT(Glu.Mx:2, Quad.RF:2)
@FNN(Zyg.Mj:2)

// Companion NPC following
@AGENT(id=Aria,type=NPC,role=Companion) @BEH(Follow:Player1)
@MOV(Walk) @FNN(Zyg.Mj:1, Orb.Oc.O:1)

// Pet dog at 2m
@AGENT(id=Rex,type=Pet,species=Dog) @BEH(Follow:Player1,Radius=2m)
@MOV(Walk) @ACT(Glu.Mx:1)
Animal notation: Cats, dogs, horses, dragons all use the same MNN joint symbols as bipeds. The species= field in @AGENT() tells the rendering engine which rig to use β€” quadruped, avian, or custom. The notation string doesn't change; the renderer interprets it. This means one notation system covers all character types in one virtual world.

Build your own UMN strings

The UMN Studio lets you construct MNN, FNN, VMN, VRN and AGENT strings interactively β€” including NPC characters, pets, and companions.

β—† Open UMN Studio