{"submission_id":"6424359a-cec0-4ab6-ac03-ccecc9ee2b09","submission_revision_id":"1865ee6e-a90a-487b-a2f1-e13ff6e672ef","revision_version":2,"submission_status":"under_review","submitted_at":"2026-08-16T14:48:30.556537Z","submitter_name":"Károly Zsolnai-Fehér","submitter_email":"professorzsolnai@gmail.com","task":{"status":"submitted","version":2,"extra_fields":{"ai_draft":{"source":"submissions_workbench","status":"ready","preview":{"domain":"Computer Graphics, Physically Based Rendering, Inverse Rendering","task_goal":"Reconstruct a clean-room Mitsuba 3 scene from a single reference image of a modified Cornell Box using only geometry, analytic materials, lighting, and camera parameters, so that the rendered result matches the reference as closely as possible under the fixed evaluation pipeline.","short_name":"mitsuba3_single_view_inverse_scene_reconstruction","input_files":"- `input/reference.png`: target image, 1024 × 1024, sRGB. It was produced with the same camera, filter, tonemap, and Mitsuba 3 render pipeline used by the evaluator, using a clean high-sample reference render. The evaluator uses an independent fixed grading seed.\n- `input/scaffold/scene.xml`: required authoring scaffold. Use the camera in this file verbatim. Camera recovery is not intended to be part of the task; the challenge is geometry, materials, and lighting.\n- `input/scripts/render.py`: fixed render + sRGB conversion script. Do not edit.\n- `input/scripts/evaluate.py`: static checker + clean-room renderer + image comparator. Do not edit.\n- `input/requirements.txt`: pinned/tested software environment.","output_files":"- `output/scene.xml`: final Mitsuba scene.\n- `output/render.exr`, `output/render.png`, and `output/metrics.json`: generated by the evaluation scripts.","operating_system":"Windows, Linux, MacOS","software_licensing":"Free/Open Source","verification_method":"In the benchmark-pinned Mitsuba 3 environment, load the submitted scene and confirm it does not reference textures, meshes, or other external assets. Render it using the official fixed configuration, then run the official evaluator to compute robust relative MSE for the full image and each required region. Verify that the render completes successfully and that the submission obeys all stated constraints.","evaluation_criterion":"\n`evaluate.py` runs three stages:\n\n1. Static check: parse `output/scene.xml`; enforce counts, size caps, one perspective camera, and allowed/forbidden lists; scan for embedded pixel data. Any violation is a hard fail.\n2. Clean-room render: copy only the submitted scene into a temporary directory with no access to `reference.png`; render through the fixed `render.py`; write `output/render.exr` and `output/render.png`.\n3. Image comparison: compare the rendered PNG to `input/reference.png` with a robust relative mean squared error in `[0,1]` sRGB space. The metric is `mean(min(((I - R)^2 / (R^2 + 1e-2)), percentile_99.5))`, so isolated fireflies cannot dominate the score.\n\nPass if: static check is clean, global robust relMSE `< 0.0085`, and each region crop (`left_stacked_blocks`, `glass_cuboid_and_top_block`, `ceiling_light_and_upper_walls`, `floor_under_glass`) has robust relMSE `< 0.014`, with all values finite.\n\nHard fail: static-check violation, render crash or timeout, NaN or Inf, missing output, or missing required files.\n","software_and_version":"Mitsuba 3 (benchmark should pin the exact release; if not yet fixed, Mitsuba 3.5.x with matching Dr.Jit is a plausible starting point)","tools_software_details":"Mitsuba version is pinned in `input/requirements.txt`. The reference was generated with the same fixed rendering pipeline used by `input/scripts/render.py`.\n\n\nPinned/tested environment: Python 3.11, Mitsuba 3.8.0, NumPy. The evaluator renders at fixed 1024 × 1024, 512 spp, CPU `scalar_rgb`, fixed seed 17419, gaussian reconstruction filter with stddev 0.45, no denoise, and no agent-controlled post-processing. The evaluator keeps the submitted scene camera. The static checker requires one perspective camera; the image metric enforces practical camera accuracy.\n\nAllowed:\n\n- Shapes: `sphere`, `rectangle`, `cube`, `disk`; max 50 total.\n- BSDFs: `diffuse`, `dielectric`, `conductor`, `roughconductor`, `plastic`, `roughplastic`; `twosided` is allowed only as a wrapper around one allowed BSDF and does not count toward the material limit. Max 20 non-wrapper BSDFs total.\n- Emitters: `area`, `spot`, `point`, or a uniform `constant` environment with a single literal RGB/spectrum value; 1 to 4 emitters total.\n- RGB materials are sufficient; spectral rendering is not required.\n\nForbidden, hard fail:\n\n- Textures of any kind, including bitmap textures, image textures, procedural texture plugins, built-in checkerboard/grid/wireframe textures, and environment-map images. Ordinary geometric `<scale>` transforms are allowed.\n- Meshes or external geometry files, including OBJ/PLY/serialized meshes.\n- `mesh_attribute`, vertex colors, shapegroups/instances, or external includes.\n- Base64 or encoded pixel data anywhere in the scene.\n- Any external file beyond `output/scene.xml`.\n- Use the provided camera verbatim. The evaluator does not brittle-compare XML camera syntax, but camera drift will fail the image metric.\n- Camera-facing billboards or image planes designed to reproduce the reference directly.\n- Editing `input/scripts/render.py` or `input/scripts/evaluate.py`.\n- More than 50 shapes, more than 20 non-wrapper materials, or `scene.xml` over 150 kB."},"warnings":["Exact Mitsuba 3 version and renderer variant were not specified and should be pinned explicitly.","Operating system was not stated; reproducibility may require a fixed container or OS image.","The exact submission format is unclear and should be specified as XML, Python scene script, or both.","Image resolution, integrator settings, sample count, seed handling, and color-space requirements were not fully specified.","No explicit pass/fail threshold was given; this draft assumes ranking by score.","ROI masks or coordinates for local scoring should be provided explicitly.","The draft assumes clean-room reconstruction forbids all external assets beyond the supplied benchmark materials."],"createdAt":1781012468409,"formPrefill":{"extra_fields":{},"industry_domain":"Computer Graphics, Physically Based Rendering, Inverse Rendering","task_short_name":"mitsuba3_single_view_inverse_scene_reconstruction","operating_system":"Windows, Linux, MacOS","task_description":"# Task Goal\n\nReconstruct a clean-room Mitsuba 3 scene from a single reference image of a modified Cornell Box using only geometry, analytic materials, lighting, and camera parameters, so that the rendered result matches the reference as closely as possible under the fixed evaluation pipeline.\n\n# Input Files\n\n- `input/reference.png`: target image, 1024 × 1024, sRGB. It was produced with the same camera, filter, tonemap, and Mitsuba 3 render pipeline used by the evaluator, using a clean high-sample reference render. The evaluator uses an independent fixed grading seed.\n- `input/scaffold/scene.xml`: required authoring scaffold. Use the camera in this file verbatim. Camera recovery is not intended to be part of the task; the challenge is geometry, materials, and lighting.\n- `input/scripts/render.py`: fixed render + sRGB conversion script. Do not edit.\n- `input/scripts/evaluate.py`: static checker + clean-room renderer + image comparator. Do not edit.\n- `input/requirements.txt`: pinned/tested software environment.\n\n# Output Files\n\n- `output/scene.xml`: final Mitsuba scene.\n- `output/render.exr`, `output/render.png`, and `output/metrics.json`: generated by the evaluation scripts.\n\n# Tools / Software Details\n\nMitsuba version is pinned in `input/requirements.txt`. The reference was generated with the same fixed rendering pipeline used by `input/scripts/render.py`.\n\n\nPinned/tested environment: Python 3.11, Mitsuba 3.8.0, NumPy. The evaluator renders at fixed 1024 × 1024, 512 spp, CPU `scalar_rgb`, fixed seed 17419, gaussian reconstruction filter with stddev 0.45, no denoise, and no agent-controlled post-processing. The evaluator keeps the submitted scene camera. The static checker requires one perspective camera; the image metric enforces practical camera accuracy.\n\nAllowed:\n\n- Shapes: `sphere`, `rectangle`, `cube`, `disk`; max 50 total.\n- BSDFs: `diffuse`, `dielectric`, `conductor`, `roughconductor`, `plastic`, `roughplastic`; `twosided` is allowed only as a wrapper around one allowed BSDF and does not count toward the material limit. Max 20 non-wrapper BSDFs total.\n- Emitters: `area`, `spot`, `point`, or a uniform `constant` environment with a single literal RGB/spectrum value; 1 to 4 emitters total.\n- RGB materials are sufficient; spectral rendering is not required.\n\nForbidden, hard fail:\n\n- Textures of any kind, including bitmap textures, image textures, procedural texture plugins, built-in checkerboard/grid/wireframe textures, and environment-map images. Ordinary geometric `<scale>` transforms are allowed.\n- Meshes or external geometry files, including OBJ/PLY/serialized meshes.\n- `mesh_attribute`, vertex colors, shapegroups/instances, or external includes.\n- Base64 or encoded pixel data anywhere in the scene.\n- Any external file beyond `output/scene.xml`.\n- Use the provided camera verbatim. The evaluator does not brittle-compare XML camera syntax, but camera drift will fail the image metric.\n- Camera-facing billboards or image planes designed to reproduce the reference directly.\n- Editing `input/scripts/render.py` or `input/scripts/evaluate.py`.\n- More than 50 shapes, more than 20 non-wrapper materials, or `scene.xml` over 150 kB.\n\n# Evaluation Criterion\n\n`evaluate.py` runs three stages:\n\n1. Static check: parse `output/scene.xml`; enforce counts, size caps, one perspective camera, and allowed/forbidden lists; scan for embedded pixel data. Any violation is a hard fail.\n2. Clean-room render: copy only the submitted scene into a temporary directory with no access to `reference.png`; render through the fixed `render.py`; write `output/render.exr` and `output/render.png`.\n3. Image comparison: compare the rendered PNG to `input/reference.png` with a robust relative mean squared error in `[0,1]` sRGB space. The metric is `mean(min(((I - R)^2 / (R^2 + 1e-2)), percentile_99.5))`, so isolated fireflies cannot dominate the score.\n\nPass if: static check is clean, global robust relMSE `< 0.0085`, and each region crop (`left_stacked_blocks`, `glass_cuboid_and_top_block`, `ceiling_light_and_upper_walls`, `floor_under_glass`) has robust relMSE `< 0.014`, with all values finite.\n\nHard fail: static-check violation, render crash or timeout, NaN or Inf, missing output, or missing required files.","software_licensing":"Free/Open Source","verification_method":"In the benchmark-pinned Mitsuba 3 environment, load the submitted scene and confirm it does not reference textures, meshes, or other external assets. Render it using the official fixed configuration, then run the official evaluator to compute robust relative MSE for the full image and each required region. Verify that the render completes successfully and that the submission obeys all stated constraints.","software_and_version":"Mitsuba 3 (benchmark should pin the exact release; if not yet fixed, Mitsuba 3.5.x with matching Dr.Jit is a plausible starting point)"},"draftSession":"58030189-aa34-4885-987b-404b9fd79fc0"}},"submitted_at":"2026-08-16T14:48:30.556537+00:00","industry_domain":"Computer Graphics, Physically Based Rendering, Inverse Rendering","task_short_name":"mitsuba3_single_view_inverse_scene_reconstruction","operating_system":"Windows, Linux, MacOS","task_description":"# Task Goal\n\nYou are a rendering engineer using Mitsuba 3. Build a Mitsuba scene from scratch whose render matches the provided reference image: a Cornell-box style room with a red left wall, green right wall, warm beige floor/back wall/ceiling, a rectangular ceiling area light, two large floor boxes, two small colored blocks on top of the tall left box, and a transparent glass cuboid on the lower right with a small diffuse cuboid on top. The scene must reconstruct the image with real geometry, materials, the provided camera, and lights. Do not copy, embed, project, encode, texture-map, or otherwise directly reproduce the reference image.\n\n# Input Files\n\n- `input/reference.png`: target image, 1024 × 1024, sRGB. It was produced with the same camera, filter, tonemap, and Mitsuba 3 render pipeline used by the evaluator, using a clean high-sample reference render. It is the solver-visible target, not an evaluator-generated `output/render.png`. The evaluator uses an independent fixed grading seed, so a correct graded render is expected to differ from this target at the pixel and byte levels and to report a small nonzero error.\n- `input/scaffold/scene.xml`: required authoring scaffold. Use the camera in this file verbatim. Camera recovery is not intended to be part of the task; the challenge is geometry, materials, and lighting.\n- `input/scripts/render.py`: fixed render + sRGB conversion script. Do not edit.\n- `input/scripts/evaluate.py`: static checker + clean-room renderer + image comparator. Do not edit.\n- `input/requirements.txt`: pinned/tested software environment.\n\n# Output Files\n\n- `output/scene.xml`: final Mitsuba scene.\n- `output/render.exr`, `output/render.png`, and `output/metrics.json`: generated by the evaluation scripts.\n\nNo other submitted files are allowed.\n\n# Tools / Software Details\n\nPython 3.11 is a runtime prerequisite and is intentionally declared outside `requirements.txt`; `requirements.txt` contains only directly installable Python packages. Mitsuba, Dr.Jit, and NumPy are pinned there to the exact tested versions. The reference was generated with the same fixed rendering pipeline used by `input/scripts/render.py`.\n\nPinned/tested environment: Python 3.11, Mitsuba 3.8.0, Dr.Jit 1.3.1, NumPy 1.26.4. The evaluator renders at fixed 1024 × 1024, 512 spp, CPU `scalar_rgb`, fixed seed 17419, gaussian reconstruction filter with stddev 0.45, no denoise, and no agent-controlled post-processing. The evaluator keeps the submitted scene camera. The static checker requires one perspective camera; the image metric enforces practical camera accuracy.\n\nAllowed:\n\n- Shapes: `sphere`, `rectangle`, `cube`, `disk`; max 50 total.\n- BSDFs: `diffuse`, `dielectric`, `conductor`, `roughconductor`, `plastic`, `roughplastic`; `twosided` is allowed only as a wrapper around one allowed BSDF and does not count toward the material limit. Max 20 non-wrapper BSDFs total.\n- Emitters: `area`, `spot`, `point`, or a uniform `constant` environment with a single literal RGB/spectrum value; 1 to 4 emitters total.\n- RGB materials are sufficient; spectral rendering is not required.\n\nForbidden, hard fail:\n\n- Textures of any kind, including bitmap textures, image textures, procedural texture plugins, built-in checkerboard/grid/wireframe textures, and environment-map images. Ordinary geometric `<scale>` transforms are allowed.\n- Meshes or external geometry files, including OBJ/PLY/serialized meshes.\n- `mesh_attribute`, vertex colors, shapegroups/instances, or external includes.\n- Base64 or encoded pixel data anywhere in the scene.\n- Any external file beyond `output/scene.xml`.\n- Use the provided camera verbatim. The evaluator does not brittle-compare XML camera syntax, but camera drift will fail the image metric.\n- Camera-facing billboards or image planes designed to reproduce the reference directly.\n- Editing `input/scripts/render.py` or `input/scripts/evaluate.py`.\n- More than 50 shapes, more than 20 non-wrapper materials, or `scene.xml` over 150 kB.\n\n# Evaluation Criterion\n\n`evaluate.py` runs three stages:\n\n1. Static check: parse `output/scene.xml`; enforce counts, size caps, one perspective camera, and allowed/forbidden lists; scan for embedded pixel data. Any violation is a hard fail.\n2. Clean-room render: copy only the submitted scene into a temporary directory with no access to `reference.png`; render through the fixed `render.py`; write `output/render.exr` and `output/render.png`.\n3. Image comparison: compare the rendered PNG to `input/reference.png` with a robust relative mean squared error in `[0,1]` sRGB space. The metric is `mean(min(((I - R)^2 / (R^2 + 1e-2)), percentile_99.5))`, so isolated fireflies cannot dominate the score.\n\nPass if: static check is clean, global robust relMSE `< 0.0085`, and each region crop (`left_stacked_blocks`, `glass_cuboid_and_top_block`, `ceiling_light_and_upper_walls`, `floor_under_glass`) has robust relMSE `< 0.014`, with all values finite.\n\nHard fail: static-check violation, render crash or timeout, NaN or Inf, missing output, or missing required files.\n","software_licensing":"Free/Open Source","evaluation_criteria":null,"verification_method":"# How Do We Measure Success?\n\nGrading is fully automated and requires no subjective judgment. Run the provided `input/scripts/evaluate.py` and `input/scripts/render.py` verbatim and unmodified. A submission passes if and only if `evaluate.py` exits with code `0` and writes `\"pass\": true` to `output/metrics.json`.\n\n## Tested Environment\n\n- Python 3.11 runtime\n- Mitsuba 3.8.0\n- Dr.Jit 1.3.1\n- NumPy 1.26.4\n- CPU `scalar_rgb` variant\n\nPython 3.11 is a runtime prerequisite declared outside `input/requirements.txt`. The three installable Python packages are pinned exactly in that file.\n\n## Evaluation Stages\n\n### 1. Static Check\n\nThe evaluator checks `output/scene.xml` and fails the submission if any of the following conditions is met:\n\n- More than 50 shapes, or any shape type outside `sphere`, `rectangle`, `cube`, and `disk`.\n- More than 20 non-wrapper BSDFs, or any BSDF type outside `diffuse`, `dielectric`, `conductor`, `roughconductor`, `plastic`, and `roughplastic`. `twosided` is permitted only as a single-child wrapper and does not count toward the material limit.\n- Fewer than 1 or more than 4 emitters, or any emitter type outside `area`, `spot`, `point`, and `constant`. A `constant` environment must use a uniform literal RGB or spectrum value and may not reference a texture or file.\n- Anything other than exactly one top-level perspective camera.\n- A `scene.xml` file larger than 150 kB.\n- Any texture, mesh, external geometry file, include, filename reference, embedded pixel data, Base64 data, or long encoded numeric array.\n- Any file in `output/` other than `scene.xml` and the evaluator-generated `render.exr`, `render.png`, and `metrics.json` artifacts.\n\n### 2. Clean-Room Render\n\nOnly `output/scene.xml` is copied into an isolated temporary directory. The scene has no access to `input/reference.png` or any other submitted file. The controlled grading run uses these settings:\n\n- Resolution: 1024 × 1024\n- Samples per pixel: 512\n- Seed: 17419\n- Variant: CPU `scalar_rgb` in the controlled grading environment\n- Reconstruction filter: Gaussian, standard deviation 0.45\n- Output transform: clamp to `[0,1]`, then apply the sRGB transfer function\n- No denoising or agent-controlled post-processing\n\nThe submitted camera is preserved. The evaluator replaces the film and sampler settings and fixes the resolution, sample count, filter, and seed. The controlled grading environment uses the `scalar_rgb` variant.\n\n### 3. Image Comparison\n\nThe evaluator compares `output/render.png` with `input/reference.png` in `[0,1]` sRGB space. For rendered image values \\(I\\) and reference values \\(R\\), the relative squared-error array is\n\n\\[\nE = \\frac{(I-R)^2}{R^2 + 10^{-2}}.\n\\]\n\nFor each evaluated domain, meaning the full image or one region crop, the evaluator computes \\(p\\), the 99.5th percentile of that domain's error-array elements, and reports\n\n\\[\n\\operatorname{robust\\ relMSE} = \\operatorname{mean}(\\min(E,p)).\n\\]\n\nThis clamp prevents a small number of stochastic fireflies from dominating the score. The unclipped relative MSE is also written to `metrics.json` for diagnostics but does not determine the pass result.\n\n## Pass Conditions\n\nA submission passes only when all of the following are true:\n\n- The static check is clean.\n- Global robust relMSE is less than `0.0085`.\n- Robust relMSE is less than `0.014` in each of these crops:\n  - `left_stacked_blocks`\n  - `glass_cuboid_and_top_block`\n  - `ceiling_light_and_upper_walls`\n  - `floor_under_glass`\n- Every metric is finite.\n- Rendering completes without a crash or timeout.\n\nThe result is one deterministic pass/fail decision. Re-running the evaluator on the same submission in the pinned environment reproduces the result.\n\n## Target Image\n\n`input/reference.png` is the solver-visible, high-sample target generated from the gold scene. It is not an evaluator-generated `output/render.png` artifact. Grading renders at 512 spp with the fixed seed above, independently of the target image's sampling run. Therefore, even a correct submission is expected to produce a render that differs from the target at the pixel and byte levels and reports a small nonzero error.","software_and_version":"Mitsuba 3 (benchmark should pin the exact release; if not yet fixed, Mitsuba 3.5.x with matching Dr.Jit is a plausible starting point)","specific_requirements":null,"expected_completion_time":null},"files":[{"file_id":"84be92d7-e4db-4ea6-8c0a-a7288a293cb0","filename":"scene.xml","category":"input_materials","content_type":"text/xml","size_bytes":1001},{"file_id":"a655948c-93b4-4af2-b4ab-711eb9af65c8","filename":"evaluate.py","category":"input_materials","content_type":"text/x-python-script","size_bytes":17280},{"file_id":"1fc880d7-6981-4fa3-911d-7240da9702c3","filename":"render.py","category":"input_materials","content_type":"text/x-python-script","size_bytes":5381},{"file_id":"46cf560c-78f4-466f-b1d9-2b9428139cf8","filename":"requirements.txt","category":"input_materials","content_type":"text/plain","size_bytes":42},{"file_id":"a271be88-b2fd-43b2-8159-7d9027764fbc","filename":"reference.png","category":"input_materials","content_type":"image/png","size_bytes":674406},{"file_id":"21a9593b-9b5a-4659-bcbf-ec46e97a8e1a","filename":"metrics.json","category":"reference_output","content_type":"application/json","size_bytes":962},{"file_id":"42881013-f75b-4bbc-a9e1-74fceb6dd07f","filename":"secret-scene.xml","category":"reference_output","content_type":"text/xml","size_bytes":4960},{"file_id":"20d42899-3149-4b72-b612-c08b3dbad63e","filename":"render.exr","category":"reference_output","content_type":"application/octet-stream","size_bytes":10999476},{"file_id":"23454a31-08a3-474e-a0c1-e816d4d4d3f4","filename":"render.png","category":"reference_output","content_type":"image/png","size_bytes":1413920}],"deep_review":{"overall_verdict":"Strong Accept","review_text":"**Overall Verdict:** Strong Accept — The submission is complete, internally consistent, objectively gradable, and demonstrably reachable through a passing reference implementation.\n\n**Completeness Check:**\n- Instruction: Complete — The scene requirements, restrictions, camera constraint, deliverables, and success conditions are precise.\n- Inputs: Complete — The camera scaffold, 1024×1024 solver-visible target, evaluator, renderer, and pinned dependencies are present and consistent.\n- Toolchain: Complete — Python 3.11 and exact Mitsuba, Dr.Jit, and NumPy versions define a reproducible CPU workflow without proprietary software.\n- Reference output: Complete — The protected scene, EXR, PNG, and passing metrics form a coherent gold result and are separated from solver-visible inputs.\n- Rubric: Complete — Static validation, controlled rendering, metric formula, crop coordinates, thresholds, and failure conditions are explicit and machine-verifiable.\n\n**File and Task Reachability:**\nAttachment classification: `reachable`. Task classification: `reachable`. All nine manifested files were inspected: `scene.xml`, `evaluate.py`, `render.py`, `requirements.txt`, `reference.png`, `metrics.json`, `secret-scene.xml`, `render.exr`, and `render.png`. Sizes and formats match the manifest; both PNGs are valid 1024×1024 RGB images, and their independently recomputed metrics agree with the submitted passing metrics. The XML files are structurally coherent, the protected scene uses the supplied camera exactly, and its counts match the static-check report. The EXR header identifies a 1024×1024 RGB PIZ-compressed image generated by Mitsuba 3.8.0; its compressed pixel payload was not independently decoded because an OpenEXR decoder was unavailable, but the paired PNG was fully decoded and verified. No attachment was omitted, and uploaded programs were reviewed as source rather than executed. End to end, the contributor authors `output/scene.xml`, the evaluator performs static checks, renders it in isolation with fixed settings, generates the three artifacts, and applies deterministic global and regional thresholds. License keys, accounts, tokens, and other credentials are not required from the contributor. Confidential, proprietary, or internal material may be evaluated as submitted evidence without requiring additional disclosure.\n\n**Special Screening:**\nNone — no affirmative evidence supports a screening label. Public-benchmark provenance was not externally searched because the review evidence boundary prohibits external lookup.\n\n**Recommended Changes:**\nThe submission provides a coherent professional inverse-rendering task, protected gold scene, validated artifacts, and substantial passing margins. No changes are required.","reviewed_at":"2026-08-16T14:55:29.597057Z"},"claim":null}