import mujoco, numpy as np
from PIL import Image
ims = []
for stl in ["holder_approx_drilled.stl", "holder_fillet.stl"]:
    xml = f"""<mujoco><asset><mesh name=h file={stl!r}/></asset><worldbody>
      <light pos=\"0.05 -0.05 0.15\" dir=\"-0.3 0.3 -1\"/>
      <geom type=mesh mesh=h rgba=\".2 .52 .85 1\"/></worldbody>
      <visual><global offwidth=500 offheight=500/></visual></mujoco>"""
    m = mujoco.MjModel.from_xml_string(xml); d = mujoco.MjData(m); mujoco.mj_forward(m,d)
    cam = mujoco.MjvCamera(); mujoco.mjv_defaultFreeCamera(m, cam); cam.azimuth=45; cam.elevation=-25
    with mujoco.Renderer(m, 480, 480) as r:
        r.update_scene(d, cam); ims.append(r.render())
Image.fromarray(np.hstack(ims)).save("holder_cmp.png"); print("wrote holder_cmp.png (left=original, right=filleted)")
