From 57809f58a4ef77c79b8bd05bec5aa3c25cd27f06 Mon Sep 17 00:00:00 2001 From: Taylor Howell Date: Tue, 12 May 2026 14:12:57 +0100 Subject: [PATCH] add mesh render benchmark --- benchmarks/render/README.md | 19 ++++++++++++++++++- benchmarks/render/__init__.py | 19 +++++++++++++++++++ benchmarks/render/mug.webp | Bin 0 -> 892 bytes benchmarks/render/mug.xml | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 benchmarks/render/mug.webp create mode 100644 benchmarks/render/mug.xml diff --git a/benchmarks/render/README.md b/benchmarks/render/README.md index 0f4e46656..0f7114bdb 100644 --- a/benchmarks/render/README.md +++ b/benchmarks/render/README.md @@ -2,10 +2,12 @@ ## Description -GPU ray-traced rendering of the [primitives](../../mujoco_warp/test_data/primitives.xml) scene. This benchmark measures rendering performance using a 5×5 grid of spheres, capsules, ellipsoids, cylinders, and boxes above a plane. +GPU ray-traced rendering performance benchmarks. These benchmarks measure rendering speed across both simple primitive layouts and complex high-resolution textured meshes on the GPU. ### primitives +GPU ray-traced rendering of the [primitives](../../mujoco_warp/test_data/primitives.xml) scene. This benchmark measures rendering performance using a 5×5 grid of spheres, capsules, ellipsoids, cylinders, and boxes above a plane. + | Property | Value | |----------|-------| | Bodies | 126 | @@ -16,3 +18,18 @@ GPU ray-traced rendering of the [primitives](../../mujoco_warp/test_data/primiti | Worlds | 8192 | ![primitives](primitives.webp) + +### mug + +GPU ray-traced rendering of the official [MuJoCo Mug](assets/mug.xml) scene. This benchmark measures rendering performance of a high-resolution, textured OBJ mesh with complex geometry. + +| Property | Value | +|----------|-------| +| Bodies | 2 | +| DoFs | 6 | +| Geoms | 37 | +| Cameras | 1 | +| Resolution | 64×64 | +| Worlds | 8192 | + +![mug](mug.webp) diff --git a/benchmarks/render/__init__.py b/benchmarks/render/__init__.py index 972afc77a..62a5faacf 100644 --- a/benchmarks/render/__init__.py +++ b/benchmarks/render/__init__.py @@ -1,3 +1,10 @@ +ASSETS = [ + { + "source": "https://github.com/google-deepmind/mujoco.git", + "ref": "3f3ff85a59b9ce68cfb9d9a5222bf7e050d966c1", + } +] + BENCHMARKS = [ { "name": "primitives", @@ -8,4 +15,16 @@ "njmax": 256, "nstep": 100, }, + { + "name": "mug", + "mjcf": "mug.xml", + "function": "render", + "nworld": 8192, + "nstep": 100, + "render_width": 64, + "render_height": 64, + "assets": [ + (ASSETS[0], "model/mug", "assets"), + ], + }, ] diff --git a/benchmarks/render/mug.webp b/benchmarks/render/mug.webp new file mode 100644 index 0000000000000000000000000000000000000000..c889ffa7ac0fd1204750e7d3ff74ce189cdbc005 GIT binary patch literal 892 zcmV-?1B3ihNk&F=0{{S5MM6+kP&goH0{{SU5dfV5DnI~006v{cpiCvCBO)Xi3P`XM ziDy3pRAyHHuH-wIKeKuUeaJqFLKLbCz#NJ1rdMB;O`mPG?aK`ov;&3cBSt+Gx3Bt@;#+Lbf?5C}EH|0OKNb>Z zFgE<6$GAW6$syO;uI+F_9VK}c-7m=NYOE4z+xiWqbMFk|jWuo^7x(8)E4{DpyG_Dy z0owoWvOXu@L|}(TeEFEKHNW)t`axtOJOAol^U*o5X|hwFFU*{DGjlZ0pgpl0?aQJm zTax#H7+=YK6S==&Kf8T^{_XT|@_uS!PLTvzv-0>3#4EQcpDgm+w77A4*XfEMZdQ!H zi~s&pKeUklBEKkG{^gMV2-k!-f5HULiGi8^$*{_DuKEAY&Q@Qm|A*YIDf@6!R!f+; zOj8e$br_(!Pxchf)99Qjf%$d+W(+cqy)}3?|wI7Rx{!P4M|HQ|>1W@3(YM57S zo#ijkLqIqea9y(t_NW248X`z@MFH3D0&Izp*3QIZ7b zEC%iRJP!FKRnK&KI{W+fz3%d-Wzf5Fn(YQUdyNo+Zmjz*HD6|MN~Zw;BzHw443UAo zlu=LQtkQH7f#K{-xvpIgEK>j-6jZoC9sFwZJhaJ+FbmPNN|%i`d5`iF=sKMcJYZ?= SB_+&J#OsH~YjL2EKmY)zmdZW= literal 0 HcmV?d00001 diff --git a/benchmarks/render/mug.xml b/benchmarks/render/mug.xml new file mode 100644 index 000000000..a7a5ba56d --- /dev/null +++ b/benchmarks/render/mug.xml @@ -0,0 +1,34 @@ + +