Three of the last five jobs that landed in my inbox this month came in as GLB files. A year ago it was maybe one in ten. There was the mug a coffee shop owner generated on Meshy, a bike frame somebody walked around with Polycam on an iPhone 13, and a low-poly chair that a Shopify seller pulled off Sketchfab for eleven dollars. All GLB. Every one of them needed to end up inside a program that has no idea what a GLB is.
I do small 3D cleanup and rendering work out of a spare bedroom in Raleigh, mostly for people who don’t have a 3D person on staff and can’t justify hiring one. Jobs run ninety dollars to about four hundred. So I’m not living in one pipeline, I’m living in whatever the client already owns, and what the client already owns is usually older or narrower than the tools that made the file.
Where GLB stops working
GLB is a good format and I want to say that before I complain about it. It packs the mesh into one binary file together with its materials and its textures, which is exactly why every web viewer and every AI generator picked it. Meshy exports it. Tripo exports it. Polycam exports it. The Android AR viewer wants it and nothing else. The trouble is the receiving end, and the receiving end is where my clients live. Here’s what the programs I actually see on client machines will open without a plugin.
| Program on the client’s machine | Mesh formats it imports natively | Opens GLB? |
| SketchUp Pro 2024 | OBJ, FBX, DAE, STL, 3DS | No |
| Fusion 360 | OBJ, STL (as mesh) | No |
| Rhino 6 | OBJ, FBX, STL, 3DS | No, glTF arrived in Rhino 7 |
| Cura 5 and PrusaSlicer 2.8 | STL, OBJ, 3MF | No |
| Unity, stock install | FBX, OBJ, DAE | Only after adding a package |
| Blender 4 | Nearly everything | Yes |
So the coffee shop mug, which the owner wanted dropped into her SketchUp floor plan so the counter render would show her actual product, wasn’t going anywhere as a GLB. Neither was the bike frame scan. A fabricator wanted that one in Fusion so he could design a wall mount around the real geometry instead of guessing from photos.
What I used to do, and why I stopped
My old fix was Blender as a middleman. Import the GLB, export an OBJ, done. Except it was never quite done. Blender’s OBJ exporter defaults to a Y-up axis and the client’s SketchUp file had the mug lying on its side. The material file came out with absolute paths pointing at a folder on my drive, so the textures broke the second the file left my machine. And on the 2019 iMac I still use for client calls, opening Blender to do a file conversion is a two-minute wait for a twelve-second job. I did that for about a year. I got tired of it around the time GLB crossed a third of my inbox.
What I do now is dull and that’s fine by me. The GLB goes into a browser-based GLB to OBJ converter, I get back a zip holding the OBJ and its MTL, with the textures sitting next to them as plain PNG files, and I hand that zip to the client or open it in whatever they’ve got. The mug took about forty seconds including the upload, there was nothing to install on the iMac and nobody to email for a license key, and honestly the part I value most is that I don’t have to think about it anymore.
The three things that still go wrong
Conversion isn’t magic. I’ve learned to check the same few things every single time, because each one has cost me a client email I’d rather not have received.
- Texture paths. An OBJ finds its textures through the MTL by filename. Keep the PNGs in the same folder as the OBJ or the model opens flat grey. Two clients have written me “the model has no colors” and both times they’d dragged the OBJ out of the zip and left the images behind.
- Vertex colors. Scans from Polycam or Scaniverse often carry color on the vertices rather than in a texture image. OBJ can technically store that, but SketchUp and Fusion both ignore it. If a scan is colored that way I ask for the textured export from the scanning app first, then convert.
- Scale and up axis. GLB is always meters with Y pointing up. Fusion asks for units on import and SketchUp assumes whatever the model was set to. The bike frame arrived at 1.1 meters tall, which was right, and got imported at 1.1 inches, which is a keychain. I check the bounding box before anything goes back to a client now.
When OBJ is the wrong answer
I don’t convert everything. If a file is headed for a website the GLB should stay a GLB. Same if it’s going into a game engine that has the glTF package installed, or onto a phone as an AR preview. It’s smaller and it keeps the physically based materials intact. OBJ throws the metalness and roughness channels away. The format understands a diffuse color and a specular value, plus some fields left over from the 1990s that nothing modern reads. The coffee shop mug had a lovely brushed ceramic material inside Meshy and it looked like matte plastic in SketchUp. I warned her. She didn’t care, the render was for a landlord, not a catalog.
The honest version of my job description in 2026 is “the person who gets the file into the program you actually have.” GLB isn’t going anywhere, the generators and the scanning apps have settled on it. Neither is the fifteen-year-old software half my clients run their businesses on. I sit between the two, and I’d rather that take forty seconds than an evening.
