Plugins
Connect Kiosk to Blender, Cinema 4D, Maya, and Houdini.
How Plugins Work
Kiosk plugins create a direct bridge between your asset library and your 3D software. The communication happens through a watch folder on your local machine — no internet, no cloud, no ports to configure.
To start a live session:
- Install the plugin via App Menu → Plugin Manager.
- Open the Kiosk panel inside your DCC app.
- Click Launch Kiosk in the panel — this establishes the connection.
- A green dot appears in Kiosk’s top-right corner when a session is active.
From this point, clicking any asset in the DCC panel exports it straight to your scene.
Integration
Blender
- Open Kiosk → App Menu → Plugin Manager
- Select Blender and click Install
- Browse to your Blender installation directory
- Kiosk copies the addon files automatically
Setup: In Blender, go to Edit → Preferences → Add-ons and enable Kiosk for Blender. The Kiosk panel appears in the N-panel (press N).
Maya
- Open Kiosk → App Menu → Plugin Manager
- Select Maya and click Install
- Browse to your Maya installation directory
- Kiosk copies the plugin files to your Maya scripts directory
Setup: Run the setup script. This adds a Kiosk shelf in Maya — click the shelf button to launch Kiosk from within Maya.
Houdini
- Open Kiosk → App Menu → Plugin Manager
- Select Houdini and click Install
- Browse to your Houdini user preferences directory (e.g.,
C:\Users\<user>\Documents\houdiniXX.X\) - Restart Houdini
Setup: A Kiosk shelf is added to Houdini after install. You can also launch Kiosk via the Tab menu in any network editor.
Supported renderers: Redshift, Arnold, Karma, RenderMan
Cinema 4D
- Open Kiosk → App Menu → Plugin Manager
- Select Cinema 4D and click Install
- Browse to your Cinema 4D installation directory
- Kiosk copies the plugin files (
.pypformat) to your C4D plugins folder
Setup: Restart Cinema 4D. The Kiosk panel is available via Plugins → Kiosk Library.
Supported renderers: Octane, Redshift
Custom Commands
Explained
When you export an asset, Kiosk runs a command stack — an ordered list of functions that execute inside your DCC app. Each function receives a tile_info dictionary with everything Kiosk knows about the selected file.
How to create your own commands:
- Open App Menu → Plugin Manager.
- Select a DCC and click Edit Commands for a category.
- Click the New Script button — Kiosk creates a new Python script pre-filled with example code.
- Adjust the script to your needs. It will appear in the commands list for that DCC immediately.
A comment on the line directly above the function definition is shown as its tooltip in the Kiosk UI.
The tile_info dictionary contains:
| Key | Value |
|---|---|
file_path | Full path to the asset file |
file_name | Filename with extension |
source_name | Name of the source this file belongs to |
category_name | Name of the category (e.g., assets, textures) |
tags | List of subfolder names |
render_engine | Renderer selected in Plugin Manager (e.g., Arnold, Redshift) |
To see every available key for a specific file, right-click it and choose Development → Debug File Info.
Built-in commands (always available, start with kiosk_):
| Command | Description |
|---|---|
kiosk_import_asset | Import the file into the scene |
kiosk_create_material | Create a renderer-specific material from detected PBR textures |
kiosk_import_hdri | Load an HDRI environment |
kiosk_create_area_light | Add an area light |
kiosk_reveal_in_explorer | Open the file location in Explorer |
Examples
Basic custom command — print file info (any DCC):
# Print asset info to the console
def kiosk_print_info(tile_info):
file_path = tile_info.get('file_path')
source = tile_info.get('source_name')
print(f"Exporting: {file_path} from source '{source}'")
return tile_info
Blender — import FBX and center at origin:
# Import FBX and move to world origin
def kiosk_import_fbx_centered(tile_info):
import bpy
bpy.ops.import_scene.fbx(filepath=tile_info.get('file_path'))
bpy.context.active_object.location = (0, 0, 0)
return tile_info
Blender — create image texture material:
# Create a Principled BSDF material with this texture
def kiosk_create_texture_material(tile_info):
import bpy
path = tile_info.get('file_path')
name = tile_info.get('file_name')
mat = bpy.data.materials.new(name=name)
mat.use_nodes = True
bsdf = mat.node_tree.nodes["Principled BSDF"]
tex = mat.node_tree.nodes.new("ShaderNodeTexImage")
tex.image = bpy.data.images.load(path)
mat.node_tree.links.new(tex.outputs["Color"], bsdf.inputs["Base Color"])
return tile_info
Cinema 4D — merge scene file:
# Merge the selected scene into the current document
def kiosk_merge_scene(tile_info):
import c4d
c4d.documents.MergeDocument(
doc,
tile_info.get('file_path'),
c4d.SCENEFILTER_OBJECTS | c4d.SCENEFILTER_MATERIALS
)
c4d.EventAdd()
return tile_info
Maya — import as reference:
# Import file as a Maya reference
def kiosk_import_reference(tile_info):
import maya.cmds as cmds
path = tile_info.get('file_path')
name = tile_info.get('file_name').split('.')[0]
cmds.file(path, reference=True, namespace=name)
return tile_info
Houdini — load geometry into a new node:
# Create a Geo node and load the file into a File SOP
def kiosk_load_geometry(tile_info):
import hou
name = tile_info.get('file_name').split('.')[0]
geo_node = hou.node("/obj").createNode("geo", name)
file_sop = geo_node.createNode("file")
file_sop.parm("file").set(tile_info.get('file_path'))
file_sop.setDisplayFlag(True)
return tile_info
Using the render engine from tile_info:
# Create a material based on the renderer selected in Kiosk
def kiosk_smart_material(tile_info):
import maya.cmds as cmds
engine = tile_info.get('render_engine', 'Arnold')
name = tile_info.get('file_name').split('.')[0]
if engine == 'Arnold':
cmds.shadingNode('aiStandardSurface', asShader=True, name=f'{name}_mtl')
elif engine == 'VRay':
cmds.shadingNode('VRayMtl', asShader=True, name=f'{name}_mtl')
return tile_info