Download OpenAPI specification:
API for controlling the Homunculus desktop pet.
Create and display a new VRM 3D model instance in the application with optional transform settings.
asset required | string (ModAssetId) Asset ID for a mod. (e.g. |
object (TransformArgs) |
{- "asset": "basic::vrm.vrm",
- "transform": {
- "translation": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}, - "rotation": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1,
- "w": 0.1
}, - "scale": {
- "x": 0.1,
- "y": 0.1,
- "z": 0.1
}
}
}
0
Update the state/mode of the specified VRM model to control its behavior.
entity_id required | integer <uint64> (Entity) The unique identifier of the VRM model entity |
state required | string The state/mode to set for the VRM model |
{- "state": "dancing"
}
Establish a Server-Sent Events stream to receive real-time events from the VRM model.
Available events:
drag-start
: Fired when a drag startsdrag
: Fired when a drag is in progress drag-end
: Fired when a drag endspointer-press
: Fired when a pointer is pressedpointer-click
: Fired when a click occurspointer-move
: Fired when a pointer movespointer-release
: Fired when a pointer is releasedpointer-over
: Fired when a pointer is over the VRMpointer-out
: Fired when a pointer is out of the VRMpointer-cancel
: Fired when a pointer action is canceledstate-change
: Fired when the VRM state changesentity_id required | integer <uint64> (Entity) The unique identifier of the VRM model entity |
Get or create a VRMA animation entity for the specified VRM model and animation source.
entity_id required | integer <uint64> (Entity) The unique identifier of the VRM model entity |
source required | string The VRMA animation source path relative to the mods directory |
0
Generate speech audio using VoiceVox text-to-speech synthesis for the specified VRM model.
entity_id required | integer <uint64> (Entity) The unique identifier of the VRM model entity |
sentences required | Array of strings Array of sentences to synthesize into speech |
speaker | integer The VoiceVox speaker ID |
pause | number <float> The pause duration in seconds between sentences |
waitForCompletion | boolean If true, the method will wait for the speech to complete |
object (SubtitleOptions) |
{- "sentences": [
- "string"
], - "speaker": 0,
- "pause": 0.1,
- "waitForCompletion": true,
- "subtitle": {
- "font": "basic::vrm.vrm",
- "fontSize": 0.1,
- "color": [
- 0.1,
- 0.1,
- 0.1,
- 0.1
]
}
}
Start playing a VRMA animation on the specified VRMA entity with optional transition duration and repeat settings.
entity_id required | integer <uint64> (Entity) The unique identifier of the VRMA animation entity |
transitionSecs | number <float> Transition duration in seconds for smooth animation blending |
object (VrmaRepeat) Repeat configuration for VRMA animation playback |
{- "transitionSecs": 0.5,
- "repeat": {
- "type": "forever",
- "count": 3
}
}
Convert 3D world coordinates to 2D global viewport coordinates for positioning UI elements or interactions.
x | number <float> X coordinate in world space |
y | number <float> Y coordinate in world space |
z | number <float> Z coordinate in world space |
{- "x": 0.1,
- "y": 0.1
}
Transform global viewport coordinates back to 2D world position coordinates.
x | number <float> X coordinate in global viewport space |
y | number <float> Y coordinate in global viewport space |
{- "x": 0.1,
- "y": 0.1
}
Trigger playback of a sound effect from the specified mod asset.
source required | string (ModModuleSource) Module source identifier (e.g. |
{- "source": "basic::sound.wav"
}
Display a visual stamp effect at the specified position with customizable size, opacity, and duration.
source required | string (ModModuleSource) Module source identifier (e.g. |
x | number <float> |
y | number <float> |
width | number <float> |
height | number <float> |
alpha | number <float> |
duration | number <float> |
{- "source": "basic::sound.wav",
- "x": 0.1,
- "y": 0.1,
- "width": 0.1,
- "height": 0.1,
- "alpha": 0.1,
- "duration": 0.1
}
Send a user message to the ChatGPT API and receive a structured response including message, dialogue, and emotion data.
userMessage required | string |
object (ChatVrmRequestOptions) |
{- "userMessage": "string",
- "options": {
- "vrm": 0,
- "speaker": 0,
- "pause": 0.1,
- "waitForCompletion": true,
- "subtitle": {
- "font": "basic::vrm.vrm",
- "fontSize": 0.1,
- "color": [
- 0.1,
- 0.1,
- 0.1,
- 0.1
]
}
}
}
{- "message": "string",
- "dialogue": "string",
- "emotion": "happy"
}
Configure which ChatGPT model to use for chat interactions.
model required | string |
vrm | integer <uint64> (Entity) The unique identifier for an entity. |
{- "model": "string",
- "vrm": 0
}
Configure the system prompt that defines the GPT assistant's behavior, personality, and response style.
systemPrompt required | string |
vrm | integer <uint64> (Entity) The unique identifier for an entity. |
{- "systemPrompt": "string",
- "vrm": 0
}
Enable or disable web search functionality for the GPT assistant to access current information.
useWebSearch required | boolean |
vrm | integer <uint64> (Entity) The unique identifier for an entity. |
{- "useWebSearch": true,
- "vrm": 0
}
Configure the VoiceVox speaker ID used for text-to-speech synthesis.
id required | integer <uint32> The VoiceVox speaker ID to use for text-to-speech synthesis |
vrm | integer <uint64> (Entity) The unique identifier for an entity. |
{- "id": 0,
- "vrm": 0
}
Create and display a new webview window with specified content from a mod asset, with customizable positioning and appearance options.
asset required | string (ModAssetId) Asset ID for a mod. (e.g. |
caller | integer <uint64> (Entity) The unique identifier for an entity. |
transparent | boolean |
showToolbar | boolean |
shadow | boolean |
IVec2 (object) or object (WebviewOpenPosition) | |
object (Vec2) | |
openSound | string (ModAssetId) Asset ID for a mod. (e.g. |
closeSound | string (ModAssetId) Asset ID for a mod. (e.g. |
{- "asset": "basic::vrm.vrm",
- "caller": 0,
- "transparent": true,
- "showToolbar": true,
- "shadow": true,
- "position": {
- "x": 0,
- "y": 0
}, - "resolution": {
- "x": 0.1,
- "y": 0.1
}, - "openSound": "basic::vrm.vrm",
- "closeSound": "basic::vrm.vrm"
}
0
Retrieve metadata for all available mod menu items including thumbnails, text, and webview configurations.
[- {
- "thumbnailPath": "string",
- "text": "string",
- "webviewAssetId": "basic::vrm.vrm",
- "webviewOptions": {
- "asset": "basic::vrm.vrm",
- "caller": 0,
- "transparent": true,
- "showToolbar": true,
- "shadow": true,
- "position": {
- "x": 0,
- "y": 0
}, - "resolution": {
- "x": 0.1,
- "y": 0.1
}, - "openSound": "basic::vrm.vrm",
- "closeSound": "basic::vrm.vrm"
}
}
]
Store or update a preference value with the specified key for persistent application settings.
key required | string |
property name* additional property | any |
{ }
Run a JavaScript script from the specified mod asset for custom functionality and automation.
source required | string (ModModuleSource) Module source identifier (e.g. |
{- "source": "basic::sound.wav"
}
Configure the transparency level of the shadow panel with optional speaker and subtitle settings.
alpha required | number <float> [ 0 .. 1 ] |
speaker | integer <uint32> |
object (SubtitleOptions) |
{- "alpha": 1,
- "speaker": 0,
- "subtitle": {
- "font": "basic::vrm.vrm",
- "fontSize": 0.1,
- "color": [
- 0.1,
- 0.1,
- 0.1,
- 0.1
]
}
}
Locate an entity using its name identifier, optionally within a specific parent entity.
name required | string The name of the entity to find |
root | integer <uint64> (Entity) Optional root entity to search within |
0
Retrieve position, rotation, and scale data for the specified entity.
entity_id required | integer <uint64> (Entity) The unique identifier of the entity |
{- "translation": [
- 0.1,
- 0.1,
- 0.1
], - "rotation": [
- 0.1,
- 0.1,
- 0.1,
- 0.1
], - "scale": [
- 0.1,
- 0.1,
- 0.1
]
}
Update the position, rotation, and scale of the specified entity.
entity_id required | integer <uint64> (Entity) The unique identifier of the entity |
translation | Array of numbers <float> = 3 items [ items <float > ] Position in 3D space [x, y, z] |
rotation | Array of numbers <float> = 4 items [ items <float > ] Rotation quaternion [x, y, z, w] |
scale | Array of numbers <float> = 3 items [ items <float > ] Scale factors [x, y, z] |
{- "translation": [
- 0.1,
- 0.1,
- 0.1
], - "rotation": [
- 0.1,
- 0.1,
- 0.1,
- 0.1
], - "scale": [
- 0.1,
- 0.1,
- 0.1
]
}