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
Speed of zooming. Higher values = faster zoom
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
)