import gradio as gr # Create a list of the .ply files you plan to upload available_models = [ "scene_one.ply", "scene_two.ply" ] def load_model(model_name): return model_name with gr.Blocks() as demo: gr.Markdown("# Opacity-Gradient Driven Density Control") gr.Markdown("Select a pre-trained scene to view the compact 3D Gaussian Splats generated by the opacity gradient method.") with gr.Row(): with gr.Column(scale=1): model_dropdown = gr.Dropdown( choices=available_models, value=available_models[0], label="Select Scene" ) with gr.Column(scale=3): # Gradio natively supports rendering .ply files here viewer = gr.Model3D( value=available_models[0], clear_color=(0, 0, 0, 0), label="3D Viewer" ) # Update the 3D viewer when a new scene is selected model_dropdown.change( fn=load_model, inputs=model_dropdown, outputs=viewer ) if __name__ == "__main__": demo.launch()