File size: 1,655 Bytes
4731cee
 
c781b57
4731cee
c781b57
4731cee
c781b57
4731cee
c781b57
 
 
 
 
4731cee
 
c781b57
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
---
title: Genga Kimodo
emoji: ๐Ÿ‰
colorFrom: yellow
colorTo: pink
sdk: docker
app_port: 7860
pinned: false
license: apache-2.0
short_description: API-only Kimodo motion backend for GengaMachines.
models:
- nvidia/Kimodo-SOMA-RP-v1
- nvidia/Kimodo-SOMA-RP-v1.1
---

# Genga ร— Kimodo

API-only Hugging Face Space backing the GengaMachines webapp's `/motion`
flow. Wraps NVIDIA Kimodo-SOMA-RP-v1.1 with a thin Gradio API.

The official interactive Kimodo demo (Viser) lives at
[nvidia/Kimodo](https://huggingface.co/spaces/nvidia/Kimodo). This Space is
deliberately **not** that โ€” we expose `/gradio_api/call/kimodo_motion` so the
webapp can submit prompts + constraints and receive structured motion JSON.

## API

```
POST /gradio_api/call/kimodo_motion
Content-Type: application/json
Authorization: Bearer ${HF_TOKEN}

{ "data": [prompt, num_frames, seed, cfg, num_steps, constraints_json] }
```

Then poll `/gradio_api/call/kimodo_motion/<event_id>` for the SSE stream
(complete / error / heartbeat events).

Result envelope:

```json
{
  "status": "ok",
  "numFrames": 90,
  "fps": 30,
  "rootTranslation": [[x, y, z], ...],
  "jointRotMats":    [[ [[..3..]], ...30 ], ...90 ],
  "footContacts":    [[lh, lt, rh, rt], ...] | null,
  "summary": "..."
}
```

`jointRotMats` is row-major `[N, 30, 3, 3]` โ€” local-space SOMA joint rotations.
The webapp converts to quaternions in `SomaCharacterMesh.tsx`.

## Constraints

`constraints_json` is a JSON-stringified list. See `constraints_schema.py`.
Coordinates: Y-up, meters, character-local. Supported types: `root2d`,
`fullbody`, `left-hand`, `right-hand`, `left-foot`, `right-foot`, `end-effector`.