Unified multimodal models (UMMs) understand and generate both text and images, which lets a model produce its own training data. Existing self-improvement in UMMs keeps supervision on the visual side, where image understanding judges image generation. We propose recursive cross-capability self-improvement (RSI), a training loop in which the text and visual abilities of a UMM supply training data for one another. In each round, the model generates images and reads them to find where it falls short. It then writes programs aimed at these shortcomings, and execution verifies every result against its specification. Verified renders train image generation, while labeled renders and the model's own correct programs train visual understanding and program writing. Program execution thus acts as a source of truth outside the model, so errors do not accumulate across rounds. We study RSI on charts and build BasicChartBench to evaluate open models early in training. On requests worded differently from training, four rounds of RSI raise the score from 45.7% to 60.2%, while continued training stays at 46.3%. Verified construction carries most of the gain, and targeting the model's failures adds 3.5%. Along the way, the share of verified programs rises from 48.9% to 95.2%, and the reader's accuracy on edited renders rises from 55.6% to 87.4%.
Figures & tables
Figure 1: One round of RSI. Executed programs supply verified images and exact labels. The model reads its own generations, and this diagnosis decides what to construct next. The updated model then changes the errors, the reading, and the program writing of the following round.
Figure 2: BasicChartBench. (a) A request, its reference render, and one atomic question per group. (b) How L0 and L1 differ in seen category labels, title length, series count, and number format.
Figure 3: Generation on BasicChartBench (two levels pooled), scored by the frozen initial reader U0 , which is never updated. (a) Overall generation accuracy after each round for RSI and the two main controls. (b) Overall, text, and binding accuracy and OCR character similarity after round 4.
Strategy
BasicChartBench L0
BasicChartBench L1
Start
R1
R2
R3
R4
Start
R1
R2
R3
R4
Continued training
45.7
46.5
46.5
46.3
46.3
45.1
46.0
46.7
47.8
46.1
Fixed distribution
45.7
51.5
53.8
55.3
56.7
45.1
47.6
47.9
50.3
50.7
Single diagnosis
45.7
54.3
56.9
58.9
59.0
45.1
49.3
50.1
50.9
52.5
Frozen reader
45.7
54.3
56.4
59.1
60.0
45.1
49.3
50.0
51.7
55.2
RSI (ours)
45.7
54.3
57.9
58.9
60.2
45.1
49.3
52.0
54.0
56.2
Table 1: Generation accuracy after each round on the two levels of BasicChartBench, scored by the initial reader U0 . All strategies start from the same model M0 . Single diagnosis and the frozen reader share the first round with RSI (gray). The best strategy in each round is shaded. R r denotes round r .
Figure 4: Differences in generation accuracy between RSI and each control on the two levels of BasicChartBench, scored by the initial reader U0 and by an external judge that RSI never uses. Each row shows the first model minus the second. Comparisons with RSI are after round 4.
Figure 5: One round of RSI on a diagnostic request. (1) After round 3, the generator draws three bars far too low. (2) The reader U3 marks exactly these three values as violated, and the plan of round 4 gives this kind of requirement more data. (3) A verified example of the same kind built in round 4. (4) After round 4, the same request is drawn with the three values correct and all text exact.
Figure 6: The understanding parameters after each round. Left and middle show reading accuracy on correct renders of the diagnostic set and on held-out edited renders. Changed by the edit counts only questions whose answer the edit changes. Right shows the share of specifications for which the model writes a verified program when it builds the data of the next round. Start is the model M0 .
Reader
Structure
Text
Binding
False acc.
False rej.
Questions
U0 (initial)
83.5
76.7
75.0
34.1
10.6
386
U1
87.2
85.0
71.4
38.0
2.3
392
U2
86.5
84.2
75.4
35.8
2.8
392
U3
85.7
85.7
75.4
34.1
3.8
392
Table 2: Accuracy of each reader on the model’s own generations against a blind human audit of the same 392 questions. False acc. counts requirements that humans mark as not shown but the reader accepts, and False rej. counts the reverse. U0 gives no parsable answer on 6 questions. The best value in each column is shaded (lowest for the two error rates).
Start
Round 1
Round 2
Round 3
Round 4
StructT2IBench
11.0
11.5
11.9
11.7
11.9
GenEval
82.9
83.9
83.7
84.4
84.5
MME
2339
2259
2270
2318
2314
MMBench
82.7
80.1
79.6
79.6
80.1
MMMU
52.1
51.2
50.3
50.3
49.1
Table 3: Chart generation on StructT2IBench (chart subset, Qwen3.6-35B-A3B judge) and retained general abilities. GenEval scores the generator, and MME, MMBench, and MMMU the reader.
Appendix figures & tables4 assets
Supplementary material from the paper’s appendix.
Appendix
Rule
Setting
Allocation over pairs
20% spread evenly, the rest by violation rate, capped at three times the mean
Mastery of a dimension
Satisfaction of at least 0.80 moves the level up, below 0.60 after an advance moves it down
Weak attribute value
At least 30 resolved questions, at least 15% below the best value of the attribute, and below mastery
Diagnosis by coverage
Below 0.5% of weighted training history is introduced, below 5% is upweighted, otherwise upweighted with extra reading data. Extra share per value is at most 25%
Wording dependence
A gap of at least 15% between wordings pairs the value with its weaker wording
Curriculum gates
Exact category text of at least 70% on the current vocabulary and at least 60% on every earlier vocabulary opens the next vocabulary, exact titles of at least 80% allow two-word titles, and number format satisfaction of at least 0.80 adds the next format
Appendix
Table 4: Decision rules of RSI.
Figure 7: The frozen initial reader U0 (solid lines) and the external judge Qwen3.6-35B-A3B (dashed lines) on the two levels of BasicChartBench. Scores are satisfaction rates on atomic questions.
Reader
Correct renders
Edited renders
Native (reviewed)
All
Structure
Text
Binding
All
Changed
Acc.
Profile ρ
U0 (initial)
87.1
92.3
97.9
77.4
88.1
55.6
78.5
0.82
U1
96.0
100.0
99.9
90.9
98.6
86.5
81.4
0.86
U2
96.2
100.0
100.0
91.4
98.8
87.3
82.1
0.91
U3
99.1
100.0
99.8
98.0
98.9
87.2
82.4
0.89
U4
99.3
100.0
100.0
98.5
98.9
87.4
–
–
Appendix
Table 5: Reading quality of each reader. Correct renders are the reference images of the diagnostic set (9,636 questions). Edited renders are the held-out families of the first round, which no round trains on, so all readers see the same images. Changed counts only questions whose answer the edit changes. U0 is the initial reader, and Ur is the reader after round r . Native columns come from the human audit in Appendix D (392 questions on generations of M0 to M3 ), which covers the readers up to U3 . The best value in each column is shaded.
Chart type
Executed (%)
Verified (%)
R1
R2
R3
R4
R1
R2
R3
R4
Vertical bar
73.9
99.1
98.5
97.0
22.5
97.2
98.2
92.0
Horizontal bar
76.2
98.9
99.7
99.8
11.8
86.0
91.7
98.4
Line
83.0
98.3
99.2
99.5
61.6
96.9
95.0
96.3
Scatter
51.6
93.6
95.1
98.0
23.4
89.2
83.7
90.9
Area
88.8
99.7
99.4
99.9
98.5
99.9
99.5
99.7
Appendix
Table 6: Program construction by chart type in each round. Each specification receives two candidate programs. Executed is the share of candidates that run and save an image. Verified is the share of specifications with at least one candidate that matches the specification. The writer in round r is the model after round r−1 . Each round uses about 35,000 to 43,000 specifications, and round 1 adds about 30,000 more for pairs that fell short, which are not included. Round 3 uses only the new vocabulary, and round 4 uses the new and the old vocabulary in equal parts.