← All Use Cases
🧵
Full Factorial Design

Leather Tanning Process

Full factorial of tanning agent concentration, soak time, pH, and fat liquor percentage to maximize softness and color uniformity

Summary

This experiment investigates leather tanning process. Full factorial of tanning agent concentration, soak time, pH, and fat liquor percentage to maximize softness and color uniformity.

The design varies 4 factors: tannin pct (%), ranging from 3 to 10, soak hrs (hrs), ranging from 4 to 24, ph (pH), ranging from 3 to 5, and fat liquor pct (%), ranging from 3 to 10. The goal is to optimize 2 responses: softness score (pts) (maximize) and color uniformity (pts) (maximize). Fixed conditions held constant across all runs include hide type = cowhide, method = vegetable.

A full factorial design was used to explore all 16 possible combinations of the 4 factors at two levels. This guarantees that every main effect and interaction can be estimated independently, at the cost of a larger experiment (16 runs).

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 softness score, the most influential factors were ph (54.0%), fat liquor pct (25.4%), tannin pct (11.1%). The best observed value was 8.3 (at tannin pct = 3, soak hrs = 4, ph = 5).

For color uniformity, the most influential factors were fat liquor pct (52.9%), soak hrs (21.0%), tannin pct (15.2%). The best observed value was 7.3 (at tannin pct = 10, soak hrs = 24, ph = 3).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
tannin_pct310%
soak_hrs424hrs
ph35pH
fat_liquor_pct310%

Fixed: hide_type = cowhide, method = vegetable

Responses

ResponseDirectionUnit
softness_score↑ maximizepts
color_uniformity↑ maximizepts

Configuration

use_cases/180_leather_tanning/config.json
{ "metadata": { "name": "Leather Tanning Process", "description": "Full factorial of tanning agent concentration, soak time, pH, and fat liquor percentage to maximize softness and color uniformity" }, "factors": [ { "name": "tannin_pct", "levels": [ "3", "10" ], "type": "continuous", "unit": "%" }, { "name": "soak_hrs", "levels": [ "4", "24" ], "type": "continuous", "unit": "hrs" }, { "name": "ph", "levels": [ "3", "5" ], "type": "continuous", "unit": "pH" }, { "name": "fat_liquor_pct", "levels": [ "3", "10" ], "type": "continuous", "unit": "%" } ], "fixed_factors": { "hide_type": "cowhide", "method": "vegetable" }, "responses": [ { "name": "softness_score", "optimize": "maximize", "unit": "pts" }, { "name": "color_uniformity", "optimize": "maximize", "unit": "pts" } ], "settings": { "operation": "full_factorial", "test_script": "use_cases/180_leather_tanning/sim.sh" } }

Experimental Matrix

The Full Factorial Design produces 16 runs. Each row is one experiment with specific factor settings.

Runtannin_pctsoak_hrsphfat_liquor_pct
1324510
2104310
3324310
432453
5102453
610453
7102433
810433
934310
103453
111024310
121024510
1332433
14104510
153433
1634510

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/180_leather_tanning/config.json
2

Generate the runner script

Terminal
$ doe generate --config use_cases/180_leather_tanning/config.json \ --output use_cases/180_leather_tanning/results/run.sh --seed 42
3

Execute the experiments

Terminal
$ bash use_cases/180_leather_tanning/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/180_leather_tanning/config.json
5

Get optimization recommendations

Terminal
$ doe optimize --config use_cases/180_leather_tanning/config.json
6

Multi-objective optimization

With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.

Terminal
$ doe optimize --config use_cases/180_leather_tanning/config.json --multi
7

Generate the HTML report

Terminal
$ doe report --config use_cases/180_leather_tanning/config.json \ --output use_cases/180_leather_tanning/results/report.html

Features Exercised

FeatureValue
Design typefull_factorial
Factor typescontinuous (all 4)
Arg styledouble-dash
Responses2 (softness_score ↑, color_uniformity ↑)
Total runs16

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: softness_score

Top factors: ph (54.0%), fat_liquor_pct (25.4%), tannin_pct (11.1%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
tannin_pct10.12250.12250.0710.8005
soak_hrs10.09000.09000.0520.8284
ph12.89002.89001.6750.2522
fat_liquor_pct10.64000.64000.3710.5691
tannin_pct*soak_hrs113.690013.69007.9340.0373
tannin_pct*ph11.44001.44000.8350.4029
tannin_pct*fat_liquor_pct10.81000.81000.4690.5237
soak_hrs*ph10.90250.90250.5230.5020
soak_hrs*fat_liquor_pct11.82251.82251.0560.3512
ph*fat_liquor_pct10.56250.56250.3260.5927
Error58.62751.7255
Total1531.59752.1065

Pareto Chart

Pareto chart for softness_score

Main Effects Plot

Main effects plot for softness_score

Normal Probability Plot of Effects

Normal probability plot for softness_score

Half-Normal Plot of Effects

Half-normal plot for softness_score

Model Diagnostics

Model diagnostics for softness_score

Response: color_uniformity

Top factors: fat_liquor_pct (52.9%), soak_hrs (21.0%), tannin_pct (15.2%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
tannin_pct10.27560.27560.2840.6169
soak_hrs10.52560.52560.5420.4948
ph10.14060.14060.1450.7191
fat_liquor_pct13.33063.33063.4310.1232
tannin_pct*soak_hrs10.00560.00560.0060.9423
tannin_pct*ph10.03060.03060.0320.8660
tannin_pct*fat_liquor_pct10.03060.03060.0320.8660
soak_hrs*ph10.22560.22560.2320.6501
soak_hrs*fat_liquor_pct10.14060.14060.1450.7191
ph*fat_liquor_pct10.01560.01560.0160.9040
Error54.85310.9706
Total159.57440.6383

Pareto Chart

Pareto chart for color_uniformity

Main Effects Plot

Main effects plot for color_uniformity

Normal Probability Plot of Effects

Normal probability plot for color_uniformity

Half-Normal Plot of Effects

Half-normal plot for color_uniformity

Model Diagnostics

Model diagnostics for color_uniformity

Response Surface Plots

3D surfaces fitted with quadratic RSM. Red dots are observed data points.

color uniformity ph vs fat liquor pct

RSM surface: color uniformity ph vs fat liquor pct

color uniformity soak hrs vs fat liquor pct

RSM surface: color uniformity soak hrs vs fat liquor pct

color uniformity soak hrs vs ph

RSM surface: color uniformity soak hrs vs ph

color uniformity tannin pct vs fat liquor pct

RSM surface: color uniformity tannin pct vs fat liquor pct

color uniformity tannin pct vs ph

RSM surface: color uniformity tannin pct vs ph

color uniformity tannin pct vs soak hrs

RSM surface: color uniformity tannin pct vs soak hrs

softness score ph vs fat liquor pct

RSM surface: softness score ph vs fat liquor pct

softness score soak hrs vs fat liquor pct

RSM surface: softness score soak hrs vs fat liquor pct

softness score soak hrs vs ph

RSM surface: softness score soak hrs vs ph

softness score tannin pct vs fat liquor pct

RSM surface: softness score tannin pct vs fat liquor pct

softness score tannin pct vs ph

RSM surface: softness score tannin pct vs ph

softness score tannin pct vs soak hrs

RSM surface: softness score tannin pct vs soak hrs

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.7777

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
softness_score 1.5
0.6337
6.50 0.6337 6.50 pts
color_uniformity 1.5
0.9545
7.30 0.9545 7.30 pts

Recommended Settings

FactorValue
tannin_pct10 %
soak_hrs24 hrs
ph3 pH
fat_liquor_pct10 %

Source: from observed run #12

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
color_uniformity7.307.30+0.00

Top 3 Runs by Desirability

RunDFactor Settings
#10.7406tannin_pct=10, soak_hrs=4, ph=3, fat_liquor_pct=10
#110.7152tannin_pct=10, soak_hrs=4, ph=5, fat_liquor_pct=3

Model Quality

ResponseType
color_uniformity0.1637linear

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.7777 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- softness_score 1.5 0.6337 6.50 pts ↑ color_uniformity 1.5 0.9545 7.30 pts ↑ Recommended settings: tannin_pct = 10 % soak_hrs = 24 hrs ph = 3 pH fat_liquor_pct = 10 % (from observed run #12) Trade-off summary: softness_score: 6.50 (best observed: 8.30, sacrifice: +1.80) color_uniformity: 7.30 (best observed: 7.30, sacrifice: +0.00) Model quality: softness_score: R² = 0.2475 (linear) color_uniformity: R² = 0.1637 (linear) Top 3 observed runs by overall desirability: 1. Run #12 (D=0.7777): tannin_pct=10, soak_hrs=24, ph=3, fat_liquor_pct=10 2. Run #1 (D=0.7406): tannin_pct=10, soak_hrs=4, ph=3, fat_liquor_pct=10 3. Run #11 (D=0.7152): tannin_pct=10, soak_hrs=4, ph=5, fat_liquor_pct=3

Full Analysis Output

doe analyze
=== Main Effects: softness_score === Factor Effect Std Error % Contribution -------------------------------------------------------------- ph 0.8500 0.3628 54.0% fat_liquor_pct -0.4000 0.3628 25.4% tannin_pct 0.1750 0.3628 11.1% soak_hrs -0.1500 0.3628 9.5% === ANOVA Table: softness_score === Source DF SS MS F p-value ----------------------------------------------------------------------------- tannin_pct 1 0.1225 0.1225 0.071 0.8005 soak_hrs 1 0.0900 0.0900 0.052 0.8284 ph 1 2.8900 2.8900 1.675 0.2522 fat_liquor_pct 1 0.6400 0.6400 0.371 0.5691 tannin_pct*soak_hrs 1 13.6900 13.6900 7.934 0.0373 tannin_pct*ph 1 1.4400 1.4400 0.835 0.4029 tannin_pct*fat_liquor_pct 1 0.8100 0.8100 0.469 0.5237 soak_hrs*ph 1 0.9025 0.9025 0.523 0.5020 soak_hrs*fat_liquor_pct 1 1.8225 1.8225 1.056 0.3512 ph*fat_liquor_pct 1 0.5625 0.5625 0.326 0.5927 Error 5 8.6275 1.7255 Total 15 31.5975 2.1065 === Interaction Effects: softness_score === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ tannin_pct soak_hrs -1.8500 41.8% soak_hrs fat_liquor_pct 0.6750 15.3% tannin_pct ph -0.6000 13.6% soak_hrs ph -0.4750 10.7% tannin_pct fat_liquor_pct 0.4500 10.2% ph fat_liquor_pct -0.3750 8.5% === Summary Statistics: softness_score === tannin_pct: Level N Mean Std Min Max ------------------------------------------------------------ 10 8 5.6500 1.6222 3.2000 7.4000 3 8 5.8250 1.3657 3.9000 8.3000 soak_hrs: Level N Mean Std Min Max ------------------------------------------------------------ 24 8 5.8125 1.7406 3.2000 8.3000 4 8 5.6625 1.2130 3.9000 7.2000 ph: Level N Mean Std Min Max ------------------------------------------------------------ 3 8 5.3125 1.3346 3.2000 7.1000 5 8 6.1625 1.5231 3.9000 8.3000 fat_liquor_pct: Level N Mean Std Min Max ------------------------------------------------------------ 10 8 5.9375 1.8338 3.2000 8.3000 3 8 5.5375 1.0295 4.3000 7.2000 === Main Effects: color_uniformity === Factor Effect Std Error % Contribution -------------------------------------------------------------- fat_liquor_pct -0.9125 0.1997 52.9% soak_hrs -0.3625 0.1997 21.0% tannin_pct 0.2625 0.1997 15.2% ph -0.1875 0.1997 10.9% === ANOVA Table: color_uniformity === Source DF SS MS F p-value ----------------------------------------------------------------------------- tannin_pct 1 0.2756 0.2756 0.284 0.6169 soak_hrs 1 0.5256 0.5256 0.542 0.4948 ph 1 0.1406 0.1406 0.145 0.7191 fat_liquor_pct 1 3.3306 3.3306 3.431 0.1232 tannin_pct*soak_hrs 1 0.0056 0.0056 0.006 0.9423 tannin_pct*ph 1 0.0306 0.0306 0.032 0.8660 tannin_pct*fat_liquor_pct 1 0.0306 0.0306 0.032 0.8660 soak_hrs*ph 1 0.2256 0.2256 0.232 0.6501 soak_hrs*fat_liquor_pct 1 0.1406 0.1406 0.145 0.7191 ph*fat_liquor_pct 1 0.0156 0.0156 0.016 0.9040 Error 5 4.8531 0.9706 Total 15 9.5744 0.6383 === Interaction Effects: color_uniformity === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ soak_hrs ph 0.2375 33.9% soak_hrs fat_liquor_pct -0.1875 26.8% tannin_pct ph -0.0875 12.5% tannin_pct fat_liquor_pct 0.0875 12.5% ph fat_liquor_pct -0.0625 8.9% tannin_pct soak_hrs 0.0375 5.4% === Summary Statistics: color_uniformity === tannin_pct: Level N Mean Std Min Max ------------------------------------------------------------ 10 8 5.4000 0.8071 4.2000 6.4000 3 8 5.6625 0.8228 4.8000 7.3000 soak_hrs: Level N Mean Std Min Max ------------------------------------------------------------ 24 8 5.7125 0.8026 4.8000 7.3000 4 8 5.3500 0.8053 4.2000 6.5000 ph: Level N Mean Std Min Max ------------------------------------------------------------ 3 8 5.6250 0.9254 4.2000 7.3000 5 8 5.4375 0.7009 4.7000 6.5000 fat_liquor_pct: Level N Mean Std Min Max ------------------------------------------------------------ 10 8 5.9875 0.7680 5.2000 7.3000 3 8 5.0750 0.5497 4.2000 5.9000

Optimization Recommendations

doe optimize
=== Optimization: softness_score === Direction: maximize Best observed run: #3 tannin_pct = 3 soak_hrs = 4 ph = 5 fat_liquor_pct = 3 Value: 8.3 RSM Model (linear, R² = 0.4132, Adj R² = 0.1998): Coefficients: intercept +5.7375 tannin_pct -0.8625 soak_hrs +0.2000 ph -0.0750 fat_liquor_pct +0.1625 RSM Model (quadratic, R² = 0.8105, Adj R² = -1.8424): Coefficients: intercept +1.1475 tannin_pct -0.8625 soak_hrs +0.2000 ph -0.0750 fat_liquor_pct +0.1625 tannin_pct*soak_hrs +0.0250 tannin_pct*ph -0.1000 tannin_pct*fat_liquor_pct +0.7375 soak_hrs*ph -0.0875 soak_hrs*fat_liquor_pct +0.4000 ph*fat_liquor_pct -0.2500 tannin_pct^2 +1.1475 soak_hrs^2 +1.1475 ph^2 +1.1475 fat_liquor_pct^2 +1.1475 Curvature analysis: ph coef=+1.1475 convex (has a minimum) tannin_pct coef=+1.1475 convex (has a minimum) soak_hrs coef=+1.1475 convex (has a minimum) fat_liquor_pct coef=+1.1475 convex (has a minimum) Notable interactions: tannin_pct*fat_liquor_pct coef=+0.7375 (synergistic) soak_hrs*fat_liquor_pct coef=+0.4000 (synergistic) Predicted optimum (from linear model, at observed points): tannin_pct = 3 soak_hrs = 24 ph = 3 fat_liquor_pct = 10 Predicted value: 7.0375 Surface optimum (via L-BFGS-B, linear model): tannin_pct = 3 soak_hrs = 24 ph = 3 fat_liquor_pct = 10 Predicted value: 7.0375 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. tannin_pct (effect: 1.7, contribution: 66.3%) 2. soak_hrs (effect: -0.4, contribution: 15.4%) 3. fat_liquor_pct (effect: -0.3, contribution: 12.5%) 4. ph (effect: -0.2, contribution: 5.8%) === Optimization: color_uniformity === Direction: maximize Best observed run: #12 tannin_pct = 10 soak_hrs = 24 ph = 3 fat_liquor_pct = 10 Value: 7.3 RSM Model (linear, R² = 0.6781, Adj R² = 0.5611): Coefficients: intercept +5.5313 tannin_pct +0.0937 soak_hrs +0.2938 ph -0.4813 fat_liquor_pct -0.2813 RSM Model (quadratic, R² = 0.8655, Adj R² = -1.0181): Coefficients: intercept +1.1063 tannin_pct +0.0938 soak_hrs +0.2938 ph -0.4812 fat_liquor_pct -0.2812 tannin_pct*soak_hrs +0.2062 tannin_pct*ph +0.0313 tannin_pct*fat_liquor_pct +0.1813 soak_hrs*ph -0.1187 soak_hrs*fat_liquor_pct +0.0312 ph*fat_liquor_pct -0.1437 tannin_pct^2 +1.1063 soak_hrs^2 +1.1063 ph^2 +1.1063 fat_liquor_pct^2 +1.1063 Curvature analysis: tannin_pct coef=+1.1063 convex (has a minimum) soak_hrs coef=+1.1063 convex (has a minimum) ph coef=+1.1063 convex (has a minimum) fat_liquor_pct coef=+1.1063 convex (has a minimum) Predicted optimum (from linear model, at observed points): tannin_pct = 10 soak_hrs = 24 ph = 3 fat_liquor_pct = 3 Predicted value: 6.6813 Surface optimum (via L-BFGS-B, linear model): tannin_pct = 10 soak_hrs = 24 ph = 3 fat_liquor_pct = 3 Predicted value: 6.6813 Model quality: Moderate fit — use predictions directionally, not precisely. Factor importance: 1. ph (effect: -1.0, contribution: 41.8%) 2. soak_hrs (effect: -0.6, contribution: 25.5%) 3. fat_liquor_pct (effect: 0.6, contribution: 24.5%) 4. tannin_pct (effect: -0.2, contribution: 8.2%)
← Previous: Sewing Machine Stitch Quality All Use Cases →