Textile Notes related to fiber, yarn, fabric knowledge, spinning, weaving, processing, projects, knitting, Indian Traditional Textiles and denim manufacturing
A T-shirt can look balanced at final inspection, yet after washing one side seam may migrate toward the front while the other moves toward the back. This distortion is called garment spirality or seam twist. It is especially associated with circular-knitted single jersey used for T-shirts, vests and innerwear.
Spirality is not simply poor sewing. It reflects interactions among yarn torque, loop geometry, knitting, relaxation, wet processing, finishing and assembly. Laundering releases stresses that may be hidden in freshly finished fabric, so control must extend from spinning through final testing.
A side seam that appears vertical before laundering can rotate as stored stresses are released.
What Spirality Actually Means
In a balanced knit, wale lines should run approximately along the garment length and courses approximately across the width. In a spiral fabric, the wales are inclined instead of being perpendicular to the courses. When garment panels are cut and joined, this inclination appears as a rotating side seam, an uneven hem or a body that no longer hangs symmetrically.
Skew describes angular distortion in a fabric. Spirality is the helical distortion common in tubular or circular knits. Seam twist is its garment-level manifestation. The terms are connected, but fabric and finished-garment tests do not necessarily answer the same question.
Why Single Jersey Is Vulnerable
Single jersey is structurally unbalanced: all face loops are oriented in the same basic manner. When a twist-lively single yarn bends into these asymmetric loops, its residual torsional energy can encourage the loop columns to lean. The effect becomes more visible when water, agitation, heat and drying allow the yarn and loops to seek a lower-energy configuration.
A systematic Hong Kong Polytechnic University study established a quantitative relationship between measured yarn twist liveliness and spirality in pure cotton single-jersey fabrics. It also showed why yarn behaviour must be measured rather than inferred only from nominal twist. Twist level matters, but fibre type, spinning route and downstream processing also affect residual torque.
Readers who want the spinning background can connect this behaviour with the role of the traveller in ring spinning. The traveller is part of the twist-and-winding mechanism, while the resulting yarn structure later influences knitting performance. The comparison of open-end and ring yarn properties is also useful because yarns with similar count and appearance may differ in structure and torque response.
Residual yarn torque and asymmetric loop geometry can combine to incline the wale columns.
The Main Variables
Stage
Risk factor
Useful control
Yarn
High or inconsistent twist liveliness; unbalanced singles yarn
Specify torque performance, not twist alone; trial balanced or plied constructions where suitable
Hold stitch length and yarn input tension consistently; evaluate machine direction and lot variation
Wet processing
Uneven relaxation, rope distortion, uncontrolled tension or inadequate finishing
Allow controlled relaxation; optimise slitting, spreading, stentering and compacting
Garmenting
Panels cut before relaxation, off-grain laying or inconsistent panel orientation
Relax rolls before spreading; align wales and approved grain lines; keep cutting directions consistent
Testing
Judging only the unwashed garment or changing the wash/dry procedure
Use an agreed laundering method, number of cycles and acceptance limit for every lot
No single setting guarantees zero spirality. Compaction can improve dimensional stability, but it cannot fully neutralise a highly twist-lively yarn. A lower-torque yarn likewise cannot compensate for severe processing distortion or off-grain cutting.
Two-ply or torque-balanced yarns can reduce the tendency to rotate because opposing torque components can partly cancel. The earlier My Textile Notes explanation of EliTwist yarn gives one example of a compact, spin-twisted route. Such yarn changes must still be assessed for cost, count, hand, strength, appearance and the specific knit construction; they are options, not universal remedies.
How to Measure It Correctly
The first rule is to test the condition that matters commercially. ISO 16322-3:2021 specifies procedures for measuring spirality or torque in woven and knitted garments after domestic laundering. ISO explicitly notes that results from different procedures may not be comparable and that the method is intended for the post-laundering condition, not merely the as-manufactured garment.
AATCC now separates fabric skew and garment seam twist. AATCC TM179-2025 addresses skew change in fabrics after home laundering, while AATCC TM207-2025 is titled Seam Twist in Garments Before and After Home Laundering. Therefore, a test report should identify the exact method and edition instead of stating only “spirality tested.”
In practice, the laboratory identifies reference positions, performs the specified washing and drying sequence, conditions the specimen, lays it without stretching, and measures the required displacement or angle. ISO 6330:2021 defines domestic washing and drying procedures, detergents and ballast conditions for textile testing. Because machine type, detergent and drying route can affect results, suppliers and buyers must agree on the procedure.
A result should record direction, magnitude, number of cycles, garment size, colour, fabric lot, wash programme, drying method and conditioning. Acceptance limits are buyer- and product-specific, not universal pass/fail values.
A Practical Mill-to-Garment Control Plan
Screen development yarns for twist liveliness or snarling tendency and confirm performance in a knitted trial, not only on the yarn package.
Knit a representative trial using production stitch length, gauge, feeder plan, diameter and finishing route.
Measure greige, dyed, finished and laundered conditions. This reveals where the distortion appears or is being temporarily masked.
Relax finished rolls before spreading. Check wale alignment, bow and skew across the width and through the roll.
Make pilot garments and test several sizes and colour lots after the agreed wash cycles. Garment assembly can alter how fabric distortion becomes seam twist.
Release bulk only after comparing results with the approved specification and retaining a traceable record.
Reliable control links yarn selection, knitting, relaxation, finishing, cutting and post-wash verification.
For Indian clusters producing cotton T-shirts, hosiery and innerwear, checking only the finished roll or first shipment is risky. Processing conditions, large lots, subcontracted finishing and compressed schedules can change relaxation history. Pilot garments and lot-wise wash verification can prevent a visually acceptable fabric from becoming a complaint.
Conclusion
Spirality is a chain-of-process problem. Yarn torque supplies a driving force, single-jersey geometry makes rotation easier, and processing or assembly determines how strongly it appears. Finishing can manage the symptom, but robust control begins with the yarn and continues through knitting, relaxation, cutting and laundering.
The most useful question is not “Does the unwashed T-shirt look straight?” It is “After the agreed care cycle, are its wales, seams and hem still acceptable for the intended product?” That question turns spirality from a late inspection surprise into a measurable development parameter. For broader context on the final processing stage, see Textile Finishing.
A textile image classifier may report 95% accuracy and still fail on the classes that matter most. The problem is not necessarily the model; it may be the way performance is being measured.
Computer vision is increasingly used for fabric-defect detection, fibre and weave identification, garment inspection, print recognition and saree classification. Accuracy is usually the first number reported because it is easy to understand: how many test images were classified correctly? Yet textile datasets are rarely perfectly balanced, and several classes may share colours, borders, motifs, yarn effects or surface textures. Under these conditions, one overall percentage can conceal serious weaknesses.
This question extends the earlier My Textile Notes discussion on deep learning for saree texture identification. Once a model has been built, the next challenge is deciding whether its performance is genuinely useful.
Why a High Accuracy Can Be Misleading
Accuracy is the number of correct predictions divided by the total number of predictions. It is valid, but it gives every image equal weight rather than every class equal importance. Imagine a hypothetical textile test set containing 700 images from a dominant catalogue class, 200 ikat images, 80 brocade images and only 20 images from a rare handloom class. Suppose the model correctly identifies 680, 170, 45 and 2 images respectively. Overall accuracy is 897 out of 1,000, or 89.7%.
That sounds respectable. However, recall for the rare class is only 10%, and recall for the 80-image class is about 56%. The model is performing well mainly because the large classes dominate the total. A merchandiser, museum archive or provenance-research project could therefore receive a reassuring accuracy figure while the less common textiles are being missed.
Strong performance on a majority class can hide failure on rare but important textiles.
Read the Confusion Matrix Before Celebrating
A confusion matrix places true classes in rows and predicted classes in columns. The diagonal contains correct predictions; off-diagonal cells show the direction of errors. This is especially valuable in textiles because not all mistakes are equally informative. If two classes are repeatedly confused, the pattern may point to similar motifs, inadequate image views, inconsistent labelling, insufficient samples or a taxonomy that cannot be resolved from appearance alone.
For example, images of two saree traditions may share floral zari, contrast borders or similar catalogue photography even though their weaving structures and provenance differ. The confusion matrix reveals the pairwise problem that accuracy suppresses. It should be examined in both raw counts and row-normalised form: counts show the workload represented by each error, while row normalisation shows what proportion of each true class is being recovered.
Off-diagonal clusters identify the textile pairs that require better data, labels or features.
The Minimum Metric Set
Measure
What it answers
Why it matters in textiles
Per-class recall
Of all true images in a class, how many were found?
Exposes classes the model repeatedly misses.
Per-class precision
Of all images assigned to a class, how many really belong there?
Shows whether a label is being overused.
F1 score
How well are precision and recall balanced?
Useful when false positives and false negatives both matter.
Macro-F1
What is the unweighted average of class-level F1 scores?
Prevents large classes from dominating the summary.
Balanced accuracy
What is the average recall across classes?
Makes minority-class weakness visible.
The official scikit-learn model-evaluation guide defines precision, recall and F-measures and explains multiclass averaging. Its documentation defines balanced accuracy as the average recall obtained on each class. In the hypothetical example above, balanced accuracy is only about 62%, far below the 89.7% overall accuracy. Weighted-F1 should also be treated cautiously because weighting by class support can again allow large classes to dominate.
Prevent Leakage Before Calculating Any Metric
Metrics are trustworthy only when the test set is genuinely independent. Textile datasets often contain several photographs of the same physical saree, garment, fabric roll or defect: full view, pallu, border, close-up and reverse side. If these related images are randomly divided, one view can enter training while another view of the same item enters testing. The model may recognise the product, background or photo session rather than learning a general textile characteristic.
A group-aware split keeps all images from one physical item together. The GroupKFold documentation describes non-overlapping groups, with each group appearing in the test set once across the folds. Depending on the research claim, an appropriate group may be a physical saree, fabric roll, production lot, motif artwork, vendor or photography session. The grouping decision should be recorded in the paper or project report.
A trustworthy pipeline combines group-aware splitting, several metrics and expert review of difficult image pairs.
Match Evaluation to the Real Decision
The best metric depends on how the system will be used. For automatic catalogue tagging, precision may be important because a wrong public label damages trust. For archive retrieval, recall may matter more because missing a relevant textile is costly. For an expert-assistance tool, top-k accuracy can be useful: the correct class may be accepted if it appears among the model’s three most likely suggestions. Top-k performance, however, should complement rather than replace top-1 and class-wise results.
Error cost also varies. Confusing two colourways within one construction is not equivalent to assigning an unsupported provenance or craft identity. Visual appearance alone may not prove fibre composition, weaving technique, authenticity or geographical origin. A textile expert should review recurring error pairs and decide whether better images, microscopic structure, metadata or a revised label hierarchy is required.
Report the number of images and physical groups in each class.
Explain how train, validation and test sets were separated.
Provide accuracy, macro-F1, balanced accuracy and per-class precision and recall.
Show raw and row-normalised confusion matrices.
Review the most frequent error pairs with a textile expert.
Test on images from new products, lots, vendors or capture conditions.
State what the model cannot establish from an image alone.
Conclusion
Accuracy is a useful starting point, not a complete verdict. Textile image datasets combine class imbalance, fine visual differences, repeated views and domain-specific error costs. A reliable evaluation therefore needs class-wise metrics, a confusion matrix, group-aware splitting and expert interpretation. The most important question is not “How high is the accuracy?” but “Which textiles does the model recognise, which does it confuse, and would those errors be acceptable in the intended application?”
A fabric may absorb sweat, spread it, move it away from the skin, or simply hold it where it first lands. These behaviours are related, but they are not the same. AATCC TM195 helps separate them.
Moisture management has become an important selling point in activewear, innerwear, sports uniforms, socks, workwear and next-to-skin clothing. Yet the phrase is often used loosely. A fabric may be described as “moisture managing” merely because it is made from polyester, contains a finish, or dries quickly in an informal trial. Such statements can be misleading because comfort depends on several different processes: wetting, absorption, liquid transfer through the thickness, spreading across each surface, evaporation and heat transfer.
AATCC TM195, Liquid Moisture Management Properties of Textile Fabrics, is designed to measure, evaluate and classify the dynamic liquid-moisture behaviour of knitted, woven and nonwoven fabrics. It is particularly useful when a buyer, mill or product developer wants to understand what happens after liquid sweat reaches the skin-facing side of a fabric.
How the Moisture Management Tester Works
A specimen is placed horizontally between an upper and a lower sensor. The upper surface normally represents the side worn next to the skin, while the lower surface represents the outer side of the garment. A controlled test liquid is introduced onto the upper face. Concentric sensor rings then track changes in electrical response as the liquid wets, spreads and passes through the fabric.
The instrument does not produce only one number. It records a time-dependent moisture profile for both fabric faces. A commercial MMT system typically reports wetting time, absorption rate, maximum wetted radius and spreading speed for the top and bottom surfaces, together with one-way transport capability and Overall Moisture Management Capability. The SDL Atlas MMT literature describes this as a two-minute performance profile. Laboratories should, however, follow the current authorised version of the test method rather than rely on an instrument brochure for procedural details.
The tester separately tracks wetting and spreading on the skin-facing and outer surfaces.
The Main Results and What They Mean
Result
Practical interpretation
Common misunderstanding
Wetting time
Time before each surface begins to wet. A shorter time means that face responds to liquid sooner.
Fast wetting alone does not prove that moisture moves away from the skin.
Absorption rate
Rate at which the measured water content rises on each surface after wetting.
High top-face absorption may mean that sweat is being retained near the skin.
Maximum wetted radius
Farthest radial distance reached by liquid on the top or bottom sensor.
It should not be treated as a complete measurement of irregular wetted area.
Spreading speed
How quickly the wetting front travels across each face.
Fast spreading can support evaporation, but the test does not directly measure evaporation.
Accumulative one-way transport
Compares accumulated liquid on the outer face with that on the skin face. A strongly positive value generally indicates preferential movement toward the outer side.
Its sign and meaning depend on correct face orientation.
OMMC
A composite index based on bottom-face absorption, one-way transport and bottom-face spreading.
It is not a universal comfort score and should not replace the individual results.
The University of Zagreb Textile Faculty’s MMT laboratory page lists the same output family: OMMC, one-way transport, top and bottom wetting time, absorption rate, maximum wetted radius and spreading speed. This is why an MMT report should be read as a pattern rather than reduced immediately to one grade.
Why OMMC Must Be Read Carefully
Overall Moisture Management Capability is useful because it combines three desirable behaviours: liquid should be taken up on the outer face, transported preferentially from the inner face to the outer face, and spread on the outer face. In commonly reported formulations, one-way transport receives greater weight than either bottom absorption or bottom spreading. The logic is sensible: a fabric that absorbs sweat but keeps it beside the skin is not managing moisture in the same way as a fabric that moves it outward.
Nevertheless, two fabrics with similar OMMC values may behave differently. One may achieve its score through strong one-way transport but moderate spreading; another may spread rapidly while showing weaker through-thickness transfer. Product developers should therefore retain the complete top-versus-bottom result table and moisture curves when comparing constructions or finishes.
Three Typical Moisture-Management Patterns
Absorbent but clammy: The top surface wets quickly and absorbs strongly, while bottom-face spreading and one-way transport remain low. A hydrophilic fibre can absorb sweat without efficiently moving it away from the skin.
Water-repellent on both faces: Wetting is delayed and the wetted radii remain small. This may be desirable for an outer shell, but it is usually not the desired next-to-skin behaviour for activewear.
Directional moisture management: The skin face accepts the liquid, the outer face wets and spreads, and the one-way transport value is positive. This pattern is often sought in plated knits, engineered blends and fabrics with different inner and outer surface chemistries.
The same amount of liquid can produce very different top-versus-bottom moisture patterns.
Why Fibre Content Alone Cannot Predict the Result
Cotton is hydrophilic, while conventional polyester is relatively hydrophobic, but a simple cotton-versus-polyester rule is inadequate. Yarn twist, filament or staple form, cross-section, yarn packing, loop geometry, fabric density, thickness, surface roughness, capillary paths and chemical finish all influence the result. A polyester knit with engineered capillaries and a durable hydrophilic finish may transport liquid effectively. A dense cotton fabric may absorb well but spread or dry slowly.
The two faces may also be intentionally different. In a plated knit, a low-absorbency inner yarn can help direct liquid toward a more absorbent outer layer. Brushing, raising, calendaring, coating and softening may alter surface contact and capillary continuity. Readers may connect this with earlier My Textile Notes explanations of how cotton absorbs moisture, the role of textile finishing, and the moisture behaviour of nylon 6,6.
A Practical Testing Plan for Mills and Buyers
Define the end use first. Innerwear, running shirts, school uniforms and waterproof shells do not require the same liquid behaviour.
Mark the fabric faces. Record clearly which side touches the skin. Reversing the specimen can reverse the apparent direction of transport.
Compare construction stages. Test greige, dyed and finished fabric when possible to separate structural effects from finishing effects.
Check durability. Repeat testing after the agreed laundering sequence. A strong initial result from a non-durable hydrophilic finish may disappear in use.
Use complementary tests. AATCC lists separate methods for vertical and horizontal wicking, drying time, drying rate and water-vapour transmission. These properties should not be inferred from TM195 alone.
Judge consistency, not one specimen. Compare replicates, lots, colourways and production batches, especially when a moisture-management claim will appear on packaging or in buyer specifications.
For Indian apparel suppliers, this distinction is commercially important. A mill may develop a polyester–cotton school-uniform fabric, a plated sports knit or a finished hosiery fabric and obtain an attractive OMMC value. That result becomes meaningful only when it is linked to the correct fabric face, wash durability, garment construction, intended climate and complementary drying or vapour-transfer data.
Moisture management is created by the whole textile system, not fibre content alone.
What TM195 Does Not Tell Us
TM195 does not directly reproduce the complete human microclimate. It does not by itself measure sweat evaporation into moving air, water-vapour transmission, thermal resistance, garment fit, pressure at the skin, cling, chafing or the wearer’s subjective sensation. A fabric can move liquid efficiently yet still feel hot because of low air permeability or garment design. Conversely, a loosely constructed fabric may feel comfortable in mild activity even without a high directional-transport score.
AATCC TM195 is valuable because it separates the journey of liquid moisture into observable stages. It tells us when each face wets, how rapidly moisture content rises, how far and how quickly liquid spreads, whether transport is preferentially directed away from the skin, and how these behaviours combine in OMMC.
The most useful question is therefore not, “Which fabric has the highest OMMC?” It is, “Does this top-versus-bottom moisture pattern suit the garment, wearer, climate and use condition?” When read in that way, the test becomes more than a laboratory grade. It becomes a practical development tool for fibre selection, fabric engineering, finishing, quality assurance and truthful product communication.
General disclaimer: This article is for educational and technical understanding. Laboratories and suppliers should use the current authorised test method, calibrated equipment, agreed conditioning and sampling procedures, and buyer-approved specifications for commercial decisions.
In garment manufacturing, fabric is one of the largest cost components. A small improvement in fabric utilisation can reduce cost, improve margin and reduce cutting-room waste. This is why marker planning is not merely a drafting activity. It is also an applied optimization problem.
Marker efficiency is usually taught as a simple percentage, but behind that percentage lies a difficult geometric problem. The cutting room has to arrange many garment pattern pieces on a fixed-width fabric surface so that the unused area is as low as possible. Since garment pieces are irregular in shape, the problem is closely related to the two-dimensional irregular nesting or irregular strip-packing problem.
In simple words, the question is:
How can all required garment pattern pieces be placed on a fabric marker of fixed width so that the total marker length and fabric waste are minimized?
Visual 1: Marker efficiency as an optimization problem — pattern pieces, fixed fabric width, marker length and unused area.
1. What Is Marker Efficiency?
Marker efficiency measures how much of the marker area is actually occupied by garment pattern pieces. It is normally expressed as:
\[
\text{Marker Efficiency} =
\frac{\text{Total area occupied by pattern pieces}}{\text{Total marker area}}
\times 100
\]
If the total area of all pattern pieces is \(A\), the usable fabric width is \(W\), and the marker length is \(L\), then:
\[
\eta = \frac{A}{W \times L} \times 100
\]
where \(\eta\) is marker efficiency. The total pattern area may also be written as:
\[
A = \sum_{i=1}^{n} A_i
\]
Here, \(A_i\) is the area of pattern piece \(i\), and \(n\) is the number of pattern pieces placed in the marker.
For a given garment, the total pattern area is mostly fixed. For a given fabric, the usable width is also mostly fixed. Therefore, improving marker efficiency usually means reducing marker length:
\[
\min L
\]
This is the basic mathematical reason why marker planning can be treated as an optimization problem.
2. Why Marker Making Is an Optimization Problem
A marker is not only a drawing of pattern pieces. It is a placement plan. It decides where each front, back, sleeve, collar, cuff, pocket or waistband piece will lie on the fabric before cutting.
If garment pieces were simple rectangles, marker planning would be easier. But garment pieces are usually irregular shapes. They have curves, slopes, armholes, neck drops, sleeve caps, tapered sides and other non-rectangular boundaries. This makes the placement problem difficult.
A good marker tries to use the empty spaces between pieces intelligently. A small piece may fit into the hollow left by a larger piece. Two curved edges may be placed near each other to reduce waste. One arrangement may create long unused gaps, while another arrangement may reduce the marker length.
Thus, marker efficiency is not just about adding areas. It is about arranging shapes.
3. Marker Making as a 2D Irregular Nesting Problem
In operations research, this type of problem is close to the two-dimensional irregular nesting problem. In this problem, irregular shapes must be placed inside a rectangular strip. The strip has a fixed width and an adjustable length. The objective is to minimize the used length.
In garment terms, the strip is the marker. The fixed width is the usable fabric width. The irregular shapes are garment pattern pieces. The objective is to reduce marker length and improve marker efficiency.
This means that two pattern pieces should not overlap.
Each piece must also remain inside the marker boundary:
\[
P_i \subseteq [0,W] \times [0,L]
\]
So the simplified optimization problem becomes:
\[
\min L
\]
subject to:
\[
P_i \cap P_j = \varnothing
\]
\[
P_i \subseteq [0,W] \times [0,L]
\]
In words, place all pieces inside the usable fabric width without overlap, and make the marker as short as possible.
4. Real Garment Constraints
The simplified mathematical problem is useful for understanding the logic. However, real garment markers must obey additional textile and production constraints.
Constraint
Meaning in Marker Planning
Effect on Efficiency
Grainline
Pieces must usually follow the warp direction or a specified angle.
Reduces free rotation and may increase waste.
Nap direction
Pile, brushed, shaded or directional fabrics may need one-way placement.
Prevents reverse placement of pieces.
Print or check matching
Stripes, checks, borders or engineered prints may need visual alignment.
Can force additional spacing or special placement.
Size ratio
The marker may need pieces for several sizes in a fixed ratio.
Changes the mix and number of pieces in the marker.
Pairing
Left and right components may need controlled flipping or pairing.
Limits some placements that look efficient geometrically.
Cutting allowance
Small gaps may be needed for cutting accuracy and blade movement.
Prevents unrealistically tight packing.
Visual 2: 2D irregular nesting — irregular garment pieces placed inside a fixed-width marker without overlap.
5. A Simple Python Example
The following Python example explains marker efficiency as a simplified 2D nesting problem. Instead of using true CAD pattern pieces, it uses small binary grids. In these grids, the number 1 represents the occupied part of a garment piece, while 0 represents empty space inside the bounding box.
This is a simplified teaching model. It is not a replacement for professional marker-making CAD software. However, it clearly demonstrates the logic of placing irregular shapes inside a fixed-width marker.
from typing import List, Tuple
def rotate_mask(mask):
"""
Rotate a binary pattern-piece mask by 90 degrees clockwise.
"""
return [list(row) for row in zip(*mask[::-1])]
def mask_size(mask):
"""
Return width and height of a binary mask.
"""
return len(mask[0]), len(mask)
def mask_area(mask):
"""
Count occupied cells in a binary mask.
"""
return sum(sum(row) for row in mask)
def ensure_height(grid, height, fabric_width):
"""
Extend the marker grid vertically when required.
"""
while len(grid) < height:
grid.append([0] * fabric_width)
def can_place(grid, mask, x, y, fabric_width):
"""
Check whether a piece can be placed at position (x, y)
without crossing fabric width or overlapping existing pieces.
"""
piece_width, piece_height = mask_size(mask)
if x + piece_width > fabric_width:
return False
ensure_height(grid, y + piece_height, fabric_width)
for row in range(piece_height):
for col in range(piece_width):
if mask[row][col] == 1 and grid[y + row][x + col] != 0:
return False
return True
def place_piece(grid, mask, x, y, piece_id):
"""
Place a piece on the marker grid.
"""
piece_width, piece_height = mask_size(mask)
for row in range(piece_height):
for col in range(piece_width):
if mask[row][col] == 1:
grid[y + row][x + col] = piece_id
def used_marker_length(grid):
"""
Find the used marker length.
"""
last_used_row = -1
for row_index, row in enumerate(grid):
if any(cell != 0 for cell in row):
last_used_row = row_index
return last_used_row + 1
def render_marker(grid):
"""
Print the marker layout.
Dots represent unused fabric.
Numbers represent different pattern pieces.
"""
length = used_marker_length(grid)
for row in grid[:length]:
print("".join("." if cell == 0 else str(cell) for cell in row))
def bottom_left_marker(pieces, fabric_width, allow_rotation=True):
"""
A simple bottom-left marker-making heuristic.
Larger pieces are placed first.
Each piece is placed at the lowest and leftmost feasible position.
"""
pieces = sorted(
pieces,
key=lambda piece: mask_area(piece["mask"]),
reverse=True
)
grid = []
placements = []
for piece_id, piece in enumerate(pieces, start=1):
possible_orientations = [(piece["mask"], 0)]
if allow_rotation:
rotated = rotate_mask(piece["mask"])
if rotated != piece["mask"]:
possible_orientations.append((rotated, 90))
best_position = None
max_search_height = 100
for y in range(max_search_height):
for x in range(fabric_width):
for oriented_mask, angle in possible_orientations:
if can_place(grid, oriented_mask, x, y, fabric_width):
best_position = (x, y, oriented_mask, angle)
break
if best_position is not None:
break
if best_position is not None:
break
if best_position is None:
raise RuntimeError(f"Could not place piece: {piece['name']}")
x, y, selected_mask, angle = best_position
ensure_height(
grid,
y + mask_size(selected_mask)[1],
fabric_width
)
place_piece(grid, selected_mask, x, y, piece_id)
placements.append({
"id": piece_id,
"name": piece["name"],
"x": x,
"y": y,
"rotation": angle,
"area": mask_area(selected_mask),
"size": mask_size(selected_mask)
})
total_piece_area = sum(item["area"] for item in placements)
marker_length = used_marker_length(grid)
marker_area = fabric_width * marker_length
marker_efficiency = (total_piece_area / marker_area) * 100
return grid, placements, marker_length, marker_efficiency
Now let us define a small example. Assume a simple garment has six pattern pieces: front panel, back panel, sleeve, collar, cuff and pocket. The usable fabric width is assumed to be 10 grid units.
This means that 70% of the marker area is occupied by pattern pieces, while 30% remains unused. The result also shows why shape arrangement matters. The efficiency is not decided only by the total area of the pieces. It also depends on how the shapes fit together inside the fixed marker width.
The simple Python example is useful for learning, but it has several limitations. These limitations are important because real marker making is more complex than the example suggests.
Problem
Why It Matters
Rasterized shapes
The code uses grid cells instead of true CAD pattern curves and polygons. Real garment pieces have smooth curves, not square blocks.
No seam allowance logic
Industrial patterns include seam allowance, notches, drill marks, internal cut points and tolerances.
Rotation is too simple
The code allows 90-degree rotation, but real pieces may be restricted by grainline, nap, print direction or stretch direction.
No cutting gap
The example allows pieces to touch closely. In real cutting, a minimum gap may be needed depending on equipment and fabric behaviour.
Not globally optimal
The bottom-left method is a heuristic. It gives a feasible solution, but not necessarily the best possible solution.
No size-ratio planning
Real markers often contain multiple sizes in a ratio such as S:M:L:XL. This example uses one simplified piece set.
No fabric defects
Actual cutting may require avoiding defects, shade variation or border-placement restrictions.
Therefore, this example should be understood as a conceptual model, not as a production-grade marker-making system. Its purpose is to show why marker efficiency is an optimization problem and how an algorithm can begin to solve it.
8. Business Meaning of Marker Efficiency
Marker efficiency directly affects fabric consumption. If two markers produce the same garment output but one uses less fabric length, the more efficient marker reduces fabric cost.
For example, assume two markers contain the same total pattern area. If one marker gives 80% efficiency and another gives 85% efficiency, the second marker uses less fabric for the same garment output. In high-volume production, even a small improvement in marker efficiency can become commercially meaningful.
Marker efficiency affects:
fabric cost,
cutting-room waste,
garment costing,
production planning,
vendor negotiation, and
sustainability reporting.
However, marker efficiency should not be judged blindly. A lower marker efficiency may be justified when the garment has complex shapes, directional fabric, check matching, border placement or strict grainline requirements. The best marker is not always the one with the highest mathematical efficiency. It is the one that gives good fabric utilisation while remaining correct for production.
Summary Table
Level
Optimization Question
Practical Objective
Pattern layout level
How should the pieces be arranged?
Reduce unused marker area.
Marker length level
What is the shortest feasible marker?
Reduce fabric consumption.
Cut-order level
Which markers and lays should be used?
Meet size demand at minimum cost.
Business level
How does marker efficiency affect cost?
Improve margin and reduce waste.
Conclusion
Marker efficiency may appear to be a simple percentage, but it represents a complex placement problem. Garment pattern pieces are irregular, the fabric width is fixed, and the marker planner must reduce unused area while satisfying production constraints.
Mathematically, the problem can be understood as an applied 2D irregular nesting or strip-packing problem. The objective is to minimize marker length or unused fabric area while ensuring that all pattern pieces remain inside the marker and do not overlap.
The Python example in this article demonstrates the basic principle using simplified rasterized pattern pieces. It shows that marker efficiency depends not only on the total area of the garment pieces, but also on their arrangement.
In real factories, professional CAD systems, experienced marker planners and optimization algorithms handle this problem at a much larger scale. Still, the core idea remains the same:
\[
\text{Use the least fabric while producing correct garment parts.}
\]
Related Reading on Cutting, Fabric Use and Garment Specifications
Lastra-DÃaz, J. J., and Ortuño, M. T. “A New Mixed-Integer Programming Model for Irregular Strip Packing Based on Vertical Slices with a Reproducible Survey.” arXiv, 2022.
Guo, B. et al. “Two-dimensional irregular packing problems: A review.” Frontiers in Mechanical Engineering, 2022.
Shang, X., Shen, D., Wang, F.-Y., and Nyberg, T. R. “A Heuristic Algorithm for the Fabric Spreading and Cutting Problem in Apparel Factories.” IEEE/CAA Journal of Automatica Sinica, 2019.
Amaral, C., Bernardo, J., and Jorge, J. “Marker-making using automatic placement of irregular shapes for the garment industry.” Computers & Graphics, 1990.
Wong, W. K. et al. “Genetic optimization of fabric utilization in apparel manufacturing.” International Journal of Production Economics, 2008.
General Disclaimer
This article is intended for educational and informational purposes. The Python example is a simplified teaching model and should not be treated as a substitute for professional garment CAD software, production-approved marker planning or factory-specific cutting-room procedures. Actual marker efficiency depends on fabric type, garment design, pattern engineering, fabric width, grainline, nap direction, print matching, cutting equipment, lay height, buyer requirements and factory standards. Readers should validate all calculations and marker plans according to their own production context before applying them commercially.