Stephen
increase max res to 1024
d39abff
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()