Render API
Ready Player Me Render API lets you create 2D images of Ready Player Me 3D avatars. It works for both full- and half-body models. It's perfect for applications like stickers or profile pictures.
For use in environments with high traffic, please let us know at [email protected].
Ready Player Me Render API allows creating 2D images of Ready Player Me avatars.
POST: https://render.readyplayer.me/render Content-type: JSON Request format:
  • model : (string, required) – Avatar 3D model URL.
  • scene : (string, required) – Name of the scene to render. Possible values: halfbody-portrait-v1, fullbody-portrait-v1
  • blendShapes : (object, optional) – Map of 3D meshes to their blend shapes. For example, the following would set mouthSmile and browInnerUp blend shapes of the avatar's head. The blend shapes need to exist on the designated meshes to be applied.
In case you're using atlased avatars, replace "Wolf3D_Head" with "Wolf3D_Avatar"
1
{
2
"Wolf3D_Head": {
3
"mouthSmile": 0.2
4
}
5
}
Copied!
  • armature : (string, optional) – Armature object name to use as a pose for a character. If not specified, the avatar will have a generic pose. Possible values: ArmatureTargetMale, ArmatureTargetFemale
Response format:
  • renders : (array) – List of output renders URLs (at least one).
Example response:
1
{
2
"renders": [
3
"https://example.com/render.png"
4
]
5
}
Copied!

Examples

Simplest request

1
{
2
"model": "https://example.com/model.glb",
3
"scene": "halfbody-portrait-v1"
4
}
Copied!

Render a half-body (VR) avatar profile picture

The following request would render an avatar in the scene halfbody-portrait-v1 and make the avatar smile in the render.
1
{
2
"model": "https://example.com/model.glb",
3
"scene": "halfbody-portrait-v1",
4
"armature": "ArmatureTargetFemale",
5
"blendShapes": {
6
"Wolf3D_Head": {
7
"mouthSmile": 0.2
8
}
9
}
10
}
Copied!
Example image result:

Render a full-body avatar profile picture

The following request would render an avatar in the scene fullbody-portrait-v1 and make the avatar smile in the render and apply a male pose.
1
{
2
"model": "https://example.com/model.glb",
3
"scene": "fullbody-portrait-v1",
4
"armature": "ArmatureTargetMale",
5
"blendShapes": {
6
"Wolf3D_Head": {
7
"mouthSmile": 0.2
8
}
9
}
10
}
Copied!
Example image result:

Client-side JavaScript Code Example

Render API is fully CORS-enabled. An example of client-side code could look like this:
1
<!doctype html>
2
<html>
3
<head>
4
<meta charset="UTF-8"/>
5
</head>
6
<body>
7
<button onclick="return render()">Render</button>
8
</body>
9
<script>
10
function render()
11
{
12
const params =
13
{
14
model: "https://example.com/model.glb",
15
scene: "fullbody-portrait-v1",
16
armature: "ArmatureTargetMale",
17
blendShapes: {}
18
}
19
const http = new XMLHttpRequest()
20
http.open("POST", "https://render.readyplayer.me/render")
21
http.setRequestHeader("Content-type", "application/json")
22
http.send(JSON.stringify(params))
23
http.onload = function()
24
{
25
// Do whatever with response
26
alert(http.responseText)
27
}
28
}
29
</script>
30
</html>
Copied!

Python Code Example

An example of Python code could look like this:
1
import requests
2
3
if __name__ == "__main__":
4
r = requests.post(
5
"https://render.readyplayer.me/render",
6
json={
7
"model": "https://example.com/model.glb",
8
"scene": "fullbody-portrait-v1",
9
"armature": "ArmatureTargetMale",
10
"blendShapes": {}
11
},
12
headers={
13
"Content-Type": "application/json",
14
}
15
16
)
17
print(r.content)
18
Copied!
Last modified 1mo ago
Copy link
Contents
Examples