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.