Skip to content
3DToolBench

Convert SVG to OBJ

This gives your flat drawing a thickness and writes it as an OBJ: a real mesh with shared points, rebuilt normals and one named object per shape. It opens straight into Blender, Maya, Cinema 4D and every game engine.

Drag a 3D file here, or.

This page is set up for SVG files. Other formats we can read work here too.

The file is read on your own computer. It is never uploaded.

Add a file to switch this on.

Your file is read by your own browser and never sent to a server. There is no upload, no account and no copy of your model anywhere but on your computer.

Each shape becomes its own object

A drawing is usually several things — a logo mark and its lettering, a row of parts on a sheet, the pieces of a sign. Each drawing element becomes a separate named object in the OBJ, using the id from the SVG where it has one, so you can move them independently the moment the file opens.

A shape and its holes stay together, because they are one object with a hole in it rather than two objects. A word drawn as a single path stays one object too, even though it is twenty-six separate loops — that is what the person who drew it meant by putting them in one element.

A drawing with a very large number of separate shapes — a traced photograph, say — is merged into one object instead. A list of nine hundred entries is not a list anybody can use.

The mesh is properly built

Extruding an outline naively gives you a pile of loose triangles that do not know they are neighbours. This one is welded first, so points that sit in the same place become one point, and then the normals are rebuilt from the geometry with a thirty degree crease angle — the same threshold Blender uses.

The practical effect is that the flat faces stay flat and the extruded edge stays sharp, while a curved edge shades smoothly round the curve. You can select an edge loop, bevel it, or subdivide it, and nothing falls apart.

Curves become straight lines, finely

Nothing in an OBJ is curved. A Bézier in your SVG becomes a series of straight segments, and how many depends on how much the curve actually bends and how large the drawing is. The tolerance is set from the size of the whole drawing, so a small rounded corner and a large circle come out equally smooth.

If you want fewer triangles, simplify the paths in your drawing program before converting. If you want more, scale the drawing up — the flattening follows the size.

Units and which way is up

OBJ records no units, and modelling programs usually treat one unit as one metre. Your drawing is read in millimetres, so leave the output unit at millimetres if you want the numbers to match the drawing, or set it to metres if you are about to drop the model into a scene built at real-world scale.

The extruded shape lies in the XY plane with its thickness going up Z, which is how a flat thing sits in a CAD program or a slicer. Blender and most modelling programs want Y up instead, so set the output up-axis to Y and the model arrives standing the way that program expects.

What survives, and what does not

Kept in the OBJ file

  • One named object per shape in the drawing
  • Holes, worked out from which outlines sit inside which
  • Shared points and rebuilt normals, so the mesh behaves in a modeller
  • The real size, converted to whichever unit you choose

Lost on the way

  • Open paths and strokes, which enclose no area
  • Colours, gradients and any fill from the SVG
  • Live text, unless you convert it to outlines before exporting

How to convert SVG to OBJ

  1. Prepare the drawing first

    Text to outlines, strokes expanded, overlapping shapes unioned. An OBJ made from a drawing that skipped these steps is missing pieces rather than wrong in any subtle way.

  2. Drop the .svg file in

    Each element becomes its own named object, taking the id from the SVG where there is one. The list under the 3D view shows them.

  3. Set the thickness

    It is in millimetres regardless of the output unit, because that is the number people think in. The extrusion goes up Z.

  4. Set the output up axis to Y for Blender

    The extrusion naturally lies in the XY plane with thickness up Z, which suits CAD and slicers. Blender, Maya and Cinema 4D want Y up.

  5. Choose the output unit and download

    Millimetres to keep the numbers matching the drawing, metres if the model is going into a scene built at real-world scale. You get a single .obj, with no .mtl, because an SVG fill is not a material.

SVG and OBJ compared

SVG and OBJ compared, row by row
PropertySVG.svgOBJ.obj
File contentsXML. A text description of shapes, readable and editable by hand.Plain text, one item per line. Materials live in a separate .mtl file beside it.
GeometryFlat paths: lines, arcs, and cubic and quadratic Bézier curves.Triangles and polygons. Also stores free-form curves, which almost nothing writes.
UnitsReal units are allowed — mm, cm, in — but most files use bare user units.None. Like STL, the numbers are bare, though exporters usually mean metres.
Colour and textureFills, strokes, gradients and patterns, none of which describe a solid.Material names and texture coordinates, with the materials themselves in the .mtl file.
Separate objectsGroups and layers, with ids and names on both.Named objects and groups, each able to carry its own material.
Published byThe W3C, 1999. Version 1.1 is what tools write; SVG 2 is still arriving.Wavefront Technologies, 1980s, for the Advanced Visualizer.
Written byIllustrator, Inkscape, Affinity Designer, Figma and every drawing program.Blender, Maya, 3ds Max, ZBrush and most modelling programs.

Questions

Do I get a .mtl file?
No. An SVG’s colours are flat fills for a screen and are not carried into the model, so there would be nothing to write into one. Assign materials in your modelling program after opening the file.
Why is my model lying flat?
Because a drawing is flat, and the extrusion goes up Z. If your program expects Y to be up, change the output up-axis box and the file is written the other way round.
Can I make the extrusion hollow?
Not here. Draw the inner outline in your SVG and it becomes a hole automatically, which is the usual way to get a wall of a particular thickness.
How many triangles will I get?
It depends on how many curves the drawing has. The count is shown beside the 3D view before you download, so you can check it against whatever budget you are working to.
My drawing has nine hundred shapes and they all merged into one object. Why?
Above a couple of hundred shapes they are merged deliberately. A traced photograph can produce thousands of paths, and an object list that long is not something anyone can work with in a modelling program.

Where to go next