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
}
}
}0Update 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 changes| entity_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 |
0Generate 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"
}0Retrieve 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 |
0Retrieve 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
]
}