OBJ to FBX Converter

Convert an OBJ file to FBX right in your browser, with its MTL materials and textures. Drop the OBJ together with its .mtl file and texture images (or open the folder) and the converter reads them the way 3D web viewers do: colours, shininess, transparency and texture maps from the MTL become FBX Phong materials, and the images go inside the FBX. An OBJ file has no unit setting, so you say what one unit means (metres, centimetres, millimetres or inches) and the FBX states that unit, with the numbers kept or converted. Each OBJ object becomes its own FBX mesh, quads and larger faces are split into triangles, and vertex colours can come along. Every FBX is read back before you download it, and the page shows what it found. Nothing is uploaded.

100% private — everything runs in your browser. Everything runs in your browser; your OBJ files are never uploaded.

100% private — runs in your browser
Drop an OBJ file here or click to chooseWavefront OBJ. Add its .mtl file and texture images too (select them together or open the folder) so colours and textures carry over.

Loading the 3D engine…

File details

Size and direction

What goes in

Runs in your browser: your files are read on your device and never uploaded, and web addresses inside a model are not fetched. The 3D engine (three.js) loads from the jsDelivr CDN. You may use what you make here, including commercially, with no credit needed. The rights in your own models and textures stay as they were. Not affiliated with Autodesk.

How to convert an OBJ to FBX

  1. Drop the .obj on the box together with its .mtl and texture images (or open the folder), or click Try a sample.
  2. Check the 3D view, the material table and any files the page says are missing.
  3. Say what one OBJ unit is, choose FBX units and the up direction, how textures are stored, and what goes in.
  4. Read the check line, then click Download FBX (or FBX + texture files as a ZIP).

What you can use it for

  • Bring a scan, sculpt or CAD export into a 3D app or game engine that imports FBX
  • Pack an OBJ, its MTL and its textures into one FBX file to share
  • Give a millimetre OBJ a stated unit so it imports at the right size
  • Move a model between Y-up and Z-up apps
  • Keep the material colours of an OBJ when the next tool reads FBX
  • Check which textures an OBJ needs before you send it

What carries over from OBJ to FBX

In the sourceIn the FBX from this converter
Objects and groups (o, g)One FBX mesh each, with the same name
Faces (triangles, quads, n-gons)Triangles
Materials in the MTL (Kd, Ks, Ns, d, Ke)FBX Phong: diffuse, specular, shininess, opacity, emission
Texture maps (map_Kd, bump, norm, map_Ke)Embedded in the FBX as the original images, or as separate files in a ZIP
Texture coordinates (vt)Written per corner (OBJ and FBX both count from the bottom of the image)
Normals (vn)Written per corner (computed when the OBJ has none)
Vertex colours (v x y z r g b)Optional, written as colours with alpha
UnitsStated in the FBX as you choose them (an OBJ has none)
Points and lines (p, l)Left out (meshes only here) and listed in the notes

The OBJ notes describe vertices, texture coordinates, normals and faces but no unit, so the numbers in an OBJ mean whatever the program that wrote it used.

How MTL materials become FBX Phong materials

MTLIn the FBX
Kd / map_KdDiffuseColor / texture on DiffuseColor
KsSpecularColor
NsShininess
d (or Tr)Opacity and TransparencyFactor
Ke / map_KeEmissiveColor / texture
bump / map_BumpTexture on Bump
normTexture on NormalMap

In our two-object test file the MTL says Kd 0.8 0.1 0.1 and d 0.5; the FBX holds DiffuseColor 0.8 0.1 0.1 and Opacity 0.5, and the three.js FBX reader shows the same colour and a half-transparent material.

What our test files give

Test fileWhat it checksTrianglesFBX meshesMaterialsTexturesFBX sizeBytesRead back the same
crate/crate.objCrate in centimetres: quads, MTL, a texture in a sub-folder whose file name has a space1211120 × 20 × 20 cm11,132Yes
two-groups.objTwo objects, two materials (one half transparent), hexagon faces (n-gons)322203.5 × 1 × 1.43301 m14,588Yes
colours.objVertex colours written as v x y z r g b211020 × 20 × 0 mm7,804Yes

Computed by the converter’s own writer from our own test files, read with the same three.js OBJ and MTL readers the page uses. Every FBX was read back by the three.js FBX reader and by our own FBX reader with the same triangle count, size, materials and texture slots.

Units: what one OBJ unit means

1 unit in the OBJ isFBX units (numbers kept)UnitScaleFactor in the FBX
1 metremetres100
1 centimetrecentimetres1
1 millimetremillimetres0.1
1 inchinches2.54

FBX states its unit as a UnitScaleFactor in centimetres (the FBX unit). Keep the numbers and set the unit, or choose other FBX units to convert them: a 20 cm crate written in millimetres becomes 200 units with UnitScaleFactor 0.1.

Next steps

Need a print file? OBJ to STL turns the OBJ into an STL, and 3MF to STL and STL to 3MF handle 3MF. Check a print model in the STL viewer, or open CAD files in the STEP Viewer.

Sources

Sources: Object Files (.obj), Paul Bourke’s copy of the Wavefront notes (no unit field); MTL material format (Kd, Ks, Ns, d, map_Kd); Blender’s FBX exporter source (io_scene_fbx: the FBX unit is the centimetre; binary record and footer layout); three.js 0.186.1 FBXLoader source (Phong and Lambert materials, Z-up files turned to Y-up, UnitScaleFactor read).

More free tools

Working with 3D models?

View, convert and make 3D files with free tools that run privately in your browser, with no sign-up and no watermark.

See all free tools →

Frequently asked questions

Is this OBJ to FBX converter free?

Yes. There is no sign-up, no watermark and no limit on how many files you convert. The conversion runs in your browser, so your files never leave your device.

How do I keep the colours and textures?

Add the .mtl file and the texture images together with the .obj (select them all, or open the folder). The converter finds them by the names in the OBJ and MTL, puts the images inside the FBX and lists any it could not find by name.

My OBJ has no units. What should I choose?

OBJ files store plain numbers. If the model came from a 3D printing or CAD tool, one unit is usually a millimetre; most 3D apps write metres. Choose that under 1 unit in the OBJ is, and the FBX states the unit, so apps that read it import the model at that size.

What happens to quads and larger faces?

They are split into triangles, the same way the three.js OBJ reader splits them, so the FBX has the same surface. The page shows the triangle count before you download.

Are OBJ groups and objects kept?

Yes. Each object (o) or group (g) the OBJ reader finds becomes its own FBX mesh with the same name, with its own materials.

How are MTL materials turned into FBX?

Kd becomes the diffuse colour, Ks the specular colour, Ns the shininess, d the opacity and Ke the emission, and map_Kd, bump and normal maps become FBX textures. The colour numbers in the FBX are the same as in the MTL.

Which FBX version does it write?

Binary FBX 7.4, with Y-up or Z-up as you choose. Large arrays are compressed inside the file (you can turn that off). ASCII FBX is not written here.

How do I know the FBX is right?

Before the download is offered, the page reads the new FBX back with the three.js FBX reader (the same version that shows the model) and with our own FBX reader, and compares the triangle count, size, materials, texture slots and unit scale with what was written. If anything differs, the file is not offered. The files have been checked with these two readers; they have not been opened in every desktop 3D app.

Are my OBJ, MTL and texture files uploaded?

No. They are read and turned into FBX by JavaScript in your browser, so they never leave your device. Only the 3D engine itself (three.js) is loaded from a public CDN. There is no sign-up and no watermark.