# OBJ files in browser games

## OBJ works on Go Bananas for plain shapes, but its materials and textures are not kept, so for a colored or textured model use GLB instead.

OBJ (Wavefront OBJ) is one of the oldest and simplest 3D formats. It is plain text listing a model's vertices, faces and texture coordinates. Colors and textures live in a separate `.mtl` material file and image files. Almost every 3D program can open and export OBJ.

## What OBJ is good for in games

OBJ is fine for simple, static shapes: rocks, crates, low-poly props, a piece of terrain. Your game can color them in code.

It has real limits:

- **No animations or skeletons.** OBJ can't carry a walking character.
- **No materials or textures on Go Bananas.** The site keeps the `.obj` file only. A `.mtl` file and its textures are not used, even inside a ZIP.
- **Bigger files.** As text, OBJ is larger and slower to load than binary formats.

If your model has colors, textures or animations, export it as [GLB](/formats/glb) instead. It keeps everything in one file and loads faster.

## Uploading OBJ to Go Bananas

You can upload in three places:

- **Create panel:** press the 📎 button or drag the file onto the chat.
- **Assets tab:** press **Upload Asset**.
- **Editor:** in the Assets tab press **Upload New**, press the 📎 in the editor chat, or drag the file onto the editor chat.

You need to be signed in with a verified email to upload.

| Limit | Value |
| --- | --- |
| Size per file | 200 MB |
| Total storage | 100 MB for free accounts created since May 5, 2026; 1 GB for Pro subscribers and older accounts |
| Uploads | 20 an hour per account |

Failed and deleted uploads don't count toward your storage. The site checks the file looks like OBJ (its first line must be a valid OBJ command) and refuses empty files.

**What the site does with it.** An OBJ is stored as it is, without conversion. If you upload it inside a [ZIP](/formats/zip), only the `.obj` file is kept; the `.mtl` and texture images are dropped.

You can open it in the built-in 3D viewer and orbit around it. Asset cards show a thumbnail.

**The file name matters.** The name without `.obj` becomes the model's name in games: `rock.obj` is `"rock"`. Renaming the asset changes the name, and code that used the old name won't find it. If two models share a name, the newest one wins.

## Using OBJ in your game

**Ask the AI.** In the create box or the edit box, type `@` and pick your model. It inserts the name in quotes:

> Scatter twenty copies of "rock" across the field, in different sizes, colored dark gray.

Saying the color you want helps, since the OBJ arrives without materials.

**In code.** The model's address is in `window.GAME_ASSETS.models['name'].url`. Go Bananas games use three.js r128 with OBJLoader for OBJ files:

```html
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/loaders/OBJLoader.js"></script>
```

```js
new THREE.OBJLoader().load(GAME_ASSETS.models['rock'].url, (rock) => {
  rock.traverse((child) => {
    if (child.isMesh) {
      child.material = new THREE.MeshStandardMaterial({ color: 0x666666 });
    }
  });
  scene.add(rock);
});
```

Because there's no material file, the code above gives the model its own material.

## Tips and common problems

- **Model shows up white or gray:** expected, since materials aren't kept. Set a color or material in code, or ask the AI to.
- **You need the textures:** export the model as GLB from your 3D program (most can export GLB with textures), then upload that.
- **Model too big or tiny, or facing the wrong way:** OBJ has no fixed unit. Scale and rotate it in code, or ask the AI to "make the rock half the size".
- **Huge files:** OBJ is text, so detailed models get large. Simplify the mesh, or use GLB.
- **Deleting a model removes it at once**, so games that use it can no longer load it.

## From ChatGPT or Claude

The Go Bananas app in ChatGPT and the connector in Claude can't send 3D files. Ask for an upload link and you'll get a link to the game's page, where you can upload the model in the editor.

## Related

- [GLB files](/formats/glb)
- [glTF files](/formats/gltf)
- [FBX files](/formats/fbx)
- [PLY splats](/formats/ply)
- [SPZ splats](/formats/spz)
- [ZIP bundles of 3D models](/formats/zip)
- [All file formats](/formats)
- [Making 3D games](/guides/3d-games)
- [How to make a video game](/guides/how-to-make-a-video-game)
- [Making games work on phones](/guides/games-on-phones)
