huggsook/connect-ai-Humanoid-v5
huggsook/connect-ai/Humanoid-v5
<p align="center"> <img src="https://img.shields.io/badge/Environment-Gymnasium%20Humanoid--v5-00f0ff?style=for-the-badge&logo=openai" alt="Env"> <img src="https://img.shields.io/badge/Algorithm-PPO%20(Proximal%20Policy%20Optimization)-a855f7?style=for-the-badge" alt="PPO"> <img src="https://img.shields.io/badge/Framework-Stable--Baselines3-10b981?style=for-the-badge" alt="SB3"> <img src="https://img.shields.io/badge/Visualization-Three.js%203D%20Studio-f59e0b?style=for-the-badge" alt="3D"> </p>
๐ฌ Agent Simulation & Training Preview
<div align="center"> <video src="https://huggingface.co/huggsook/connect-ai-Humanoid-v5/resolve/main/humanoid_preview.mp4" width="100%" autoplay loop muted playsinline controls> Your browser does not support the video tag. </video> <p><em>๐ฅ 3D Humanoid-v5 PPO Bipedal Locomotion & Dynamic Balance Simulation</em></p> </div>
๐ Project Overview
`huggsook/connect-ai/Humanoid-v5`๋ Gymnasium์ ๊ณ ๋๋ 3D ๋ค๊ด์ ๋ณดํ ๋ก๋ด ํ๊ฒฝ์ธ `Humanoid-v5`์์ PPO(Proximal Policy Optimization) ์๊ณ ๋ฆฌ์ฆ์ ํตํด 17๊ฐ ๊ด์ ๋ชจํฐ๋ฅผ ์ ์ดํ์ฌ ์์ ์ ์ธ ์ง๋ฆฝ ๋ณดํ(Bipedal Locomotion)์ ํ์ตํ ๊ฐํํ์ต ํ๋ก์ ํธ์ ๋๋ค.
โจ Key Features
- 3D Real-time Physics Simulator: Three.js ๊ธฐ๋ฐ 17-DoF ๋ก๋ด ๊ด์ ๋ชจํฐ, CoM(๋ฌด๊ฒ ์ค์ฌ์ ) ์ถ์ , ๋ฐ ์ง๋ฉด ์ ์ด๋ ฅ ๋ฐ ์ธ๋(๋ฐ๊ธฐ/๋ฐ๋) ์๋ฎฌ๋ ์ด์
- Full Process Visualization: ์ค์๊ฐ ์ํผ์๋ ๋ณด์(Reward) ๊ณก์ , 10-Ep ์ด๋ ํ๊ท ์ , Critic Value Loss & Actor Policy Loss, ์ ์ฑ ์ํธ๋กํผ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง
- Neural Network Activation Inspector: 376๊ฐ ๊ฐ๊ฐ ๊ด์ธก ์ ๋ ฅ โ ์๋์ธต โ 17๊ฐ ๊ด์ ํ ํฌ ์ถ๋ ฅ ์ ํธ ์ค์๊ฐ ์๊ฐํ
- One-Click Package Export: ํ์ต๋ ๊ฐ์ค์น, ์ ๊ทํ ํต๊ณ, CSV ๋ก๊ทธ, 3D ๋ทฐํฌํธ ์คํฌ๋ฆฐ์ท ์ผ๊ด ZIP ์์ถ ๋ค์ด๋ก๋ ์ง์
โ๏ธ Hyperparameters & Training Setup
๐ How to Load and Evaluate in Python
\\\`python import gymnasium as gym from stablebaselines3 import PPO from stablebaselines3.common.vec_env import DummyVecEnv, VecNormalize
1. Create Humanoid Environment
def makeenv(): return gym.make("Humanoid-v5", rendermode="human")
env = DummyVecEnv([make_env])
env = VecNormalize.load("models/vec_normalize.pkl", env)
2. Load Model from Hugging Face Hub
model = PPO.load("ppo_humanoid.zip", env=env)
3. Test & Render
obs = env.reset()
for _ in range(1000):
action, _states = model.predict(obs, deterministic=True)
obs, rewards, dones, info = env.step(action)
if dones:
obs = env.reset()
\\\`
๐ฆ Repository Structure
\\\ . โโโ README.md # Hugging Face Model Card & Overview โโโ humanoid_preview.mp4 # Agent Walk Simulation Video โโโ index.html # Interactive 3D Web Studio (Spaces Ready) โโโ styles.css # Dark Cyberpunk Glassmorphism UI โโโ models/ โ โโโ ppo_humanoid_weights.json # Actor-Critic Network Weights โ โโโ vec_normalize_stats.json # Env Normalization Parameters โโโ logs/ โ โโโ training_metrics.csv # Full Training Trajectory (Reward/Loss) โโโ js/ โโโ humanoid_sim.js # 3D Kinematics & Physics Engine โโโ charts_manager.js # Chart.js Live Analytics Manager โโโ training_engine.js # PPO Forward & Neural Inspector โโโ export_manager.js # JSZip Package Exporter \\\
<p align="center"> <b>Developed by <a href="https://huggingface.co/huggsook">@huggsook</a> with Connect-AI Studio</b> </p>
