| | import torch |
| | import cheetah |
| | import gradio as gr |
| | import os |
| |
|
| | |
| | segment = cheetah.Segment( |
| | elements=[ |
| | cheetah.Drift(length=torch.tensor(0.175)), |
| | cheetah.Quadrupole(length=torch.tensor(0.122), name="AREAMQZM1"), |
| | cheetah.Drift(length=torch.tensor(0.428)), |
| | cheetah.Quadrupole(length=torch.tensor(0.122), name="AREAMQZM2"), |
| | cheetah.Drift(length=torch.tensor(0.204)), |
| | cheetah.VerticalCorrector(length=torch.tensor(0.02), name="AREAMCVM1"), |
| | cheetah.Drift(length=torch.tensor(0.204)), |
| | cheetah.Quadrupole(length=torch.tensor(0.122), name="AREAMQZM3"), |
| | cheetah.Drift(length=torch.tensor(0.179)), |
| | cheetah.HorizontalCorrector(length=torch.tensor(0.02), name="AREAMCHM1"), |
| | cheetah.Drift(length=torch.tensor(0.45)), |
| | cheetah.Screen(name="AREABSCR1"), |
| | ] |
| | ) |
| |
|
| | |
| | mesh, _ = segment.to_mesh( |
| | cuteness={cheetah.HorizontalCorrector: 2.0, cheetah.VerticalCorrector: 2.0} |
| | ) |
| |
|
| | |
| | output_file = "ares_mesh.glb" |
| | mesh.export(file_obj=output_file, file_type="glb") |
| |
|
| | |
| | def display_3d_model(): |
| | return output_file |
| |
|
| | with gr.Blocks() as demo: |
| | gr.Markdown("# 3D Visualization of Cheetah Accelerator Segment") |
| | gr.Markdown("This app renders a 3D model of the accelerator segment defined using the Cheetah library.") |
| | gr.File(file_types=[".glb"], label="3D Model", value=output_file) |
| | gr.Model3D(value=output_file, label="3D Visualization") |
| |
|
| | |
| | demo.launch() |