Skip to main content
🧵
CutOptim

Textile industry
cutting optimizer

Fabric, leather, faux leather, foam — maximum yield for textile industry and upholstery.

Start optimizing

In short

CutOptim plans fabric cutting from rolls: full-width lengths in 1D, and pieces of different widths laid out across the roll width in 2D. Rotation is switched off wherever the pattern or the nap has a direction, and the plan shows how much of each roll the job uses.

⚠️

Why does cutting from a roll leave so much fabric over?

Pieces of different widths and lengths, a pattern or nap that must not turn, and a fixed roll width all limit where a piece can go. Cut by eye, the leftovers become strips too narrow for anything — and an expensive fabric pays for every one of them.

✅

How does CutOptim plan a roll?

For full-width lengths such as curtain panels, 1D mode cuts lengths from rolls. For pieces of different widths, enter the roll as a sheet as wide as the fabric in 2D mode: rotation can be switched off per piece for pattern or nap direction, and the layout runs along the roll length.

Industry at a glance

92 million tonnes
Textile waste produced worldwide each year
UNEP, 2025
🎯

Pattern direction

Switch rotation off per piece so stripes, patterns and nap keep their direction.

📏

1D and 2D for rolls

Full-width lengths in 1D; pieces of different widths in 2D, with the roll width as the sheet width.

🖼️

Visual plan

SVG visualization for easy use at the cutting table.

How does it work?

  1. 1

    Enter the roll and the pieces

    Full-width lengths: 1D mode with the roll length as the stock length. Pieces of different widths: 2D mode with a sheet as wide as the fabric.

  2. 2

    Lock the direction

    Switch rotation off for every piece with a pattern, stripe or nap direction; plain fabric can turn.

  3. 3

    Cut from the plan

    The plan shows the layout along the roll and how much fabric the job uses; print it as PDF for the cutting table.

Common use cases

Real-world scenarios where cutting optimization makes the biggest difference.

Upholstery & furniture

Cutting fabric, faux leather, and foam for sofas, chairs, and automotive seats. Pattern direction must be preserved across all pieces.

MaterialUpholstery fabric rolls, 140–160cm wide
TipEnter the roll as a 2D sheet as wide as the fabric and switch rotation off for every piece with a direction

Curtains & drapes

Cutting panels from fabric rolls for windows. Multiple identical widths with varying heights — ideal for 1D optimization.

MaterialCurtain fabric rolls, 280–320cm wide
TipList the finished lengths with their quantities and let 1D mode fill each roll

Industrial textiles

Filter fabrics, geotextiles, and technical membranes cut from standard roll widths. Minimize waste on expensive specialty materials.

MaterialTechnical textiles, roll widths 100–200cm
TipEnter the price per metre to see what each job consumes

Leather cutting

While natural hides are irregular, rectangular leather sheets and faux leather rolls benefit from 2D and 1D optimization respectively.

MaterialFaux leather rolls 140cm wide, or rectangular hide cuts
TipUse the rectangular area of a hide as the stock size and keep the offcuts in the inventory
📊 Measured example: sofa upholstery from a 150 cm roll

A three-piece sofa set needs 28 pieces in 6 sizes (seat, back and arm panels, front and rear panels, piping strips) cut from 150 cm wide fabric with a one-way pile, so no piece may turn. The roll is entered as a 1500 mm wide sheet in 2D mode. "Before" is the same job cut one size at a time; "After" is CutOptim mixing the sizes across the roll width. Both results come from the optimizer itself, for this one job.

Before
Cut one size at a time10.98 m of fabric
Fabric used by the pieces78.0%
Area of the pieces12.85 m²
After
CutOptim, sizes mixed9.36 m of fabric
Fabric used by the pieces91.5%
Length lower bound (no layout can be shorter)8.56 m

One job, not an average. Measured results across many jobs:Benchmarks

Common textile materials

MaterialStandard sizesKerfTip
Upholstery fabricRolls: 140–160cm wide, 20–50m long0 mm (scissor/rotary cutter)Full-width lengths: 1D mode. Pieces of different widths: 2D mode, roll width as the sheet width. Kerf 0mm.
Curtain fabricRolls: 280–320cm wide0 mmWide rolls — consider using 2D mode for complex layouts
Faux leather / vinylRolls: 130–140cm wide0 mmPattern direction often matters — disable rotation for directional materials
Technical textiles / feltRolls: 100–200cm wide0–1 mm (laser cutting)Laser cutting has near-zero kerf; manual cutting has none
✓1D lengths from rolls
✓2D layout across the roll width
✓Pattern direction control
✓Visual cutting plan
✓Material cost calculator
✓PDF export

What does CutOptim not do?

  • The app cuts rectangles. Curved garment patterns and markers (grading, pattern CAD) are specialist garment software; the Engine API nests arbitrary polygons, but does not grade patterns or build markers.
  • A natural hide is irregular: the app uses the rectangular area of the hide as stock and does not model its outline or its defects.
  • Pattern direction is kept by switching rotation off per piece; any pattern repeat or stretch allowance goes into the piece sizes you enter.
Engine API

Automate it — the Engine API

Cutting panels of fabric to length from a roll is a 1D problem, and the same engine that runs here is available over HTTP. Your software sends the piece lengths and the roll width/length as JSON and gets back the optimized layout, the number of rolls and the running metres used.

  • ✓Deterministic: the same cutting list always returns the same layout, for reproducible costing.
  • ✓Free validation: POST /v1/validate/1d checks a job with no key and no quota.
  • ✓Attach a meta object (order line, SKU) and it comes back on every placed piece.
  • ✓Cutting irregular garment patterns or shaped blanks? True-shape nesting of arbitrary polygons is a separate endpoint — POST /v1/optimize/nest — interlocking the outlines with continuous rotation.
POST /v1/optimize/1d
POST /v1/optimize/1d
{
  "parts": [
    { "length": 2200, "qty": 12 },
    { "length": 1500, "qty": 8 }
  ],
  "stock": [{ "length": 30000, "qty": 20 }],
  "options": { "kerf": 0 }
}

Frequently asked questions

How does CutOptim handle fabric roll cutting?+
There are two ways. For full-width lengths such as curtain panels, use 1D mode with the roll length as the stock length and list the lengths you need. For pieces of different widths, use 2D mode and enter the roll as a sheet as wide as the fabric: the pieces are laid out across the width and the plan runs along the roll length.
Can I maintain pattern direction for upholstery fabric?+
Yes. Disable rotation for parts that must maintain pattern orientation (stripes, patterns, nap direction). CutOptim will only place these parts in their original orientation.
What about irregular natural leather hides?+
The CutOptim app works with rectangular stock (rolls or sheets), so for irregular natural hides you would use the rectangular cutting area of the hide as your stock size. For true-shape nesting of irregular part outlines, the Engine API offers POST /v1/optimize/nest, which packs arbitrary polygons into each other’s pockets — though the irregular outline of a natural hide itself is a specialist grading task the nesting endpoint does not model.
Is CutOptim suitable for garment manufacturing?+
The CutOptim app cuts rectangular patterns — cushions, panels, straight pieces. For irregular garment patterns with curves and notches, true-shape nesting is available through the Engine API at POST /v1/optimize/nest, which interlocks arbitrary polygons with continuous rotation. Full garment CAD/CAM (grading, marker-making) remains a specialist domain; what the API provides is the nesting itself.
How do I handle multiple fabric types in one project?+
Create separate cuts within your project for each fabric type. Each cut has its own stock dimensions and settings. This is useful when a project requires multiple fabrics (e.g., main fabric + accent fabric for a sofa).
🧵

Try textile optimization free

No registration needed, use it instantly.

2 free runs without an account, then 3 a month with a free account

▶ Start optimizing