Skip to main content
The Model3D component displays 3D models in various formats.

Basic usage

import gradio as gr

def load_model():
    return "model.obj"

gr.Interface(
    fn=load_model,
    inputs=gr.Button("Load"),
    outputs=gr.Model3D()
).launch()

Constructor

value
str | Callable | None
default:"None"
Path or URL to 3D model file (.obj, .glb, .stl, .gltf, .splat, or .ply)
display_mode
Literal['solid', 'point_cloud', 'wireframe'] | None
default:"None"
Rendering mode:
  • "solid" - Solid object
  • "point_cloud" - Point cloud
  • "wireframe" - Wireframe view
clear_color
tuple[float, float, float, float] | None
default:"None"
Background color as RGBA tuple (values 0-1)
camera_position
tuple[int | float | None, ...] | None
default:"(None, None, None)"
Initial camera position as (alpha, beta, radius) in degrees and distance
zoom_speed
float
default:"1"
Speed of zooming. Higher values = faster zoom
pan_speed
float
default:"1"
Speed of panning. Higher values = faster pan
height
int | str | None
default:"None"
Component height

Events

  • change - Triggered when model changes
  • upload - Triggered when model is uploaded
  • edit - Triggered when model is edited
  • clear - Triggered when model is cleared

Examples

Wireframe mode

import gradio as gr

gr.Model3D(
    value="model.obj",
    display_mode="wireframe",
    clear_color=[0.2, 0.2, 0.2, 1.0]
)

Custom camera position

import gradio as gr

gr.Model3D(
    value="model.glb",
    camera_position=(30, 45, 5),  # alpha=30°, beta=45°, radius=5
    zoom_speed=2.0
)