Free local SVG geometry utility

SVG Path Transform Flattener & Matrix Baker

Apply a transform list directly to one path’s coordinates, remove the transform attribute, and visually compare the original rendered geometry with the flattened result.

1. Paste path and transform

Paste only the value inside a path’s d="…" attribute. All standard path commands are accepted.
Supports matrix(), translate(), scale(), rotate(), skewX(), and skewY(). Leave blank to normalize without moving the path.
0–8. Rounding changes exported coordinates, so keep enough precision for the drawing’s scale.

2. Verify the result

Calculating…

Combined matrix
—
Commands
—
Arc conversion
—
Output size
—
Source + transformFlattened path

—

Flattened path data

Path element

Path and transform text stay in this browser. No SVG geometry is uploaded or saved.

What flattening an SVG transform means

An SVG transform changes the coordinate system used to render a path without changing the path’s own numbers. Flattening—or baking—the transform applies the combined affine matrix to every endpoint and Bézier control point, then outputs path data that renders in the same final location with no transform attribute.

This is useful when another program ignores transforms, when motion paths require final coordinates, or when a handoff needs self-contained geometry. The matrix and function order follow the SVG coordinate-system and transform model.

Exact segments and arc conversion

Moves, lines, quadratic Béziers, and cubic Béziers remain exact under any 2D affine transform because every defining point receives the same matrix. Relative commands, horizontal and vertical lines, and smooth shorthand are normalized to absolute M/L/C/Q commands before export.

Elliptical A commands are different: a compact endpoint arc cannot always retain the same parameters after arbitrary skew or non-uniform scale. This tool converts each arc into cubic Bézier pieces spanning no more than 90°. The endpoints are exact, while the curve is the standard cubic approximation. The result panel states how many arcs and cubic pieces were involved instead of presenting the conversion as lossless.

Scope and safe use

The tool handles one path and one transform list. It does not parse a whole SVG document, inherit matrices from parent groups, preserve styles, expand strokes, resolve clips, transform gradients, or convert text and shapes to paths. Use the matrix calculator to combine known transforms, then paste that list here.

Output precision is a serialization choice. Low decimal counts can visibly move small or highly scaled geometry. Keep the original file, compare the overlay, and test the flattened output in the target editor, browser, cutter, or animation workflow.

Frequently asked questions

Why did H, V, S, or T commands disappear?

They were expanded to absolute L, C, or Q commands. This removes state-dependent shorthand and makes every transformed coordinate explicit.

Why were arc commands changed to C commands?

Arbitrary affine transforms can change an ellipse’s axes and rotation. Cubic segments provide one consistent representation after matrix application, with the approximation disclosed in the result.

Can I flatten nested group transforms?

Not directly on this page. First combine the parent and element transforms in their actual order using the SVG Transform Matrix Calculator, then flatten that combined matrix into the path.

Browse design and SVG tools · All ToolQuill tools