Summary
This experiment investigates watercolor wash technique. Box-Behnken design to maximize color evenness and minimize blooming by tuning water-to-pigment ratio, paper wetness, and brush angle.
The design varies 3 factors: water ratio (ratio), ranging from 2 to 8, paper wetness (level), ranging from 1 to 5, and brush angle deg (deg), ranging from 15 to 60. The goal is to optimize 2 responses: evenness (pts) (maximize) and blooming (pts) (minimize). Fixed conditions held constant across all runs include paper = 300gsm_cold_press, pigment = ultramarine.
A Box-Behnken design was chosen because it efficiently fits quadratic models with 3 continuous factors while avoiding extreme corner combinations — requiring only 15 runs instead of the 8 needed for a full factorial at two levels.
Quadratic response surface models were fitted to capture potential curvature and factor interactions. The RSM contour plots below visualize how pairs of factors jointly affect each response.
Key Findings
For evenness, the most influential factors were brush angle deg (43.0%), water ratio (31.5%), paper wetness (25.5%). The best observed value was 7.1 (at water ratio = 8, paper wetness = 5, brush angle deg = 37.5).
For blooming, the most influential factors were paper wetness (40.1%), water ratio (33.9%), brush angle deg (26.1%). The best observed value was 2.4 (at water ratio = 2, paper wetness = 3, brush angle deg = 15).
Recommended Next Steps
- Run confirmation experiments at the predicted optimal settings to validate the model.
- Consider whether any fixed factors should be varied in a future study.
Experimental Setup
Factors
| Factor | Low | High | Unit |
water_ratio | 2 | 8 | ratio |
paper_wetness | 1 | 5 | level |
brush_angle_deg | 15 | 60 | deg |
Fixed: paper = 300gsm_cold_press, pigment = ultramarine
Responses
| Response | Direction | Unit |
evenness | ↑ maximize | pts |
blooming | ↓ minimize | pts |
Configuration
{
"metadata": {
"name": "Watercolor Wash Technique",
"description": "Box-Behnken design to maximize color evenness and minimize blooming by tuning water-to-pigment ratio, paper wetness, and brush angle"
},
"factors": [
{
"name": "water_ratio",
"levels": [
"2",
"8"
],
"type": "continuous",
"unit": "ratio"
},
{
"name": "paper_wetness",
"levels": [
"1",
"5"
],
"type": "continuous",
"unit": "level"
},
{
"name": "brush_angle_deg",
"levels": [
"15",
"60"
],
"type": "continuous",
"unit": "deg"
}
],
"fixed_factors": {
"paper": "300gsm_cold_press",
"pigment": "ultramarine"
},
"responses": [
{
"name": "evenness",
"optimize": "maximize",
"unit": "pts"
},
{
"name": "blooming",
"optimize": "minimize",
"unit": "pts"
}
],
"settings": {
"operation": "box_behnken",
"test_script": "use_cases/281_watercolor_wash/sim.sh"
}
}
Experimental Matrix
The Box-Behnken Design produces 15 runs. Each row is one experiment with specific factor settings.
| Run | water_ratio | paper_wetness | brush_angle_deg |
| 1 | 5 | 1 | 15 |
| 2 | 5 | 3 | 37.5 |
| 3 | 8 | 3 | 60 |
| 4 | 8 | 3 | 15 |
| 5 | 5 | 3 | 37.5 |
| 6 | 5 | 3 | 37.5 |
| 7 | 2 | 3 | 60 |
| 8 | 8 | 1 | 37.5 |
| 9 | 5 | 1 | 60 |
| 10 | 8 | 5 | 37.5 |
| 11 | 2 | 3 | 15 |
| 12 | 5 | 5 | 60 |
| 13 | 2 | 1 | 37.5 |
| 14 | 2 | 5 | 37.5 |
| 15 | 5 | 5 | 15 |
Step-by-Step Workflow
1
Preview the design
$ doe info --config use_cases/281_watercolor_wash/config.json
2
Generate the runner script
$ doe generate --config use_cases/281_watercolor_wash/config.json \
--output use_cases/281_watercolor_wash/results/run.sh --seed 42
3
Execute the experiments
$ bash use_cases/281_watercolor_wash/results/run.sh
4
Analyze results
$ doe analyze --config use_cases/281_watercolor_wash/config.json
5
Get optimization recommendations
$ doe optimize --config use_cases/281_watercolor_wash/config.json
6
Multi-objective optimization
With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.
$ doe optimize --config use_cases/281_watercolor_wash/config.json --multi
7
Generate the HTML report
$ doe report --config use_cases/281_watercolor_wash/config.json \
--output use_cases/281_watercolor_wash/results/report.html
Features Exercised
| Feature | Value |
| Design type | box_behnken |
| Factor types | continuous (all 3) |
| Arg style | double-dash |
| Responses | 2 (evenness ↑, blooming ↓) |
| Total runs | 15 |
Analysis Results
Generated from actual experiment runs using the DOE Helper Tool.
Response: evenness
Top factors: brush_angle_deg (43.0%), water_ratio (31.5%), paper_wetness (25.5%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| Source | DF | SS | MS | F | p-value |
| water_ratio | 2 | 1.1833 | 0.5917 | 0.392 | 0.6881 |
| paper_wetness | 2 | 1.1387 | 0.5693 | 0.377 | 0.6975 |
| brush_angle_deg | 2 | 2.1515 | 1.0758 | 0.712 | 0.5191 |
| Lack | of | Fit | 6 | 6.3998 | 1.0666 |
| Pure | Error | 2 | 3.0200 | | |
| Error | 8 | 9.4198 | 1.5100 | | |
| Total | 14 | 13.8933 | 0.9924 | | |
Pareto Chart
Main Effects Plot
Normal Probability Plot of Effects
Half-Normal Plot of Effects
Model Diagnostics
Response: blooming
Top factors: paper_wetness (40.1%), water_ratio (33.9%), brush_angle_deg (26.1%).
ANOVA
| Source | DF | SS | MS | F | p-value |
| Source | DF | SS | MS | F | p-value |
| water_ratio | 2 | 2.0227 | 1.0113 | 0.917 | 0.4381 |
| paper_wetness | 2 | 3.4455 | 1.7228 | 1.561 | 0.2676 |
| brush_angle_deg | 2 | 1.4073 | 0.7037 | 0.638 | 0.5534 |
| Lack | of | Fit | 6 | 13.3151 | 2.2192 |
| Pure | Error | 2 | 2.2067 | | |
| Error | 8 | 15.5218 | 1.1033 | | |
| Total | 14 | 22.3973 | 1.5998 | | |
Pareto Chart
Main Effects Plot
Normal Probability Plot of Effects
Half-Normal Plot of Effects
Model Diagnostics
Response Surface Plots
3D surfaces fitted with quadratic RSM. Red dots are observed data points.
blooming paper wetness vs brush angle deg
blooming water ratio vs brush angle deg
blooming water ratio vs paper wetness
evenness paper wetness vs brush angle deg
evenness water ratio vs brush angle deg
evenness water ratio vs paper wetness
Multi-Objective Optimization
When responses compete, Derringer–Suich desirability finds the best compromise.
Each response is scaled to a 0–1 desirability, then combined via a weighted geometric mean.
Overall Desirability
D = 0.7433
Per-Response Desirability
| Response | Weight | Desirability | Predicted | Dir |
evenness |
1.5 |
|
7.27 1.0000 7.27 pts |
↑ |
blooming |
1.0 |
|
4.71 0.4764 4.71 pts |
↓ |
Recommended Settings
| Factor | Value |
water_ratio | 6.2 ratio |
paper_wetness | 5 level |
brush_angle_deg | 15 deg |
Source: from RSM model prediction
Trade-off Summary
Sacrifice = how much worse than single-objective best.
| Response | Predicted | Best Observed | Sacrifice |
blooming | 4.71 | 2.40 | +2.31 |
Top 3 Runs by Desirability
| Run | D | Factor Settings |
| #5 | 0.6565 | water_ratio=5, paper_wetness=3, brush_angle_deg=37.5 |
| #6 | 0.6565 | water_ratio=8, paper_wetness=3, brush_angle_deg=15 |
Model Quality
| Response | R² | Type |
blooming | 0.9173 | quadratic |
Full Multi-Objective Output
============================================================
MULTI-OBJECTIVE OPTIMIZATION
Method: Derringer-Suich Desirability Function
============================================================
Overall desirability: D = 0.7433
Response Weight Desirability Predicted Direction
---------------------------------------------------------------------
evenness 1.5 1.0000 7.27 pts ↑
blooming 1.0 0.4764 4.71 pts ↓
Recommended settings:
water_ratio = 6.2 ratio
paper_wetness = 5 level
brush_angle_deg = 15 deg
(from RSM model prediction)
Trade-off summary:
evenness: 7.27 (best observed: 7.10, sacrifice: -0.17)
blooming: 4.71 (best observed: 2.40, sacrifice: +2.31)
Model quality:
evenness: R² = 0.6939 (quadratic)
blooming: R² = 0.9173 (quadratic)
Top 3 observed runs by overall desirability:
1. Run #3 (D=0.6597): water_ratio=5, paper_wetness=5, brush_angle_deg=15
2. Run #5 (D=0.6565): water_ratio=5, paper_wetness=3, brush_angle_deg=37.5
3. Run #6 (D=0.6565): water_ratio=8, paper_wetness=3, brush_angle_deg=15
Full Analysis Output
=== Main Effects: evenness ===
Factor Effect Std Error % Contribution
--------------------------------------------------------------
brush_angle_deg 1.0250 0.2572 43.0%
water_ratio 0.7500 0.2572 31.5%
paper_wetness 0.6071 0.2572 25.5%
=== ANOVA Table: evenness ===
Source DF SS MS F p-value
-----------------------------------------------------------------------------
water_ratio 2 1.1833 0.5917 0.392 0.6881
paper_wetness 2 1.1387 0.5693 0.377 0.6975
brush_angle_deg 2 2.1515 1.0758 0.712 0.5191
Lack of Fit 6 6.3998 1.0666 0.706 0.6864
Pure Error 2 3.0200 1.5100
Error 8 9.4198 1.5100
Total 14 13.8933 0.9924
=== Summary Statistics: evenness ===
water_ratio:
Level N Mean Std Min Max
------------------------------------------------------------
2 4 5.1000 0.9416 4.2000 6.4000
5 7 5.6000 0.8718 3.8000 6.3000
8 4 5.8500 1.3528 4.4000 7.1000
paper_wetness:
Level N Mean Std Min Max
------------------------------------------------------------
1 4 5.8500 1.2069 4.2000 7.1000
3 7 5.2429 1.0644 3.8000 6.9000
5 4 5.7250 0.7274 5.0000 6.4000
brush_angle_deg:
Level N Mean Std Min Max
------------------------------------------------------------
15 4 6.1000 0.7483 5.1000 6.9000
37.5 7 5.4714 1.1968 3.8000 7.1000
60 4 5.0750 0.6994 4.4000 6.0000
=== Main Effects: blooming ===
Factor Effect Std Error % Contribution
--------------------------------------------------------------
paper_wetness 1.1536 0.3266 40.1%
water_ratio 0.9750 0.3266 33.9%
brush_angle_deg 0.7500 0.3266 26.1%
=== ANOVA Table: blooming ===
Source DF SS MS F p-value
-----------------------------------------------------------------------------
water_ratio 2 2.0227 1.0113 0.917 0.4381
paper_wetness 2 3.4455 1.7228 1.561 0.2676
brush_angle_deg 2 1.4073 0.7037 0.638 0.5534
Lack of Fit 6 13.3151 2.2192 2.011 0.3687
Pure Error 2 2.2067 1.1033
Error 8 15.5218 1.1033
Total 14 22.3973 1.5998
=== Summary Statistics: blooming ===
water_ratio:
Level N Mean Std Min Max
------------------------------------------------------------
2 4 3.9500 1.7214 2.4000 6.4000
5 7 4.2571 0.8886 2.9000 5.7000
8 4 4.9250 1.4997 3.4000 6.8000
paper_wetness:
Level N Mean Std Min Max
------------------------------------------------------------
1 4 4.2500 0.7767 3.7000 5.4000
3 7 3.9714 1.4975 2.4000 6.8000
5 4 5.1250 1.1087 4.1000 6.4000
brush_angle_deg:
Level N Mean Std Min Max
------------------------------------------------------------
15 4 4.6000 1.5253 3.3000 6.8000
37.5 7 4.5000 1.1747 2.9000 6.4000
60 4 3.8500 1.3820 2.4000 5.7000
Optimization Recommendations
=== Optimization: evenness ===
Direction: maximize
Best observed run: #12
water_ratio = 8
paper_wetness = 5
brush_angle_deg = 37.5
Value: 7.1
RSM Model (linear, R² = 0.2424, Adj R² = 0.0358):
Coefficients:
intercept +5.5333
water_ratio +0.0875
paper_wetness +0.2875
brush_angle_deg +0.5750
RSM Model (quadratic, R² = 0.5495, Adj R² = -0.2614):
Coefficients:
intercept +5.9333
water_ratio +0.0875
paper_wetness +0.2875
brush_angle_deg +0.5750
water_ratio*paper_wetness +0.4000
water_ratio*brush_angle_deg +0.3250
paper_wetness*brush_angle_deg +0.6750
water_ratio^2 -0.3917
paper_wetness^2 +0.1083
brush_angle_deg^2 -0.4667
Curvature analysis:
brush_angle_deg coef=-0.4667 concave (has a maximum)
water_ratio coef=-0.3917 concave (has a maximum)
paper_wetness coef=+0.1083 convex (has a minimum)
Notable interactions:
paper_wetness*brush_angle_deg coef=+0.6750 (synergistic)
water_ratio*paper_wetness coef=+0.4000 (synergistic)
water_ratio*brush_angle_deg coef=+0.3250 (synergistic)
Predicted optimum (from linear model, at observed points):
water_ratio = 5
paper_wetness = 5
brush_angle_deg = 60
Predicted value: 6.3958
Surface optimum (via L-BFGS-B, linear model):
water_ratio = 8
paper_wetness = 5
brush_angle_deg = 60
Predicted value: 6.4833
Model quality: Weak fit — consider adding center points or using a different design.
Factor importance:
1. brush_angle_deg (effect: 1.2, contribution: 52.8%)
2. paper_wetness (effect: 0.6, contribution: 26.4%)
3. water_ratio (effect: 0.5, contribution: 20.8%)
=== Optimization: blooming ===
Direction: minimize
Best observed run: #9
water_ratio = 2
paper_wetness = 3
brush_angle_deg = 15
Value: 2.4
RSM Model (linear, R² = 0.2269, Adj R² = 0.0161):
Coefficients:
intercept +4.3533
water_ratio +0.3000
paper_wetness +0.4125
brush_angle_deg +0.6125
RSM Model (quadratic, R² = 0.8994, Adj R² = 0.7182):
Coefficients:
intercept +5.8333
water_ratio +0.3000
paper_wetness +0.4125
brush_angle_deg +0.6125
water_ratio*paper_wetness +0.3750
water_ratio*brush_angle_deg -0.0750
paper_wetness*brush_angle_deg +0.9000
water_ratio^2 -1.2417
paper_wetness^2 -0.2167
brush_angle_deg^2 -1.3167
Curvature analysis:
brush_angle_deg coef=-1.3167 concave (has a maximum)
water_ratio coef=-1.2417 concave (has a maximum)
paper_wetness coef=-0.2167 concave (has a maximum)
Notable interactions:
paper_wetness*brush_angle_deg coef=+0.9000 (synergistic)
water_ratio*paper_wetness coef=+0.3750 (synergistic)
Predicted optimum (from quadratic model, at observed points):
water_ratio = 5
paper_wetness = 5
brush_angle_deg = 60
Predicted value: 6.2250
Surface optimum (via L-BFGS-B, quadratic model):
water_ratio = 2
paper_wetness = 5
brush_angle_deg = 15
Predicted value: 1.2083
Model quality: Good fit — general trends are captured, some noise remains.
Factor importance:
1. brush_angle_deg (effect: 1.8, contribution: 44.7%)
2. water_ratio (effect: 1.4, contribution: 35.1%)
3. paper_wetness (effect: 0.8, contribution: 20.2%)