Convert FBX to OBJ

Runs on your device · Your file never leaves your device.

FBX is what game engines and animation packages pass between each other, and it is awkward to open anywhere else. This turns one into an OBJ — a plain, long-established mesh format that many 3D programs open, Blender among them.

An FBX often holds rigging and animation as well as shape. OBJ holds a single still pose and nothing else, so the animation does not come with it; if that is what you need, convert to GLB instead, which keeps the clips. The geometry and the material names come across either way.

The conversion runs on your own machine, which for a 3D file is the whole point: a model is usually a client’s product, a scanned property or something not yet announced. Nothing is sent to a server, so there is nothing to delete afterwards and nothing to take anyone’s word for.

How to convert FBX to OBJ

  1. Drop the FBX file — and its companion files if it has any.
  2. Check that OBJ is selected.
  3. Press Convert.
  4. Download the OBJ file.

Supported formats and limits

Input
FBX
Output
OBJ
Companion files
Texture images are used when you add them
Keeps animation
No — the format cannot store it
Where it runs
In your browser; the model is never uploaded

Not for: Writing FBX — this reads FBX but cannot produce it. There is no browser-side FBX writer that would give you a file worth trusting.

How the scene is flattened into one OBJ

An FBX is a tree of objects, each with its own position, rotation and scale. An OBJ has no tree, so each object's placement is applied to its points and the meshes are written where the FBX put them. A file saved with Z pointing up is stood upright first. Quads and larger polygons arrive as triangles. Cameras, lights and bones have no place in an OBJ and are left out.

A rigged character is written in its rest shape as stored in the file, not in a frame of any clip, and blend shapes are not applied, so you get the base shape. Corners that sit in the same place are written once and shared, so the OBJ opens as one connected surface.

Materials and textures

When the FBX has colours or texture images, the download is a zip holding the .obj, an .mtl file and the images, so the surfaces open as they were. Each material keeps its name, and a part that uses several materials gets a usemtl line for each of them. The .mtl holds each material's colour, shininess, emission and transparency, and names its colour, normal and emission images.

Images packed inside the FBX are taken out of it. Images it only names come from the files you add, and any it names that you did not add are listed beside the download. An FBX with no colours or images gives a single .obj.

Older files and units

When the main reader refuses an old or unusual FBX, the second reader described on /fbx-to-glb takes over. It gives the meshes, normals, texture coordinates and the materials with their names and colours, but no texture images, so a file read that way has its colours without their pictures. It also splits large polygons more simply, which can go wrong on a face with an inward corner.

An FBX records a unit. The page shows it but does not apply it, and the OBJ carries the FBX's own numbers unless you choose a unit, in which case they are rewritten in metres. /3d-converter explains why the stated unit is not trusted.

Frequently asked questions

Are my files uploaded to a server?
No. This conversion runs inside your browser using your own device’s processing power, and the file is not uploaded. Once a tool has been used once (video, text recognition and background removal download their engine from this site the first time), it keeps working when your connection drops.
What happens to the animation?
It is not carried into the OBJ, because OBJ stores one still shape. Convert to GLB instead if you need the animation to survive.
Does it read binary FBX as well as ASCII?
Yes, both. Most FBX files written in the last decade are binary and are handled without you having to know which you have.

Related tools

More in 3D models

This page in other languages: العربية · Deutsch · Français · Español · Русский · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা