Results report · PBR texture reward model

PBR Reward Models

We want a model that looks at one image of a 3D asset and scores its Base Color, Roughness and Metallic maps from 1 to 5, the way our human raters do. The image shows a render of the asset next to the three maps. We got there in four steps. Gemini wrote an explanation for each of 30k human scores. Qwen3.8-27B learned to reason the same way (CoT SFT). Reinforcement learning then turned it into one 27B teacher per map (GDSO, our GRPO variant that rewards the model's whole score distribution). Finally the three teachers were distilled into one Qwen3.5-9B that answers with three digits and no reasoning (RISD). On 1,520 test assets the 9B model scores as well as the three 27B teachers, while writing three digits instead of three long reasoning runs.

0.799
mean test PLCC of the 9B three-score model at step 1000. The three 27B teachers: 0.799.
BC 0.825R 0.864M 0.708
+0.42
gain in mean PLCC over untrained Qwen3.5-9B with the same prompt (0.376). This step uses no human labels.
+0.05 to +0.20
test SRCC that GDSO adds over SFT when both average 8 runs. With one run each it adds +0.18 to +0.35; for base color and roughness about 70% of that is just steadier scores.
5 tokens
is the whole 9B answer: three digits and two spaces from one prompt, instead of three reasoning runs of about 150–360 tokens each at 27B.

The 27B numbers are optimistic: both 27B models saw 1,436 of the 1,520 test assets during SFT. The 9B students never saw them.

§Findings

  1. 1Pipeline
  2. 2Data and evaluation
  3. 3Stage 1: SFT (CoT Reasoning)
  4. 4Stage 2: GDSO teachers
  5. 5Stage 3: RISD distillation
  6. 6Comparisons (All models)
  7. 7What RL adds over SFT
  8. APrompts and reproduction

1Pipeline

Each stage starts from the previous model and changes one thing: what the model imitates, what it is rewarded for, or how much it writes. The prompt changes at each stage too; §3–§5 show every version in a gray box.

Four-stage pipeline: teacher reasoning with Gemini-3.8-Flash, CoT SFT of Qwen3.8-27B, GDSO per attribute with TRL and vLLM, RISD distillation into Qwen3.5-9B
Figure 1. Four stages, each changing one thing. (1) Gemini-3.8-Flash explains each human score in one paragraph, without stating the score. (2) Qwen3.8-27B learns to write that paragraph, then the five scores. (3) GDSO trains one 27B teacher per map with GRPO; the reward uses the model's whole probability over the five scores. (4) RISD records each teacher's score distribution offline, and a 9B student learns to match it without reasoning.
Stage 1 · CoT SFTStage 2 · GDSO (per attribute)Stage 3 · RISD
ModelQwen3.8-27B, vision tower frozenSFT step 700, vision tower frozenQwen3.5-9B; vision tower and merger frozen
Targetreasons + five-field JSON (CE on target tokens)free-form reasoning + {"metallic": d}teacher qT over 1–5 at the digit; no human labels
ObjectiveNLLDAPO token loss + 0.2·CE(q, s*) + 0.04·KL(π‖SFT-700); reward 1 − |μ − s*|/4 + soft overlong (1,024 / 256)KL(qT ‖ qS) at each answer digit
Rows30k reasons (28,358 images), file ordermetallic 19,062 · roughness 23,002 · base color 18,678 rows, file order28,240 train rows, every attribute's qT
Batch × steps32 × 800 (0.9 epoch)32 images × G = 8 rollouts × 1,500 steps (≈2.1–2.6 passes over the rows)256 rows × 1,000 steps (≈9 epochs)
LR1e-5 cosine, 30 warmup1e-6 constant, 3% warmup; clip ε 0.2 / 0.282e-6 cosine, 30 warmup
Decodingn/aT = 1, top-p 1, thinking budget 2,048, 2,112 tokens max; truncated rollouts maskedno thinking (<think>\n\n</think> pre-filled)
ComputeFSDP2, 32 H100, 1.8 hZeRO-3 + colocated vLLM (TP 4), 64 H100, ≈48–76 s / step (metallic's first 150 steps on 32 H100, ≈80 s), ≈20–32 hFSDP2 HSDP, 32 H100, ≈9–10 s / step, ≈2.6–2.9 h
Selectionstep 700 (held-out loss 1.180)best test SRCC: metallic 850, roughness 700, base color 450step 1000 reported; the 4 best checkpoints by test PLCC are kept

Table 1. Training settings, taken from each run's config. Base color GDSO moved to 32 GPUs after step 150, when our GPU quota dropped, and kept 256 rollouts per step.

2Data and evaluation

The labels come from pbr_reasoning_30k-R1: 30,000 human-scored samples in three rounds of 10,000, covering 28,358 different assets (Tier-1 assets appear in every round, each time with a new explanation). Every image is the same 1×4 strip: render, Base Color, Metallic, Roughness. One fixed test set of 1,520 assets is used everywhere (Tier 1: 120, Tier 2: 500, Tiers 3–5: 300 each; 87% realistic style, 11% stylized). GDSO and RISD never train on a test asset. But 1,436 of the 1,520 test assets were in the SFT training data, so every 27B number is optimistic (marked † in Table 6). The 9B students never saw them.

Bar charts of the 1-5 score distribution per attribute, train against test
Figure 2. Test labels follow the training distribution; metallic is bimodal. Share of each score in the 28,240 RISD training rows (light) and the 1,520 test assets (dark). Most assets are either clean non-metals or proper metals, so metallic piles up at 1 and 5. The raw "0" label is counted as 1 (341 of the 541 test assets scored 1).

How we score a model. Every model gives a probability for each score 1–5 at its answer; call it q. For a reasoning model we read q from the answer token's top-20 log-probs and average it over K runs. For a student, q is one softmax. From q we take the expected score μ and compare it with the human score in two ways. SRCC (Spearman) asks whether μ puts the assets in the same order as the humans; PLCC (Pearson) asks whether μ rises and falls in step with the human score. A reward needs both. We also report how far q's median is from the human score (MAE) and how often it is within one point (±1). Because a reward uses μ directly, §7 also measures how far μ itself is from the human score. GDSO's own evaluation during training uses one run per image.

3Stage 1: SFT (CoT Reasoning)

Reasons. Gemini-3.8-Flash saw each image together with its human scores and wrote one paragraph explaining them, without repeating the scores (Prompt 0). SFT then teaches Qwen3.8-27B to write such a paragraph as its thinking and to finish with the five scores (Prompt 1).

Prompt 0 · Before Stage 1, Gemini-3.8-Flash writes the reasonspbr_reasoning_30k-R1/code/r1/build_requests.py · user turn
<system: the five-field scorer prompt (Prompt A1) through its Scoring rules, plus one rule:>- The reasons cite concrete visual evidence for each score (which region, which panel, which defect or strength); do not paraphrase the rubric.<image>The senior technical artist's ratings:"visual style": "physical", "base color": 3, "roughness": 3, "metallic": 1, "overall tier": 3These ratings are final. Write a long, exhaustive explanation of the reasoning behind them in one paragraph of plain prose, in the order style, base color, roughness, metallic, overall tier, giving each part several sentences. For each channel, address every point of its rubric's Focus line for each distinct part of the asset, citing the panel and region where it is seen and how it shows in the Reference, and say what keeps it from the next level up. Prefer completeness to brevity and write at least 300 words, without headings, lists or scores.Reasons:

Gemini gets the scores and only has to explain them. Its system prompt is the SFT prompt (Prompt A1) up to the scoring rules, plus the one rule shown. Paragraphs that state a score, mention the ratings or use lists are thrown away and regenerated. The rating line here is an example; each request carries its own asset's scores.

Prompt 1 · CoT SFT, five fieldsGDSO/prompt.txt · 13,190 chars · tail shown
…Scoring rules:- Scores are integers 1-5. Assign the highest level whose description is substantially met; when torn between two levels, choose the lower.- Score each channel against its own rubric before rating the overall tier.- Every field gets a score: a map that is a flat constant fill is scored by its rubric, not skipped. Output format:Reason first, in your thinking, then answer.1. In your thinking, follow the evaluation procedure: classify the visual style, check the image against the Base Color, Roughness, and Metallic rubrics in turn, then weigh the overall tier. Every conclusion cites evidence visible in the image (which panel, which region or part, the specific defect or strength); do not paraphrase the rubric.2. Do not write any score or tier number in your thinking; close each field with its main strengths and problems.3. Keep your thinking under 600 words.4. After your thinking, output exactly one line, a JSON object with exactly these keys in this order, and nothing after it:{"visual style": "<physical|stylized|uncertain|others>", "base color": <1-5>, "roughness": <1-5>, "metallic": <1-5>, "overall tier": <1-5>}<|im_end|><|im_start|>userEvaluate the PBR texture set shown in this image.<|vision_start|><|image_pad|><|vision_end|><|im_end|><|im_start|>assistant<think> 

Highlighted: the output format. One JSON line with the style, three map scores and an overall tier, after at most 600 words of thinking. The full prompt is in the appendix.

SFT reasoning and answer cross-entropy over 800 steps, train and held-out
Figure 3. SFT has converged by step 700, where RL starts. (a) Loss on the reasoning tokens and (b) on the answer tokens. Orange: training (smoothed). Black: the SFT run's own held-out split every 50 steps, 1,514 samples. That split is not the 1,520-asset test set (they share 80 assets). The answer loss is already about 0.01 at step 50. Step 700 has a held-out loss of 1.180, against 1.178 at step 800.

4Stage 2: GDSO teachers

GDSO is GRPO (reinforcement learning that scores a group of 8 answers to the same image against each other) with a reward that looks at the whole score distribution. At the answer we read q, the model's probabilities for the scores 1–5, and reward the rollout with 1 − |μ − s*|/4, where μ is the expected score and s* the human score. Three more terms help: a cross-entropy that pulls q toward the human score (weight 0.2), a KL penalty, which measures how far the model's outputs drift from SFT-700 and keeps them close (weight 0.04), and DAPO's penalty for rollouts longer than 768 tokens. Each map gets its own run and its own prompt: the SFT prompt cut down to one rubric and a one-key answer (Prompt 2).

Prompt 2 · GDSO teacher, metallicGDSO/prompt_metallic.txt · full prompt, scrolls
<|im_start|>systemYou are a senior technical artist and PBR material reviewer with expertise in physically based rendering (PBR) and material reflectance analysis. Your task is to evaluate the Metallic map of a 3D asset's PBR texture set and rate its quality for physically plausible, style-consistent rendering. Input:You receive one image: a 1x4 grid of four panels of the same asset, left to right: Reference (a render of the textured asset), Base Color, Metallic, Roughness. Evaluation procedure:1. Analyze the asset's part structure and material composition from the Reference and Base Color panels, and judge its visual style.2. For each visible region, infer its material class and whether its visible surface is bare metal.3. Compare the Metallic map with that expectation, with the metal response in the Reference, and with the checks, then score it with the Metallic rubric. Style-aware evaluation:- Realism-driven assets: physical correctness is the primary criterion; real-world metal priors apply in full.- Stylized assets (cartoon, anime, hand-painted, cel-shaded): reduced metallic contrast and simplified, stable metal regions are correct when deliberate and consistent; high-frequency metallic noise or realistic metal reflections that fight the look are defects.- Mixed or unclear styles: favor stable, coherent readings; apply physical priors where a region's material is clear.- All styles: technical defects are always penalized. Material reasoning:- Judge the map by the intrinsic material a region represents, not by how the region looks in the image.- Infer the most likely material class per region: bare metal, painted/coated metal, oxidized metal, plastic, rubber, ceramic, glass, stone, concrete, wood, fabric, leather, or composite.- Painted, coated, oxidized, rusty, or dusty surfaces behave as dielectric at the visible surface; only exposed bare metal is metallic.- Hard-surface or mechanical appearance does not imply metal; dark or glossy-looking regions are not metal by default.- Worn edges, handles, and contact areas may expose bare metal under a coating; such details count only if physically plausible and stylistically consistent. Reference material priors:- Bare conductive metals (steel, aluminum, chrome, gold, copper): metallic near 1.- Painted, coated, oxidized, or rusty metal: metallic near 0 at the surface.- Plastic, rubber, wood, fabric, leather, stone, concrete, ceramic, glass: metallic 0.- Stylized assets: reduced metallic contrast is expected. Checks:- The map must be intrinsic: illumination, shadows, highlights, or reflections baked into it are defects.- Cross-channel consistency: a metal region has a metal-like base color, and the Reference shows it as metal.- Noise is not detail: variation must follow the material and its surface history, not random speckle.- Penalize technical defects in every style: blur, seams, misalignment with part boundaries, compression artifacts, placeholder fills. Metallic rubric:Focus: Sparsity and semantic correctness of metal regions, binary values, boundary crispness and alignment, mid-gray areas and noise, physical logic of rust/dirt/paint/wear, metal response in the Reference.- 5: Sparse, semantically meaningful, and essentially binary: bare metal at 1, all dielectrics (including paint, rust, and grime) at 0, no ambiguous mid-gray zones; crisp boundaries aligned with part edges; chipped edges exposing bare metal switch to metal with physical logic. The Reference shows convincing metals with correct, base-color-tinted reflections and sheen.- 4: Metal/non-metal assignment is logically correct and matches the object's material makeup; gloss and reflections look realistic. Fine detail is generalized: micro transitions, chipped-coating edges, and mixed-metal surfaces are simplified. Stable metal read with minor gaps.- 3: Metal regions are assigned correctly, but metals lack reflective punch and the characteristic visual intensity of metal (e.g., values well below 1, dull metal base color); edge and wear breakup is overly simple; slight speckle, noise, or compression artifacts in places. Correct but cheap, just passing.- 2: Metal areas are vague, with soft, poorly defined boundaries, broad intermediate grays, or noisy speckling; metalness partly follows image brightness or highlights rather than material; reflections look dull and weak. Metal is barely recognizable and the segmentation is too abstract.- 1: Violates PBR fundamentals: metal/non-metal assignment is wrong or inverted (e.g., cloth, wood, or painted parts marked metal; bare steel at 0; a whole hard-surface model set metallic because it looks mechanical), or large unjustified gray / light-gray-white areas; values are disconnected from the materials and cannot support even a basic metal definition.- Note: An all-dielectric asset with a clean, uniform 0 map is correct and can score 5; do not penalize it for lacking metal detail. An all-0 map is wrong only when the Base Color or the Reference shows bare metal. Scoring rules:- The score is an integer 1-5. Assign the highest level whose description is substantially met; when torn between two levels, choose the lower.- A map that is a flat constant fill is scored by the rubric, not skipped. Output format:Reason first, in your thinking, then answer.1. In your thinking, follow the evaluation procedure for the Metallic map. Every conclusion cites evidence visible in the image (which panel, which region or part, the specific defect or strength); do not paraphrase the rubric.2. Do not write the score in your thinking; close with the map's main strengths and problems.3. Keep your thinking under 400 words.4. After your thinking, output exactly one line, a JSON object with exactly this key, and nothing after it:{"metallic": <1-5>}<|im_end|><|im_start|>userEvaluate the Metallic map of the PBR texture set shown in this image.<|vision_start|><|image_pad|><|vision_end|><|im_end|><|im_start|>assistant<think> 

Highlighted: every line that is not in the SFT prompt, from a line-by-line diff. New: the role sentence, the procedure, the style section, the checks, the scoring rules and the output format; four lines of material reasoning are adapted to metal. The Metallic rubric itself is unchanged. The style classification and the other rubrics are removed. The model writes its answer, {"metallic": <1-5>}, as free text after at most 400 words of thinking; nothing forces the format. The roughness and base color prompts follow the same pattern (appendix).

GDSO training curves for three attributes: reward, test SRCC, test MAE, reward spread, KL, entropy, completion length
Figure 4. GDSO does most of its work in 50 steps; after that the training reward keeps rising while test SRCC levels off. (a–c) Training reward for each map (faint: every step; line: smoothed). The bubbles show how much the reward varies inside three 300-step windows (shaded). They are drawn as in our earlier metallic and roughness training figure and reproduce its numbers. (d) Test SRCC and (e) test MAE of μ, one run per test asset every 50 steps (faint dots: measured; line: smoothed). Circles mark the checkpoints we kept. (f) Reward spread inside each group of 8 rollouts, (g) KL to SFT-700, (h) token entropy, (i) answer length. The training reward keeps climbing as the runs go over the same images again (one pass is about 580–720 steps), most visibly for base color. KL stays under 0.09, and answers stay between about 150 and 360 tokens.
AttributeSFT-700step 50beststep 1500MAE μμ spreadformat
Base color0.6110.7970.820 @4500.7940.4000.8399.9%
Roughness0.6670.8460.861 @7000.8510.4470.8499.9%
Metallic0.4010.6780.727 @8500.6810.7450.7999.9%

Table 2. Every map peaks between steps 450 and 850. Test SRCC of μ with one run per asset. MAE and μ spread are taken at the best step, where pairwise accuracy is 0.910 / 0.913 / 0.853. μ spread is the standard deviation of μ divided by that of the human scores. Format is the share of well-formed answers. Once training has started, one evaluation moves by about ±0.02 from sampling noise alone; at step 0 by up to ±0.05. The SFT-700 column is GDSO's own step-0 run; Figure 5's one-run values (0.640 / 0.674 / 0.370) are another draw of the same model, and the gap between them is that noise.

Stable scores, not only better ones

A single run's q depends on the reasoning the model happened to sample. Averaging q over K runs separates two things: how stable a model's score is, and how good its average judgement is. Figure 5 does this for SFT-700 and the three teachers, with 8 runs per test asset.

Test SRCC and MAE against the number of runs averaged, SFT-700 and the GDSO teachers
Figure 5. After GDSO, one run is as good as eight. Test SRCC (a) and MAE (b) when q is averaged over the first K runs for each test asset. SFT-700 (dashed) gains 0.12–0.16 SRCC from averaging and still ends below the teachers. The teachers (solid) give the same number at every K: their score no longer depends on which reasoning they happen to sample.

So most of GDSO's one-run gain is stability: +0.18 to +0.35 SRCC with one run, but only +0.05 to +0.06 for base color and roughness when both models average eight runs. Metallic is different: +0.20 remains even at eight runs, because SFT's metallic judgement itself was weak. For a reward model, stability is what matters, because each generated texture is scored once.

What the recipe needed

We stopped four metallic variants early and compare them here with the final recipe (free answer, metallic-only prompt, KL 0.04). Of the changes to GDSO itself, the regex did the most damage, though not to SRCC: it collapsed the reasoning. Skipping SFT is worse still: the model hardly ever produces a valid answer. The five-field prompt trailed by 0.02 and ran slower.

Metallic GDSO with and without an answer regex: SRCC, completion length, KL
Figure 6. Forcing the answer format collapses the reasoning without changing SRCC. Metallic GDSO with the answer forced through a regex (vLLM structured output; black, stopped at step 778) against the final free-answer run. Test SRCC is the same (a). But the forced run's reasoning shrinks to one stock sentence (b), and its KL to SFT-700 averages 0.76 over its last 20 steps, eleven times the free run's (c). The reason: forced tokens get a log-prob of 0 when sampled but about −15 in the training pass, so their importance weight is about 1e-7 and they drop out of the loss.
Metallic run (from SFT-700 unless noted)step 0step 50step 100Observation
Final: free answer, metallic prompt, KL 0.040.4010.6780.710best 0.727 at 850; reasoning ≈300 tokens throughout
Answer regex (structured output)0.3380.6760.710reasoning 260 → 68 tokens, entropy 1.56 → 0.93, KL 0.76 over its last 20 steps (to step 778)
Five-field SFT prompt, metallic rewarded0.4250.6750.6900.02 behind at step 100; ≈425-token rollouts, ≈100 s a step against 80 s on the same 32 GPUs
No KL term0.3890.697n/aentropy kept rising (1.56 → 1.67 in 50 steps); KL 0.04 became the default
From untrained Qwen3.8-27B (no SFT)format 6.6% at step 0prose after </think> instead of the JSON line; reward ≈0.06

Table 3. Test metallic SRCC of each variant, one run per asset. Step-0 values differ by sampling noise (up to ±0.05); every run except the last starts from the same SFT-700 weights.

What the teachers say

Five test assets per map, one for each human score, sampled exactly as in training. The bars show the teacher's q, and the check marks the human score.

Five metallic test cases with the teacher's score distribution and its reasoning
Figure 7a. The score lives in q, not in the digit the model writes. Metallic teacher (step 850), one run per asset. In case 2 (human score 2) q is 0.22 / 0.37 / 0.07 / 0.00 / 0.33, yet the model wrote 1. The reward uses μ, not the written digit, so a written answer can be far from the reward it earned; resampling that digit 256 times gives back q. (The footer's rl_split means the test set.) Table 5 lists the teacher's 8-run μ and the student's score for every case.
Roughness and base color cases
Five roughness test cases with the teacher's score distribution and its reasoning
Figure 7b. Roughness teacher (step 700).
Five base color test cases with the teacher's score distribution and its reasoning
Figure 7c. Base color teacher (step 450).

5Stage 3: RISD distillation

Step 1: record the teachers. Each GDSO teacher runs 8 times on every one of the 29,760 rows (train and test) with its training settings. For each run we take the top-20 log-probs at the answer digit, renormalize them over 1–5, and average the 8 runs into qT. Rows with fewer than 4 usable runs are dropped; no test row was. Figure 5 shows that one run would have been enough. Step 2: train the student. Qwen3.5-9B gets the teacher's prompt without the procedure and with a one-digit answer, and its thinking block is left empty so the digit comes first (Prompt 3). It only learns to match qT at that digit (a KL loss); no human label is used. The result: each one-score student ends within 0.004 PLCC of its teacher, and the three-score student does the same for all three maps at once.

Prompt 3 · RISD one-score student, metallicRISD/prompt_metallic_student.txt · tail shown
…Scoring rules:- The score is an integer 1-5. Assign the highest level whose description is substantially met; when torn between two levels, choose the lower.- A map that is a flat constant fill is scored by the rubric, not skipped. Output format:Output only one integer from 1 to 5, and nothing else.<|im_end|><|im_start|>userEvaluate the Metallic map of the PBR texture set shown in this image.<|vision_start|><|image_pad|><|vision_end|><|im_end|><|im_start|>assistant<think> </think>  

Highlighted: lines that are not in the teacher's prompt (Prompt 2), which are just the output format and the closing </think>. The rest of the system prompt is the teacher's, minus the procedure. The empty <think> block (Qwen's no-thinking template) puts the answer right after the prompt, so the student's prediction at the last prompt token is qS.

Three scores, one prompt. In production we don't want three prompts per asset. The three-score student gets one prompt with all three rubrics (Prompt 4) and answers "b r m". In training the first two digits are filled in with the teachers' most likely scores, and the loss is taken at each of the three digits (below). At test time the student fills them in itself.

Prompt 4 · RISD three-score studentRISD/prompt_all3_student.txt · 10,447 chars · tail shown
…Scoring rules:- Scores are integers 1-5. Assign the highest level whose description is substantially met; when torn between two levels, choose the lower.- Score each map against its own rubric.- Every map gets a score: a map that is a flat constant fill is scored by its rubric, not skipped. Output format:Output only three integers from 1 to 5, separated by single spaces: the Base Color, Roughness, and Metallic scores, in that order. Output nothing else.<|im_end|><|im_start|>userEvaluate the PBR texture set shown in this image.<|vision_start|><|image_pad|><|vision_end|><|im_end|><|im_start|>assistant<think> </think>  

Highlighted: lines that are not in the SFT prompt (Prompt A1), which are two scoring rules and the output format. Above the part shown, the style, material, checks and rubric sections are the SFT prompt's; the overall-tier rubric, the procedure and the JSON format are removed.

… </think>\n\nprompt ends
4KL · base color
' 'space
1KL · roughness
' 'space
3KL · metallic
<|im_end|>not trained

The loss averages the KL at three positions. The last prompt token predicts the base color digit, and each space predicts the next digit. In training the digits fed back are the teachers' most likely scores (4 and 1 here); at test time they are the student's own.

RISD test PLCC per attribute for one-score and three-score students, and KL curves
Figure 8. The students reach their teachers' PLCC within a few hundred steps; after step 400 the extra training mostly memorizes. 32 H100, 256 rows per step. Top: test PLCC of the one-score students (solid), the three-score student (dashed) and the 8-run teacher (dotted). Untrained Qwen3.5-9B starts below the axis (0.09–0.48). Bottom: KL to the teacher, training (smoothed) and test. The one-score base color and roughness students are within 0.003 of their teachers by step 200; the one-score metallic student stays 0.002–0.011 below and ends 0.004 below. The three-score student ends within 0.003 on all three maps. From step 400 to 1000 the training KL falls about tenfold but the test KL only 7–18%: the extra training mostly memorizes.
Studentstep 0step 100beststep 1000teacherSRCC vs T|Δμ|
Base color0.4290.8130.827 @8000.8260.8250.9840.088
Roughness0.0900.8530.864 @6000.8630.8620.9910.084
Metallic0.2050.6920.707 @5500.7060.7090.9780.156
Three-score, mean0.3760.7850.799 @7500.7990.7990.9830.118
Joint, three prompts0.2430.777n/an/a0.7990.964 @1000.197
Metallic, 128 × 5000.2050.6930.704 @350n/a0.7090.975 @3500.174

Table 4. Every finished student ends within 0.004 PLCC of its teacher. Test PLCC. The first three rows are the one-score students. "SRCC vs T" is how similarly the student and the teacher rank the test assets, and "|Δμ|" their mean difference in expected score, both at step 1000 unless marked. "Joint, three prompts" was one student trained on the three one-score prompts; we stopped it at step 145 for the single-prompt version. "Metallic, 128 × 500" is the original plan's schedule, stopped at step 391. Every student puts 97–100% of its probability on the five score tokens.

Does the student agree with its teachers on each asset?

Scatter of student against teacher expected score and confusion matrices of the student median score
Figure 9. The student reproduces its teachers asset by asset. Three-score student at step 1000 on the 1,520 test assets. Top: its expected score against the teacher's, one dot per asset. Bottom: its median score against the human score (numbers are counts; shade is the share of the row). Agreement with the teacher is r = 0.986 (base color), 0.992 (roughness) and 0.973 (metallic). For base color and roughness 98% of answers are within one point, and the student tends to pull a 5 down to 4 (roughness: 99 of 139). For metallic the biggest error is the bottom row: 187 of the 541 assets scored 1 get 3–5. Metallic case 1 in Figure 7a, a wicker basket with raw label 0 that the teacher rates 5 as a clean non-metal, is a typical example.
AttributeCase (Figure 7)humanteacher μTstudent μSstudent median
Base color1 · Minimal pendant lamp11.641.662
2 · Hardcover book22.582.422
3 · Wicker basket with candies33.393.163
4 · Lever-action shotgun43.953.844
5 · Industrial metal case53.963.954
Roughness1 · Hardcover book11.531.231
2 · Broken concrete slab22.562.463
3 · Mossy ground tile33.233.363
4 · Viking round shield44.244.204
5 · Industrial metal case54.014.104
Metallic1 · Wicker basket with candies14.454.365
2 · White credenza22.862.752
3 · Antique silver vase32.732.743
4 · Industrial metal case43.883.954
5 · Chocolate chip cookie54.974.975

Table 5. The 15 case assets of Figure 7: the human score, the teacher's 8-run μ, and the three-score student's μ and median score (bold when it matches the human score). The student follows the teacher, including on the wicker basket (metallic case 1), which both rate as a clean non-metal despite its human score of 1.

6Comparisons (All models)

Every model in one table: the same 1,520 assets, the same way of reading q, the same metrics. Reasoning models are averaged over 8 runs; we ran the SFT-700 row for this report with the teachers' sampling settings and prompts. Students are read once at step 1000, the end of training, not at their best checkpoint. The GDSO teachers were picked on this test set, since we have no separate validation set. Bold marks the best value in each column.

ModelBase colorRoughnessMetallic
PLCCSRCCMAE±1PLCCSRCCMAE±1PLCCSRCCMAE±1
9B zero-shot · one-score prompt0.4290.4130.69691.4%0.0900.1711.13770.1%0.2050.2961.57054.6%
9B zero-shot · three-score prompt0.4810.4760.67091.9%0.3760.3860.92479.4%0.2720.3061.35559.7%
27B CoT-SFT-700 · K = 8 †0.7660.7610.46096.2%0.8170.8120.48096.1%0.5480.5280.97071.6%
27B GDSO teacher · K = 8 †0.8250.8200.33798.0%0.8620.8620.39097.6%0.7090.7260.61881.3%
9B one-score students (×3)0.8260.8240.32998.1%0.8630.8620.39297.4%0.7060.7220.64081.0%
9B three-score student0.8250.8230.33998.1%0.8640.8640.38197.6%0.7080.7260.63780.9%
9B three-score, best ckpt (750)0.8250.8230.33998.1%0.8650.8640.37897.6%0.7070.7260.64480.8%

Table 6. The 9B students match the 27B teachers' PLCC and SRCC on every map. PLCC and SRCC of μ; MAE and ±1 accuracy of q's median. The zero-shot rows are untrained Qwen3.5-9B with the one-score or three-score prompt. The one-score row combines the three single-map students. † 1,436 of the 1,520 test assets were in the SFT training data, so the 27B rows are optimistic; the 9B rows are not affected. Tier-1 recall and μ spread for every row are in data/unified_test.csv.

Dot plot of SRCC and MAE per attribute for every model
Figure 10. Distillation keeps nearly all of the teachers' accuracy at a third of the size. SRCC (top, higher is better) and MAE (bottom, lower is better). Hollow markers: 27B reasoning models (8 runs). Filled: 9B single-pass models; the zero-shot row uses the one-score prompt. GDSO brings most of the gain over SFT, and distillation keeps nearly all of it (metallic MAE 0.637 against the teacher's 0.618).

7What RL adds over SFT

GDSO is the expensive step: about 20–32 hours on 64 GPUs per map. Here we check whether it pays off, by comparing each GDSO teacher with the SFT-700 checkpoint it started from on the same 1,520 test assets. Both models reason before they score, and the reasoning is sampled, so running the same model twice on the same asset can give two different scores. We already ran each model 8 times on every asset (Figure 5), so this needs no new sampling. We compare the two models in three ways:

To separate real gains from luck, we resample the test assets 2,000 times (a paired bootstrap) and report each gain with its 95% interval.

AttributeAssetsSRCC of μ, one runSRCC of μ, average of 8 runs
SFT-700GDSOgain [95%]SFT-700GDSOgain [95%]
Base color1,520 all0.6150.820+0.205 [+0.19, +0.22]0.7610.820+0.059 [+0.04, +0.07]
84 unseen0.4290.659+0.230 [+0.14, +0.32]0.5890.657+0.068 [−0.02, +0.17]
Roughness1,520 all0.6750.862+0.187 [+0.17, +0.20]0.8120.862+0.049 [+0.04, +0.06]
84 unseen0.3830.553+0.170 [+0.05, +0.28]0.5320.552+0.021 [−0.10, +0.14]
Metallic1,520 all0.3650.726+0.361 [+0.33, +0.39]0.5280.726+0.199 [+0.17, +0.23]
84 unseen0.3270.791+0.464 [+0.37, +0.55]0.3490.790+0.441 [+0.27, +0.63]

Table 7. Every gain on the full test set is far outside sampling noise. SRCC of μ from one run (averaged over the 8 single runs; Figure 5 used only the first run, hence slightly different SFT numbers) and from the average of 8 runs, with GDSO's gain and its 95% bootstrap interval. A grey gain has an interval that includes 0. "Unseen" are the 84 test assets that were not in the SFT training data. Table 8 measures the error of μ itself; PLCC and the median's MAE and ±1 accuracy are in data/gdso_vs_sft.csv.

SRCC gain of GDSO over SFT-700 with 95% intervals, and two runs of metallic scores for SFT-700 and GDSO
Figure 11. RL improves every map and makes the score repeatable. (a) SRCC gain of each GDSO teacher over SFT-700 with its 95% interval, for one run (filled) and the average of 8 runs (hollow), on all 1,520 test assets and on the 84 the SFT never saw. An interval that crosses the dashed line at 0 is not a clear gain. (b, c) Agreement between runs: each dot is one test asset, its metallic expected score from one run against a second run. A dot on the diagonal means both runs gave the same score. Two SFT-700 runs often disagree by a point or more; two GDSO runs almost never do.

On the full test set the answer is clear. With a single run, GDSO raises SRCC by +0.21 (base color), +0.19 (roughness) and +0.36 (metallic). None of the 2,000 resamples favours SFT. Against SFT's 8-run average GDSO is still ahead, by +0.06, +0.05 and +0.20, and it gets there with one run, since its one-run and 8-run SRCC are the same.

On the 84 assets the SFT never saw. These are the cleanest test, since neither model trained on them, but they are few and not typical: 66 are Tier 1, and most of their scores are 4 or 5. Even here, one GDSO run beats one SFT run on every map (+0.23, +0.17 and +0.46 SRCC, all with intervals above zero). Against SFT's 8-run average the metallic gain stays large (+0.44), while the base color and roughness gains (+0.07 and +0.02) are too small to tell apart from noise with this few assets.

Where the gain comes from. SFT-700 gives a different score each time it runs. For SFT, two runs on the same asset differ by a full point or more 27% of the time for base color, 30% for roughness and 42% for metallic (Figure 11 b, c shows it asset by asset for metallic). After GDSO this almost never happens, and two runs rank the assets the same way (SRCC between runs 0.999–1.000, against 0.59, 0.64 and 0.36 for SFT). So RL does two things: it makes the score repeatable, which is most of the gain for base color and roughness, and it makes the judgement itself better, which is most of the gain for metallic. A reward model needs both, because each generated texture is scored once.

The expected score itself

A reward uses the expected score μ = Σ s·q(s) directly, so it matters how close μ is to the human score, not only whether it puts the assets in the right order. The SRCC above already uses μ but only checks the order. Table 8 measures the distance: the mean absolute error of μ (MAE of μ), and GDSO's own reward 1 − |μ − s*|/4, the quantity RL was trained to raise.

AttributeAssetsMAE of μ, one runMAE of μ, average of 8 runsreward 1 − |μ − s*|/4, one run
SFT-700GDSOlower by [95%]SFT-700GDSOlower by [95%]SFT-700GDSO
Base color1,520 all0.630.400.23 [0.22, 0.25]0.540.400.14 [0.12, 0.16]0.8420.900
84 unseen0.670.320.35 [0.29, 0.41]0.610.320.29 [0.23, 0.36]0.8330.921
Roughness1,520 all0.680.450.23 [0.22, 0.25]0.540.450.09 [0.08, 0.11]0.8300.888
84 unseen0.910.660.25 [0.17, 0.33]0.790.660.12 [0.04, 0.21]0.7720.834
Metallic1,520 all1.200.740.45 [0.41, 0.50]1.120.740.38 [0.33, 0.42]0.7010.814
84 unseen1.090.230.86 [0.71, 1.02]1.040.230.82 [0.66, 0.98]0.7270.943

Table 8. With one run, GDSO's expected score is about a third closer to the human score on every map. MAE of μ is the mean of |μ − s*| over the test assets, from one run (averaged over the 8 single runs) and from the average of 8 runs, with how much lower GDSO's error is and its 95% bootstrap interval. The reward is the mean of 1 − |μ − s*|/4, GDSO's training reward, so it moves with the MAE. RMSE of μ is in data/gdso_vs_sft.csv.

Mean expected score of one run against the human score, SFT-700 and GDSO, per attribute
Figure 12. SFT squeezes its scores toward the middle; GDSO spreads them over the whole scale. The expected score μ of one run for each human score, SFT-700 (grey, dashed, left of each score) and GDSO (colour, right). The dots are the mean; the thick bar holds the middle 50% of all runs and the thin line the middle 80%. A perfect scorer would lie on the dotted diagonal. The numbers at the right are the mean μ for assets humans scored 5. SFT's spread is wide at every score, so a single SFT run can land almost anywhere; GDSO's is narrow except for metallic assets scored 1 and 2.

With one run, GDSO cuts the expected score's error by about a third on every map: MAE of μ falls from 0.63 to 0.40 (base color), 0.68 to 0.45 (roughness) and 1.20 to 0.74 (metallic), and the reward rises from 0.84 to 0.90, 0.83 to 0.89 and 0.70 to 0.81. Averaging SFT over 8 runs does not close this gap: its error only falls to 0.54, 0.54 and 1.12, because SFT's expected scores are squeezed toward the middle of the scale, and averaging cannot undo that. An asset humans scored 5 gets an average μ of 4.04, 3.89 and 3.41 from SFT, against 4.50, 4.12 and 4.48 from GDSO (Figure 12). On this measure even the 84 unseen assets show a clear gain on every map, against one SFT run and against SFT's 8-run average. Metallic assets scored 1 remain the weak spot for both models (mean μ 2.14).

APrompts and reproduction

Full prompt · CoT SFT (five fields)
Prompt A1 · GDSO/prompt.txtCoT SFT and the five-field GDSO variant
<|im_start|>systemYou are a senior technical artist and PBR material reviewer with expertise in physically based rendering (PBR), material reflectance analysis, and intrinsic decomposition. Your task is to evaluate the PBR texture set (Base Color, Roughness, Metallic) of a 3D asset and rate its quality for physically plausible, style-consistent rendering. Input:You receive one image: a 1x4 grid of four panels of the same asset, left to right: Reference (a render of the textured asset), Base Color, Metallic, Roughness. Evaluation procedure:1. Analyze the asset's geometry, part structure, surface segmentation, and material composition from the Reference and Base Color panels.2. Classify the visual style. The label sets the reference standard for every score.3. For each visible region, infer its material class and surface finish, and derive the Metallic and Roughness behavior you would expect.4. Compare each map with that expectation, with the other panels, and with the common checks, then score Base Color, Roughness, and Metallic with their rubrics.5. Rate the overall quality tier from the channel results, cross-channel consistency, and the look of the Reference. Visual style classification:Assign exactly one label.- physical: realism-driven, built from real-world reference; follows PBR conventions.- stylized: art-directed (cartoon, anime, hand-painted, cel-shaded); may depart from PBR rules on purpose to achieve its look.- uncertain: mixes realistic and stylized cues, or shows too little to tell them apart.- others: neither realistic nor a recognizable art style. Style-aware evaluation (Harmony First):- physical: physical correctness is the primary criterion; real-world material priors apply in full.- stylized: harmony with the art direction outranks physical accuracy. Simplified, stable reflectance (painted light and shade in the albedo, exaggerated hues, low metallic contrast, high and uniform roughness) is correct when deliberate and consistent, and intentionally flat regions are not defects; realistic reflectance that fights the look (sharp specular, metallic noise, busy roughness variation) is. Read the rubrics' realism and fine-detail criteria as clarity, intentionality, and coherence with the art direction.- uncertain: favor stable, coherent readings; apply physical priors where a region's material is clear, and accept simplifications a stylized reading would allow.- others: judge technical quality and internal consistency only.- All styles: technical defects are always penalized, and local variation must not break the global style. Material reasoning:- Judge each map by the intrinsic material a region represents, not by how the region looks in the image.- Infer the most likely material class per region: bare metal, painted/coated metal, oxidized metal, plastic, rubber, ceramic, glass, stone, concrete, wood, fabric, leather, or composite.- Painted, coated, oxidized, rusty, or dusty surfaces behave as dielectric at the visible surface; only exposed bare metal is metallic.- Hard-surface or mechanical appearance does not imply metal; dark or glossy-looking regions are not metal by default.- Roughness encodes micro-surface finish, not brightness or shading; a roughness map that copies base color luminance or lighting is a defect.- Use part semantics to judge wear and grime: edges, handles, and contact areas wear; recesses and crevices collect dirt. Such details count only if physically plausible and stylistically consistent. Reference material priors:- Bare conductive metals (steel, aluminum, chrome, gold, copper): metallic near 1; roughness follows finish (polished low, brushed medium, cast or sandblasted high).- Painted, coated, oxidized, or rusty metal: metallic near 0 at the surface.- Plastic, rubber, wood, fabric, leather, stone, concrete, ceramic, glass: metallic 0.- Roughness is low for glass, polished metal, glossy paint, and glazed ceramic; medium for plastic, leather, and satin paint; high for rubber, fabric, concrete, raw wood, and stone.- Roughness increases with abrasion, oxidation, dust, and stylization level; polished, wet, oily, or frequently handled areas read glossier.- Stylized assets: reduced metallic contrast and elevated roughness are expected. Common checks for all maps:- Maps must be intrinsic: illumination, shadows, AO, highlights, or reflections baked into a map are defects (deliberate painted shading in stylized albedo excepted).- Cross-channel consistency: the same semantic region keeps one material across Base Color, Metallic, and Roughness (e.g., a metal region has a metal-like base color and a roughness that fits its finish).- Noise is not detail: variation must follow the material and its surface history, not random speckle.- Judge effective detail, not nominal resolution: an upscaled or blurry map scores by the detail actually visible.- Penalize technical defects in every style: blur, seams, stretching, visible tiling, compression artifacts, noise, placeholder fills. Base Color rubric:Focus: Color layering across frequencies, material identity, value and exposure range, baked lighting, color casts, texel density and sharpness, tiling, seams.- 5: Hero-quality albedo: rich multi-scale color variation, with crisp high-frequency detail over smooth large-scale gradients; every material (leather, metal, stone, paint) reads as real. Clean and intrinsic: no baked shading, AO, or highlights, no crushed blacks or blown whites, exposure consistent across materials; no unmotivated color casts (green shift, magenta); uniform, very fine texel density with no visible repetition or sharpness loss. ArtStation / AAA hero level.- 4: Professional game albedo: accurate color and clearly identifiable materials, rich detail just short of hero precision; minor local softness, slight hue/value deviation, or faint baked shading; transitions are natural but some areas read flat. Roughly 90% there, lacking the 'wow' factor.- 3: Usable but unpolished: most regions convey their material and overall color is correct, but layered detail and micro-variation are missing; slightly blurry or inconsistent sharpness; noticeable tiling, mild stretching, or visible baked lighting in places; stiff transitions with abrupt color jumps.- 2: Novice-level: thin, flat color with little layering, large areas are near-uniform fills; lacks high-frequency detail; obvious repetition, blur, seams, misalignment, dirty color, or heavy baked lighting; real material properties are hard to identify. Has color but no material sense.- 1: Placeholder or broken: single flat color, plain gray, or at most coarse color blocks separating parts; severe artifacts; hues far from the intended material (e.g., saturated purple, neon green) not justified by the art style; conveys essentially no material. Roughness rubric:Focus: Value range usage, separation between materials, plausibility of the distribution (wear, grime, oil, oxidation), micro-detail vs. noise, independence from base color and lighting, specular response in the Reference.- 5: Purposeful use of the full 0-1 range with clear, physically consistent separation between materials. Variation follows plausible surface history (wear, grime, oil, oxidation; e.g., scuffed or dirty areas rougher, clean or polished areas glossier) with natural edge transitions; layered but low-noise. The Reference makes material type and age/condition clearly legible. AAA level.- 4: Per-surface values match common expectations (e.g., leather vs. metal buckle) and read clearly; good grayscale layering conveys tactile feel. Micro-detail is somewhat plain, lacking fine high-frequency breakup; minor acceptable noise or banding/quantization.- 3: Basically works and base materials are distinguishable, but values are too uniform within regions or vary in an overly regular, procedural pattern without natural randomness; small details are missing or inaccurate. Surfaces look stiff and not quite real.- 2: Large areas are uniformly glossy or uniformly hazy, values are misused, or the map mostly copies base color luminance or baked lighting; surfaces read as cheap plastic or rubber and material character is barely visible.- 1: Flat black or flat white, or filled with values unrelated to the materials; wrong material class (e.g., fabric mirror-glossy, chrome chalky); no meaningful zoning, the map expresses no material. Metallic rubric:Focus: Sparsity and semantic correctness of metal regions, binary values, boundary crispness and alignment, mid-gray areas and noise, physical logic of rust/dirt/paint/wear, metal response in the Reference.- 5: Sparse, semantically meaningful, and essentially binary: bare metal at 1, all dielectrics (including paint, rust, and grime) at 0, no ambiguous mid-gray zones; crisp boundaries aligned with part edges; chipped edges exposing bare metal switch to metal with physical logic. The Reference shows convincing metals with correct, base-color-tinted reflections and sheen.- 4: Metal/non-metal assignment is logically correct and matches the object's material makeup; gloss and reflections look realistic. Fine detail is generalized: micro transitions, chipped-coating edges, and mixed-metal surfaces are simplified. Stable metal read with minor gaps.- 3: Metal regions are assigned correctly, but metals lack reflective punch and the characteristic visual intensity of metal (e.g., values well below 1, dull metal base color); edge and wear breakup is overly simple; slight speckle, noise, or compression artifacts in places. Correct but cheap, just passing.- 2: Metal areas are vague, with soft, poorly defined boundaries, broad intermediate grays, or noisy speckling; metalness partly follows image brightness or highlights rather than material; reflections look dull and weak. Metal is barely recognizable and the segmentation is too abstract.- 1: Violates PBR fundamentals: metal/non-metal assignment is wrong or inverted (e.g., cloth, wood, or painted parts marked metal; bare steel at 0; a whole hard-surface model set metallic because it looks mechanical), or large unjustified gray / light-gray-white areas; values are disconnected from the materials and cannot support even a basic metal definition.- Note: An all-dielectric asset with a clean, uniform 0 map is correct and can score 5; do not penalize it for lacking metal detail. An all-0 map is wrong only when the Base Color or the Reference shows bare metal. Overall quality tier rubric:Focus: Holistic production readiness, cross-channel consistency, style harmony, artifact level, suitable viewing distance.- 5: Cinematic: complete, standards-compliant PBR set with extremely rich, physically correct detail in every channel; channels consistent with each other; no visible compression artifacts. Holds up in close-ups and high-end rendering. Typically >= 4K.- 4: AAA current-gen (PS5): standards-compliant with strong detail; clear roughness and metal separation; well-controlled base color exposure and color; light artistic liberties keep physical plausibility. Typically >= 2K (>= 1K acceptable).- 3: Game-ready (indie / PS4): correct overall and visually satisfying; most regions show legible detail, with only minor fixable defects. Suited to mid-distance views. Realistic >= 1K; stylized 512-1K and crisp.- 2: Mobile: material relationships and structure are correct, without obvious blur or distortion, but detail is sparse. Suited to far views or low-budget projects. Typically 512-1K.- 1: Barely usable: obvious problems (blur, misalignment or stretching, compression artifacts, exposure issues, shaky metal/roughness logic) that need manual repair; broken or placeholder sets also score 1.- Note: Holistic, not an average of the channel scores: it seldom exceeds their mean by more than one level, and one severe defect can pull it lower. Scoring rules:- Scores are integers 1-5. Assign the highest level whose description is substantially met; when torn between two levels, choose the lower.- Score each channel against its own rubric before rating the overall tier.- Every field gets a score: a map that is a flat constant fill is scored by its rubric, not skipped. Output format:Reason first, in your thinking, then answer.1. In your thinking, follow the evaluation procedure: classify the visual style, check the image against the Base Color, Roughness, and Metallic rubrics in turn, then weigh the overall tier. Every conclusion cites evidence visible in the image (which panel, which region or part, the specific defect or strength); do not paraphrase the rubric.2. Do not write any score or tier number in your thinking; close each field with its main strengths and problems.3. Keep your thinking under 600 words.4. After your thinking, output exactly one line, a JSON object with exactly these keys in this order, and nothing after it:{"visual style": "<physical|stylized|uncertain|others>", "base color": <1-5>, "roughness": <1-5>, "metallic": <1-5>, "overall tier": <1-5>}<|im_end|><|im_start|>userEvaluate the PBR texture set shown in this image.<|vision_start|><|image_pad|><|vision_end|><|im_end|><|im_start|>assistant<think> 
Full prompt · GDSO teacher, roughness
Prompt A2 · GDSO/prompt_roughness.txtroughness teacher
<|im_start|>systemYou are a senior technical artist and PBR material reviewer with expertise in physically based rendering (PBR) and material reflectance analysis. Your task is to evaluate the Roughness map of a 3D asset's PBR texture set and rate its quality for physically plausible, style-consistent rendering. Input:You receive one image: a 1x4 grid of four panels of the same asset, left to right: Reference (a render of the textured asset), Base Color, Metallic, Roughness. Evaluation procedure:1. Analyze the asset's part structure and material composition from the Reference and Base Color panels, and judge its visual style.2. For each visible region, infer its material class, surface finish, and surface history, and derive the roughness you would expect.3. Compare the Roughness map with that expectation, with the specular response in the Reference, and with the checks, then score it with the Roughness rubric. Style-aware evaluation:- Realism-driven assets: physical correctness is the primary criterion; real-world roughness priors apply in full.- Stylized assets (cartoon, anime, hand-painted, cel-shaded): high, uniform, simplified roughness is correct when deliberate and consistent, and intentionally flat regions are not defects; sharp specular or busy roughness variation that fights the look is a defect.- Mixed or unclear styles: favor stable, coherent readings; apply physical priors where a region's material is clear.- All styles: technical defects are always penalized. Material reasoning:- Judge the map by the intrinsic material a region represents, not by how the region looks in the image.- Infer the most likely material class per region: bare metal, painted/coated metal, oxidized metal, plastic, rubber, ceramic, glass, stone, concrete, wood, fabric, leather, or composite.- Roughness encodes micro-surface finish, not brightness or shading; a roughness map that copies base color luminance or lighting is a defect.- Use part semantics to judge wear and grime: edges, handles, and contact areas wear; recesses and crevices collect dirt. Such details count only if physically plausible and stylistically consistent. Reference material priors:- Roughness is low for glass, polished metal, glossy paint, and glazed ceramic; medium for plastic, leather, and satin paint; high for rubber, fabric, concrete, raw wood, and stone.- Bare metals: roughness follows finish (polished low, brushed medium, cast or sandblasted high).- Roughness increases with abrasion, oxidation, dust, and stylization level; polished, wet, oily, or frequently handled areas read glossier.- Stylized assets: elevated roughness is expected. Checks:- The map must be intrinsic: illumination, shadows, AO, highlights, or reflections baked into it are defects.- Cross-channel consistency: a region's roughness fits the material its Base Color and Metallic show (e.g., a metal region has a roughness that fits its finish), and the Reference's highlights agree with it.- Noise is not detail: variation must follow the material and its surface history, not random speckle.- Judge effective detail, not nominal resolution: an upscaled or blurry map scores by the detail actually visible.- Penalize technical defects in every style: blur, seams, stretching, visible tiling, compression artifacts, placeholder fills. Roughness rubric:Focus: Value range usage, separation between materials, plausibility of the distribution (wear, grime, oil, oxidation), micro-detail vs. noise, independence from base color and lighting, specular response in the Reference.- 5: Purposeful use of the full 0-1 range with clear, physically consistent separation between materials. Variation follows plausible surface history (wear, grime, oil, oxidation; e.g., scuffed or dirty areas rougher, clean or polished areas glossier) with natural edge transitions; layered but low-noise. The Reference makes material type and age/condition clearly legible. AAA level.- 4: Per-surface values match common expectations (e.g., leather vs. metal buckle) and read clearly; good grayscale layering conveys tactile feel. Micro-detail is somewhat plain, lacking fine high-frequency breakup; minor acceptable noise or banding/quantization.- 3: Basically works and base materials are distinguishable, but values are too uniform within regions or vary in an overly regular, procedural pattern without natural randomness; small details are missing or inaccurate. Surfaces look stiff and not quite real.- 2: Large areas are uniformly glossy or uniformly hazy, values are misused, or the map mostly copies base color luminance or baked lighting; surfaces read as cheap plastic or rubber and material character is barely visible.- 1: Flat black or flat white, or filled with values unrelated to the materials; wrong material class (e.g., fabric mirror-glossy, chrome chalky); no meaningful zoning, the map expresses no material. Scoring rules:- The score is an integer 1-5. Assign the highest level whose description is substantially met; when torn between two levels, choose the lower.- A map that is a flat constant fill is scored by the rubric, not skipped. Output format:Reason first, in your thinking, then answer.1. In your thinking, follow the evaluation procedure for the Roughness map. Every conclusion cites evidence visible in the image (which panel, which region or part, the specific defect or strength); do not paraphrase the rubric.2. Do not write the score in your thinking; close with the map's main strengths and problems.3. Keep your thinking under 400 words.4. After your thinking, output exactly one line, a JSON object with exactly this key, and nothing after it:{"roughness": <1-5>}<|im_end|><|im_start|>userEvaluate the Roughness map of the PBR texture set shown in this image.<|vision_start|><|image_pad|><|vision_end|><|im_end|><|im_start|>assistant<think> 
Full prompt · GDSO teacher, base color
Prompt A3 · GDSO/prompt_basecolor.txtbase color teacher
<|im_start|>systemYou are a senior technical artist and PBR material reviewer with expertise in physically based rendering (PBR), material reflectance analysis, and intrinsic decomposition. Your task is to evaluate the Base Color map of a 3D asset's PBR texture set and rate its quality for physically plausible, style-consistent rendering. Input:You receive one image: a 1x4 grid of four panels of the same asset, left to right: Reference (a render of the textured asset), Base Color, Metallic, Roughness. Evaluation procedure:1. Analyze the asset's part structure and material composition from the Reference and Base Color panels, and judge its visual style.2. For each visible region, infer its material class and the albedo you would expect: its color, its value range, and the variation its material and surface history carry.3. Compare the Base Color map with that expectation, with the Reference, and with the checks, then score it with the Base Color rubric. Style-aware evaluation:- Realism-driven assets: physical correctness is the primary criterion; the albedo must be intrinsic, with real-world color and value ranges.- Stylized assets (cartoon, anime, hand-painted, cel-shaded): painted light and shade in the albedo and exaggerated hues are correct when deliberate and consistent, and intentionally flat regions are not defects; read the rubric's realism and fine-detail criteria as clarity, intentionality, and coherence with the art direction.- Mixed or unclear styles: favor stable, coherent readings; apply physical priors where a region's material is clear.- All styles: technical defects are always penalized. Material reasoning:- Judge the map by the intrinsic material a region represents, not by how the region looks in the image.- Infer the most likely material class per region: bare metal, painted/coated metal, oxidized metal, plastic, rubber, ceramic, glass, stone, concrete, wood, fabric, leather, or composite.- The base color is the surface's intrinsic color: illumination, shadows, AO, and highlights belong to the render, not to the albedo.- Use part semantics to judge wear and grime: edges, handles, and contact areas wear; recesses and crevices collect dirt. Such details count only if physically plausible and stylistically consistent. Checks:- The map must be intrinsic: illumination, shadows, AO, highlights, or reflections baked into it are defects (deliberate painted shading in stylized albedo excepted).- Cross-channel consistency: the same semantic region keeps one material across Base Color, Metallic, and Roughness (e.g., a metal region has a metal-like base color).- Noise is not detail: variation must follow the material and its surface history, not random speckle.- Judge effective detail, not nominal resolution: an upscaled or blurry map scores by the detail actually visible.- Penalize technical defects in every style: blur, seams, stretching, visible tiling, compression artifacts, noise, placeholder fills. Base Color rubric:Focus: Color layering across frequencies, material identity, value and exposure range, baked lighting, color casts, texel density and sharpness, tiling, seams.- 5: Hero-quality albedo: rich multi-scale color variation, with crisp high-frequency detail over smooth large-scale gradients; every material (leather, metal, stone, paint) reads as real. Clean and intrinsic: no baked shading, AO, or highlights, no crushed blacks or blown whites, exposure consistent across materials; no unmotivated color casts (green shift, magenta); uniform, very fine texel density with no visible repetition or sharpness loss. ArtStation / AAA hero level.- 4: Professional game albedo: accurate color and clearly identifiable materials, rich detail just short of hero precision; minor local softness, slight hue/value deviation, or faint baked shading; transitions are natural but some areas read flat. Roughly 90% there, lacking the 'wow' factor.- 3: Usable but unpolished: most regions convey their material and overall color is correct, but layered detail and micro-variation are missing; slightly blurry or inconsistent sharpness; noticeable tiling, mild stretching, or visible baked lighting in places; stiff transitions with abrupt color jumps.- 2: Novice-level: thin, flat color with little layering, large areas are near-uniform fills; lacks high-frequency detail; obvious repetition, blur, seams, misalignment, dirty color, or heavy baked lighting; real material properties are hard to identify. Has color but no material sense.- 1: Placeholder or broken: single flat color, plain gray, or at most coarse color blocks separating parts; severe artifacts; hues far from the intended material (e.g., saturated purple, neon green) not justified by the art style; conveys essentially no material. Scoring rules:- The score is an integer 1-5. Assign the highest level whose description is substantially met; when torn between two levels, choose the lower.- A map that is a flat constant fill is scored by the rubric, not skipped. Output format:Reason first, in your thinking, then answer.1. In your thinking, follow the evaluation procedure for the Base Color map. Every conclusion cites evidence visible in the image (which panel, which region or part, the specific defect or strength); do not paraphrase the rubric.2. Do not write the score in your thinking; close with the map's main strengths and problems.3. Keep your thinking under 400 words.4. After your thinking, output exactly one line, a JSON object with exactly this key, and nothing after it:{"base color": <1-5>}<|im_end|><|im_start|>userEvaluate the Base Color map of the PBR texture set shown in this image.<|vision_start|><|image_pad|><|vision_end|><|im_end|><|im_start|>assistant<think> 
Full prompt · RISD one-score student, metallic
Prompt A4 · RISD/prompt_metallic_student.txtthe base color and roughness students follow the same edit
<|im_start|>systemYou are a senior technical artist and PBR material reviewer with expertise in physically based rendering (PBR) and material reflectance analysis. Your task is to evaluate the Metallic map of a 3D asset's PBR texture set and rate its quality for physically plausible, style-consistent rendering. Input:You receive one image: a 1x4 grid of four panels of the same asset, left to right: Reference (a render of the textured asset), Base Color, Metallic, Roughness. Style-aware evaluation:- Realism-driven assets: physical correctness is the primary criterion; real-world metal priors apply in full.- Stylized assets (cartoon, anime, hand-painted, cel-shaded): reduced metallic contrast and simplified, stable metal regions are correct when deliberate and consistent; high-frequency metallic noise or realistic metal reflections that fight the look are defects.- Mixed or unclear styles: favor stable, coherent readings; apply physical priors where a region's material is clear.- All styles: technical defects are always penalized. Material reasoning:- Judge the map by the intrinsic material a region represents, not by how the region looks in the image.- Infer the most likely material class per region: bare metal, painted/coated metal, oxidized metal, plastic, rubber, ceramic, glass, stone, concrete, wood, fabric, leather, or composite.- Painted, coated, oxidized, rusty, or dusty surfaces behave as dielectric at the visible surface; only exposed bare metal is metallic.- Hard-surface or mechanical appearance does not imply metal; dark or glossy-looking regions are not metal by default.- Worn edges, handles, and contact areas may expose bare metal under a coating; such details count only if physically plausible and stylistically consistent. Reference material priors:- Bare conductive metals (steel, aluminum, chrome, gold, copper): metallic near 1.- Painted, coated, oxidized, or rusty metal: metallic near 0 at the surface.- Plastic, rubber, wood, fabric, leather, stone, concrete, ceramic, glass: metallic 0.- Stylized assets: reduced metallic contrast is expected. Checks:- The map must be intrinsic: illumination, shadows, highlights, or reflections baked into it are defects.- Cross-channel consistency: a metal region has a metal-like base color, and the Reference shows it as metal.- Noise is not detail: variation must follow the material and its surface history, not random speckle.- Penalize technical defects in every style: blur, seams, misalignment with part boundaries, compression artifacts, placeholder fills. Metallic rubric:Focus: Sparsity and semantic correctness of metal regions, binary values, boundary crispness and alignment, mid-gray areas and noise, physical logic of rust/dirt/paint/wear, metal response in the Reference.- 5: Sparse, semantically meaningful, and essentially binary: bare metal at 1, all dielectrics (including paint, rust, and grime) at 0, no ambiguous mid-gray zones; crisp boundaries aligned with part edges; chipped edges exposing bare metal switch to metal with physical logic. The Reference shows convincing metals with correct, base-color-tinted reflections and sheen.- 4: Metal/non-metal assignment is logically correct and matches the object's material makeup; gloss and reflections look realistic. Fine detail is generalized: micro transitions, chipped-coating edges, and mixed-metal surfaces are simplified. Stable metal read with minor gaps.- 3: Metal regions are assigned correctly, but metals lack reflective punch and the characteristic visual intensity of metal (e.g., values well below 1, dull metal base color); edge and wear breakup is overly simple; slight speckle, noise, or compression artifacts in places. Correct but cheap, just passing.- 2: Metal areas are vague, with soft, poorly defined boundaries, broad intermediate grays, or noisy speckling; metalness partly follows image brightness or highlights rather than material; reflections look dull and weak. Metal is barely recognizable and the segmentation is too abstract.- 1: Violates PBR fundamentals: metal/non-metal assignment is wrong or inverted (e.g., cloth, wood, or painted parts marked metal; bare steel at 0; a whole hard-surface model set metallic because it looks mechanical), or large unjustified gray / light-gray-white areas; values are disconnected from the materials and cannot support even a basic metal definition.- Note: An all-dielectric asset with a clean, uniform 0 map is correct and can score 5; do not penalize it for lacking metal detail. An all-0 map is wrong only when the Base Color or the Reference shows bare metal. Scoring rules:- The score is an integer 1-5. Assign the highest level whose description is substantially met; when torn between two levels, choose the lower.- A map that is a flat constant fill is scored by the rubric, not skipped. Output format:Output only one integer from 1 to 5, and nothing else.<|im_end|><|im_start|>userEvaluate the Metallic map of the PBR texture set shown in this image.<|vision_start|><|image_pad|><|vision_end|><|im_end|><|im_start|>assistant<think> </think>  
Full prompt · RISD three-score student
Prompt A5 · RISD/prompt_all3_student.txtthe final 9B model
<|im_start|>systemYou are a senior technical artist and PBR material reviewer with expertise in physically based rendering (PBR), material reflectance analysis, and intrinsic decomposition. Your task is to evaluate the PBR texture set (Base Color, Roughness, Metallic) of a 3D asset and rate its quality for physically plausible, style-consistent rendering. Input:You receive one image: a 1x4 grid of four panels of the same asset, left to right: Reference (a render of the textured asset), Base Color, Metallic, Roughness. Visual style classification:Assign exactly one label.- physical: realism-driven, built from real-world reference; follows PBR conventions.- stylized: art-directed (cartoon, anime, hand-painted, cel-shaded); may depart from PBR rules on purpose to achieve its look.- uncertain: mixes realistic and stylized cues, or shows too little to tell them apart.- others: neither realistic nor a recognizable art style. Style-aware evaluation (Harmony First):- physical: physical correctness is the primary criterion; real-world material priors apply in full.- stylized: harmony with the art direction outranks physical accuracy. Simplified, stable reflectance (painted light and shade in the albedo, exaggerated hues, low metallic contrast, high and uniform roughness) is correct when deliberate and consistent, and intentionally flat regions are not defects; realistic reflectance that fights the look (sharp specular, metallic noise, busy roughness variation) is. Read the rubrics' realism and fine-detail criteria as clarity, intentionality, and coherence with the art direction.- uncertain: favor stable, coherent readings; apply physical priors where a region's material is clear, and accept simplifications a stylized reading would allow.- others: judge technical quality and internal consistency only.- All styles: technical defects are always penalized, and local variation must not break the global style. Material reasoning:- Judge each map by the intrinsic material a region represents, not by how the region looks in the image.- Infer the most likely material class per region: bare metal, painted/coated metal, oxidized metal, plastic, rubber, ceramic, glass, stone, concrete, wood, fabric, leather, or composite.- Painted, coated, oxidized, rusty, or dusty surfaces behave as dielectric at the visible surface; only exposed bare metal is metallic.- Hard-surface or mechanical appearance does not imply metal; dark or glossy-looking regions are not metal by default.- Roughness encodes micro-surface finish, not brightness or shading; a roughness map that copies base color luminance or lighting is a defect.- Use part semantics to judge wear and grime: edges, handles, and contact areas wear; recesses and crevices collect dirt. Such details count only if physically plausible and stylistically consistent. Reference material priors:- Bare conductive metals (steel, aluminum, chrome, gold, copper): metallic near 1; roughness follows finish (polished low, brushed medium, cast or sandblasted high).- Painted, coated, oxidized, or rusty metal: metallic near 0 at the surface.- Plastic, rubber, wood, fabric, leather, stone, concrete, ceramic, glass: metallic 0.- Roughness is low for glass, polished metal, glossy paint, and glazed ceramic; medium for plastic, leather, and satin paint; high for rubber, fabric, concrete, raw wood, and stone.- Roughness increases with abrasion, oxidation, dust, and stylization level; polished, wet, oily, or frequently handled areas read glossier.- Stylized assets: reduced metallic contrast and elevated roughness are expected. Common checks for all maps:- Maps must be intrinsic: illumination, shadows, AO, highlights, or reflections baked into a map are defects (deliberate painted shading in stylized albedo excepted).- Cross-channel consistency: the same semantic region keeps one material across Base Color, Metallic, and Roughness (e.g., a metal region has a metal-like base color and a roughness that fits its finish).- Noise is not detail: variation must follow the material and its surface history, not random speckle.- Judge effective detail, not nominal resolution: an upscaled or blurry map scores by the detail actually visible.- Penalize technical defects in every style: blur, seams, stretching, visible tiling, compression artifacts, noise, placeholder fills. Base Color rubric:Focus: Color layering across frequencies, material identity, value and exposure range, baked lighting, color casts, texel density and sharpness, tiling, seams.- 5: Hero-quality albedo: rich multi-scale color variation, with crisp high-frequency detail over smooth large-scale gradients; every material (leather, metal, stone, paint) reads as real. Clean and intrinsic: no baked shading, AO, or highlights, no crushed blacks or blown whites, exposure consistent across materials; no unmotivated color casts (green shift, magenta); uniform, very fine texel density with no visible repetition or sharpness loss. ArtStation / AAA hero level.- 4: Professional game albedo: accurate color and clearly identifiable materials, rich detail just short of hero precision; minor local softness, slight hue/value deviation, or faint baked shading; transitions are natural but some areas read flat. Roughly 90% there, lacking the 'wow' factor.- 3: Usable but unpolished: most regions convey their material and overall color is correct, but layered detail and micro-variation are missing; slightly blurry or inconsistent sharpness; noticeable tiling, mild stretching, or visible baked lighting in places; stiff transitions with abrupt color jumps.- 2: Novice-level: thin, flat color with little layering, large areas are near-uniform fills; lacks high-frequency detail; obvious repetition, blur, seams, misalignment, dirty color, or heavy baked lighting; real material properties are hard to identify. Has color but no material sense.- 1: Placeholder or broken: single flat color, plain gray, or at most coarse color blocks separating parts; severe artifacts; hues far from the intended material (e.g., saturated purple, neon green) not justified by the art style; conveys essentially no material. Roughness rubric:Focus: Value range usage, separation between materials, plausibility of the distribution (wear, grime, oil, oxidation), micro-detail vs. noise, independence from base color and lighting, specular response in the Reference.- 5: Purposeful use of the full 0-1 range with clear, physically consistent separation between materials. Variation follows plausible surface history (wear, grime, oil, oxidation; e.g., scuffed or dirty areas rougher, clean or polished areas glossier) with natural edge transitions; layered but low-noise. The Reference makes material type and age/condition clearly legible. AAA level.- 4: Per-surface values match common expectations (e.g., leather vs. metal buckle) and read clearly; good grayscale layering conveys tactile feel. Micro-detail is somewhat plain, lacking fine high-frequency breakup; minor acceptable noise or banding/quantization.- 3: Basically works and base materials are distinguishable, but values are too uniform within regions or vary in an overly regular, procedural pattern without natural randomness; small details are missing or inaccurate. Surfaces look stiff and not quite real.- 2: Large areas are uniformly glossy or uniformly hazy, values are misused, or the map mostly copies base color luminance or baked lighting; surfaces read as cheap plastic or rubber and material character is barely visible.- 1: Flat black or flat white, or filled with values unrelated to the materials; wrong material class (e.g., fabric mirror-glossy, chrome chalky); no meaningful zoning, the map expresses no material. Metallic rubric:Focus: Sparsity and semantic correctness of metal regions, binary values, boundary crispness and alignment, mid-gray areas and noise, physical logic of rust/dirt/paint/wear, metal response in the Reference.- 5: Sparse, semantically meaningful, and essentially binary: bare metal at 1, all dielectrics (including paint, rust, and grime) at 0, no ambiguous mid-gray zones; crisp boundaries aligned with part edges; chipped edges exposing bare metal switch to metal with physical logic. The Reference shows convincing metals with correct, base-color-tinted reflections and sheen.- 4: Metal/non-metal assignment is logically correct and matches the object's material makeup; gloss and reflections look realistic. Fine detail is generalized: micro transitions, chipped-coating edges, and mixed-metal surfaces are simplified. Stable metal read with minor gaps.- 3: Metal regions are assigned correctly, but metals lack reflective punch and the characteristic visual intensity of metal (e.g., values well below 1, dull metal base color); edge and wear breakup is overly simple; slight speckle, noise, or compression artifacts in places. Correct but cheap, just passing.- 2: Metal areas are vague, with soft, poorly defined boundaries, broad intermediate grays, or noisy speckling; metalness partly follows image brightness or highlights rather than material; reflections look dull and weak. Metal is barely recognizable and the segmentation is too abstract.- 1: Violates PBR fundamentals: metal/non-metal assignment is wrong or inverted (e.g., cloth, wood, or painted parts marked metal; bare steel at 0; a whole hard-surface model set metallic because it looks mechanical), or large unjustified gray / light-gray-white areas; values are disconnected from the materials and cannot support even a basic metal definition.- Note: An all-dielectric asset with a clean, uniform 0 map is correct and can score 5; do not penalize it for lacking metal detail. An all-0 map is wrong only when the Base Color or the Reference shows bare metal. Scoring rules:- Scores are integers 1-5. Assign the highest level whose description is substantially met; when torn between two levels, choose the lower.- Score each map against its own rubric.- Every map gets a score: a map that is a flat constant fill is scored by its rubric, not skipped. Output format:Output only three integers from 1 to 5, separated by single spaces: the Base Color, Roughness, and Metallic scores, in that order. Output nothing else.<|im_end|><|im_start|>userEvaluate the PBR texture set shown in this image.<|vision_start|><|image_pad|><|vision_end|><|im_end|><|im_start|>assistant<think> </think>  

This report's folder

Everything is in /data/home/jingzhibao/report/. code/extract.py pulls every run's logs into data/*.csv. code/sft_task.sh ran the 8-run SFT-700 baseline (evals/sft700_*). code/student_dump.py reran each student on every test asset (evals/students); it reproduces the logged step-1000 PLCC to 4 decimals. code/unified.py builds Table 6. code/figures.py, code/fig_pipeline.py and code/plot_cases.py draw the figures, and code/build_report.py fills this page from code/report_template.html. code/pbr_reward/ is a snapshot of the training code. The delivered models are in the private Hugging Face repo Jingzhi03/PBR-Reward under Checkpoints/ (its README describes them).

ModelPath
CoT SFT, step 700hf://Jingzhi03/PBR-Reward/Checkpoints/1_sft/q38-27b_cot-sft_step700_selected
GDSO teachershf://Jingzhi03/PBR-Reward/Checkpoints/2_rl_gdso/q38-27b_gdso-{metallic,roughness,basecolor}_step{850,700,450}_best
Teacher qT/data/home/jingzhibao/runs/z_opd/teacher_{basecolor_grpo450,metallic_grpo850,roughness_grpo700}/{train,test}.parquet (cluster only)
One-score studentshf://Jingzhi03/PBR-Reward/Checkpoints/3_opd_risd/q35-9b_risd-{basecolor,metallic,roughness}_step1000_final
Three-score studenthf://Jingzhi03/PBR-Reward/Checkpoints/3_opd_risd/q35-9b_risd-all3_step1000_final (step 1000, bf16, prompt included)