This project provides a physics-based humanoid model for simulating Brazilian Jiu Jitsu (BJJ) positions and transitions in MuJoCo. It allows loading positions from the GrappleMap dataset, visualizing two players, and generating MuJoCo scenes with realistic mass, joint limits, and actuators.
Key Features:
- Converts GrappleMap positions (JSON) into MuJoCo XML (MJCF) for both players.
- Realistic skeleton hierarchy with appropriate joints, masses, and actuators.
- Ground plane, lighting, and easy CLI for loading and visualizing positions.
Statistical analysis (see parser.py) confirms the GrappleMap pose data is highly consistent:
- Limb length variation (CV) is typically <2%.
- Bilateral (left/right) symmetry is within 1%.
- Player-to-player variation in limbs is minimal.
- Fewer than 5% of positions are outliers.
This supports reliable, reproducible BJJ simulation and RL experimentation.
# Visualize a GrappleMap position (e.g., pos_61) as two physics-based humanoids
python bjj_physics_humanoid.py pos_61 --scale=0.3
# View only player 1 or 2 (useful for debugging)
python bjj_physics_humanoid.py pos_61 --player=1 --scale=0.3- GrappleMap: Original BJJ position data.
- JuiJitsu-RL: Parser and example code inspiration.
