Spaces:
Sleeping
Sleeping
File size: 1,107 Bytes
e2969d6 e7bae15 e2969d6 5b3b1fb b02879d e7bae15 e2969d6 5b3b1fb e2969d6 b02879d d39abff b02879d e2969d6 5b3b1fb e2969d6 b02879d e2969d6 |
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 |
import gradio as gr
from sdf_export import mesh_to_sdf_glsl
import tempfile
import os
def generate_sdf_glsl(file_obj, resolution):
glsl_code = mesh_to_sdf_glsl(file_obj.name, resolution)
# Create a temporary file for the GLSL code
with tempfile.NamedTemporaryFile(mode="w", suffix=".glsl", delete=False) as f:
f.write(glsl_code)
temp_path = f.name
return glsl_code, temp_path
iface = gr.Interface(
fn=generate_sdf_glsl,
inputs=[
gr.File(label="Upload 3D Mesh (.obj, .stl, .ply, .glb, etc.)"),
gr.Slider(
minimum=16,
maximum=1024,
step=16,
value=32,
label="Resolution (16=low, 32=medium, 64=high)",
),
],
outputs=[
gr.Textbox(label="GLSL Output"),
gr.File(label="Download GLSL File"),
],
title="Mesh to Embedded GLSL SDF Generator",
description="Upload a 3D mesh file to generate a fully embedded GLSL function with float[] SDF data. Lower resolution = smaller file size and faster loading.",
)
if __name__ == "__main__":
iface.launch()
|