A standalone HTTP service that automatically adds humanoid bones to 3D polygon models (GLB) and outputs VRM 1.0, loosely coupled with image-3d.

Stars

14

7-day growth

No data

Forks

3

Open issues

0

License

NOASSERTION

Last updated

2026-07-27

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It provides a complete pipeline from GLB to rigged VRM with automatic rigging, pose control, and procedural motion clips, designed for easy integration into other tools and platforms.

Who it is for

  • 3D content creators who need to rig AI-generated models
  • VRM users and developers
  • Indie game developers using Godot
  • Researchers working on 3D model pipelines

Use cases

  • Rigging GLB models from image-to-3D services
  • Creating VRM avatars for VRChat or similar
  • Generating animated GLB files for game engines
  • Integrating into automated 3D asset pipelines

Strengths

  • Fully automatic rigging using bpy or Blender CLI
  • Supports VRM 1.0 output with humanoid bones
  • Rich REST API with job queue, preview, pose controls, and motion clips
  • Procedurally generated motion clips (idle, wave, bow, walk) that work on any model

Considerations

  • Requires Python 3.11 due to bpy wheel availability
  • Input must be in T-pose for accurate rigging; non-T-pose models yield lower accuracy
  • VRMA/BVH loading not yet implemented
  • Default VRM metadata license is highly restrictive (author-only, non-commercial)

README quick start

rig-service — 3Dモデル自動リグ + VRM化サービス

image-3d などで生成した3Dポリゴンモデル(GLB)に ヒューマノイドボーンを自動で付与し、ポーズデータで動かせるようにする独立サービス。

image-3d とは HTTP だけで繋がる疎結合で、コードの相互参照は無い (image-3d 側に IMAGE3D_RIGSVC_URL を設定すると「リグ/VRM化」ボタンが出る)。

設計と実装計画は docs/RIG_SERVICE_PLAN.md を参照。

現在の実装状況

フェーズ内容状態
R1-1bpy 技術スパイク完了
R1-2Tポーズ自動リグ(autorig.py)完了(実Tポーズメッシュで検証済)
R1-3FastAPI + 直列ジョブキュー + GLBダウンロード完了
R1-4Godot インポート検証完了(Godot 4.4.1 で合格)
R2VRM 1.0 出力完了(VRMC_vrm を自前生成)
R33Dプレビュー + モーション + ポーズ駆動完了(VRMA/BVH読み込みのみ未実装)
R4image-3d 統合完了(「リグ/VRM化」ボタン)

セットアップ

bpy は cp311 ホイールしか無いため Python 3.11 専用 venv が必要 (システムに 3.11 が無くても uv で sudo 不要に用意できる)。

cd rig-service
uv venv --python 3.11 .venv-rig
uv pip install --python .venv-rig/bin/python -r requirements.txt

venv をディレクトリごと移動した場合、.venv-rig/bin/ のコンソールスクリプトは shebang に旧パスが残って壊れる。./run.shpython -m pytestpython -m 経由なので影響を受けないが、bin/uvicorn 等を直接叩くなら 作り直すか shebang を書き換える。

システム Blender は不要(bpy モジュールで完結する)。 bpy が導入できない環境では Blender 4.5 LTS を入れて RIGSVC_ENGINE=blender_cli を指定すれば同じスクリプトで動作する。

起動

./run.sh                      # http://127.0.0.1:8100

使い方

ブラウザで を開き、Tポーズの立ち絵から生成した GLB を アップロードする。curl の場合:

curl -F "model=@model.glb" -F 'params={"height_m":1.6}' \
     http://127.0.0.1:8100/api/rig
# -> {"job_id": "..."}

curl "http://127.0.0.1:8100/api/rig/jobs/"
curl -O -J "http://127.0.0.1:8100/api/rig/jobs//download?format=glb"

API

メソッドパス説明
POST/api/rigmultipart: model(GLB必須)+ params JSON → {job_id}
GET/api/rig/jobsジョブ一覧
GET/api/rig/jobs/{id}状態・ボーン数・ウェイト統計・警告
GET/api/rig/jobs/{id}/download?format=glb|vrm[&motion=]リグ済み GLB / VRM 1.0(motion 指定でアニメ焼き込み)
POST/api/rig/jobs/{id}/poseポーズを適用した GLB / VRM を返す
GET/api/motions同梱モーションクリップ一覧
GET/api/motions/{name}クリップのキーフレーム
GET/api/rig/jobs/{id}/preview.png正面プレビュー(静止画)
DELETE/api/rig/jobs/{id}ジョブ削除
GET/api/healthエンジン可否・bpyバージョン

params

キー既定説明
height_m1.6出力の全高(メートル)。VRM/Godot はメートル系
up_axis"auto"入力GLBの上方向軸。"z"(image-3d 慣習)/ "y"(glTF仕様)
facing`"a

Related repositories

Similar projects matched by category, topics, and programming language.

lopopolo
Featured
lopopolo GitHub avatar

harness-engineering

Harness Engineering is a methodology for improving coding agent outputs by carefully crafting the environment around them—providing curated context, tools, and executable constraints that encode an organization’s nonfunctional requirements and cumulative lessons.

AI & Machine LearningAI Agents
2,390
slvDev
Featured
slvDev GitHub avatar

esp32-ai

A 28.9 million parameter language model runs on an $8 ESP32-S3 microcontroller entirely on-device, generating simple stories at about 9.5 tokens per second.

AI & Machine LearningLarge Language Models
1,960
littledivy
Featured
littledivy GitHub avatar

mimic

mimic captures traffic from any iOS or web app and automatically generates a Python client library that lets you call the app's API like a regular library.

AI & Machine Learning
1,482