File size: 2,415 Bytes
5ea1b6f ede25fc 5ea1b6f ede25fc 5ea1b6f ede25fc 5ea1b6f ede25fc 5ea1b6f ede25fc 5ea1b6f ede25fc 5ea1b6f ede25fc 5ea1b6f 45cdafe 5ea1b6f 45cdafe 5ea1b6f 65555e4 5ea1b6f 65555e4 5ea1b6f 65555e4 5ea1b6f 65555e4 5ea1b6f 65555e4 1036858 5ea1b6f bb185d1 5ea1b6f bb185d1 5ea1b6f 4629515 5ea1b6f 4629515 5ea1b6f ede25fc 5ea1b6f ede25fc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
import gradio as gr
import pickle
# from datasets import load_from_disk
from plaid.containers.sample import Sample
# import pyvista as pv
import pyrender
import trimesh
import matplotlib.pyplot as plt
import os
# switch to "osmesa" or "egl" before loading pyrender
os.environ["PYOPENGL_PLATFORM"] = "egl"
import numpy as np
# FOLDER = "plot"
# dataset = load_from_disk("Rotor37")
field_names_train = ["Temperature", "Pressure", "Density"]#pickle.loads(dataset[0]["sample"]).get_field_names()
field_names_test = []
def sample_info(sample_id_str, fieldn):
# sample_id = int(sample_id_str)
# plaid_sample = Sample.load_from_dir(f"Rotor37/dataset/samples/sample_"+str(sample_id_str).zfill(9))
str__ = f"loading sample {sample_id_str}"
# generate mesh
sphere = trimesh.creation.icosphere(subdivisions=4, radius=0.8)
sphere.vertices+=1e-2*np.random.randn(*sphere.vertices.shape)
mesh = pyrender.Mesh.from_trimesh(sphere, smooth=False)
# compose scene
scene = pyrender.Scene(ambient_light=[.1, .1, .3], bg_color=[0, 0, 0])
camera = pyrender.PerspectiveCamera( yfov=np.pi / 3.0)
light = pyrender.DirectionalLight(color=[1,1,1], intensity=2e3)
scene.add(mesh, pose= np.eye(4))
scene.add(light, pose= np.eye(4))
c = 2**-0.5
scene.add(camera, pose=[[ 1, 0, 0, 0],
[ 0, c, -c, -2],
[ 0, c, c, 2],
[ 0, 0, 0, 1]])
# render scene
r = pyrender.OffscreenRenderer(512, 512)
color, _ = r.render(scene)
# color = np.random.rand(512, 512)
plt.figure(figsize=(8,8))
plt.imshow(color)
plt.savefig("test.png")
return str__, "test.png"
# return str__, str__
if __name__ == "__main__":
with gr.Blocks() as demo:
d1 = gr.Slider(0, 999, value=0, label="Training sample id", info="Choose between 0 and 999")
d2 = gr.Dropdown(field_names_train, value=field_names_train[0], label="Field name")
output1 = gr.Text(label="Training sample info")
# output2 = gr.Text(label="Training sample visualization")
output2 = gr.Image(label="Training sample visualization")
# d1.input(update_second, d1, d2)
d1.input(sample_info, [d1, d2], [output1, output2])
d2.input(sample_info, [d1, d2], [output1, output2])
demo.launch()
|