Weaving software saves a draft as a WIF text file. It lists which
shaft each warp end passes through (the threading) and which
shafts rise on each weft pick, either directly (a liftplan) or
through treadles (a tie-up plus a treadling). From
these, weaveDraft rebuilds the drawdown: a
binary matrix with one row per pick and one column per warp end, where 1
means the warp end is up on the fabric face.
f <- system.file("extdata", "twill_2_2.wif", package = "weaveDraft")
twill <- weave_draft_from_wif(f)
twill
#> <weave_draft> twill_2_2
#> 24 weft picks x 24 warp ends
#> source: WIF (tieup_treadling) | colours: yes
plot(twill)weave_metrics(twill)
#> name draft_style shafts picks ends repeat_picks repeat_ends
#> 1 twill_2_2 tieup_treadling 4 24 24 4 4
#> mean_warp_float mean_weft_float max_warp_float max_weft_float interlace_warp
#> 1 1.92 1.92 2 2 0.5
#> interlace_weft interlace_both float_ratio
#> 1 0.5 0.5 1mean_warp_float / mean_weft_float: average
number of threads a thread passes over before interlacing (1 = plain
interlacement).interlace_*: how often the drawdown changes state; 1
for a plain weave.repeat_picks / repeat_ends: size of the
smallest repeating unit.Some patterns live entirely in the thread colours. The bundled
gingham draft is a plain weave, structurally the simplest
cloth possible, yet it shows a clear check pattern.
g <- weave_draft_from_wif(system.file("extdata", "gingham_plain.wif",
package = "weaveDraft"))
weave_metrics(g)[, c("interlace_both", "mean_warp_float", "repeat_picks")]
#> interlace_both mean_warp_float repeat_picks
#> 1 1 1 2
plot(g) # the structure: a plain weavecolor_runs(g, "warp")
#> start end length hex index
#> 1 1 8 8 #C81E28 2
#> 2 9 16 8 #FFFFFF 1
#> 3 17 24 8 #C81E28 2
#> 4 25 32 8 #FFFFFF 1
#> 5 33 40 8 #C81E28 2Structural metrics alone describe the first picture; colour sequences describe the second. For colour-and-weave textiles, report both.
Many files store both a liftplan and a tie-up with treadling.
check_wif_consistency() rebuilds the drawdown from each and
compares them:
Any 0/1 matrix can be analysed: