---
name: set-anima-item-models
description: How to view, link and download the 3D model of any Set item. Use when a game needs a mesh for a generated weapon, shield, tool or piece of armor, a link from an item roll to its model in its rolled material, a GLB download of one item and the schema of what the file contains, or the grip, hand and layering rules the models follow.
license: Free to use when obtained from set.world, commercially too (the API, what it returns, the skills and downloaded models). The source code of Set is © Jimmy Lee under CC BY-NC 4.0 and its commercial use needs a paid waiver.
metadata:
  version: "0.8.9"
  title: Item models
---

# Item models

Every base type in Set's item tables has one authored 3D model: 145 held tools (the mainhand table; the offhand table reuses 144 of them) and 112 worn pieces across 11 slots. A model shows the item's gear and material. Quality, prefix and suffix have no appearance. The models belong to AnimaSystem, Set's own game layer; the API returns names and numbers, never geometry. This skill owns how items are held, worn and exported.

## From an item roll to its model

```ts
type ItemModelRef = { slot: string; gear: string; material: string | null };
const modelOf = (item) => ({ slot: item.slot, gear: item.props[3].name, material: item.props[2].name });
```

```json
{ "slot": "tool", "gear": "sword", "material": "steel" }
```

Never parse the composed name. The inspector takes the same three values as query parameters:

```text
https://set.world/item-models?<slot>=<gear>&<slot>Material=<material>&focus=<slot>
https://set.world/item-models?tool=sword&toolMaterial=steel&focus=tool
https://set.world/item-models?chest=padded%20armor&chestMaterial=silk&head=helm&focus=chest
```

One item per slot; `focus` chooses which one the Mesh pane shows alone. Leave out `<slot>Material` for the base white-and-silver look. An item's page at `/roll/item/<rolls>` links to its model the same way.

## Download a model

The GLB is built in the browser; there is no static model URL and no model API.

1. Open the item's `/item-models` link.
2. Wait for the **Mesh** pane to show the item, then choose **Download model**.
3. The browser saves `<material>-<gear>.glb`, for example `steel-sword.glb`.

An agent with a browser tool follows the Playwright recipe in [Character models](https://set.world/skills/anima-character-models), with this page's URL; the page has one **Download model** button.

## What the file contains (`item-export-1`)

| Part | Content |
| --- | --- |
| Geometry | The full authored mesh, with strings, ropes, book covers and pages at rest. No LOD or decimation |
| Held items | The right-hand model with its origin at the grip. A left-hand copy is a mirror of the geometry |
| Worn items | The piece fitted to Anima's rest pose, unskinned. Hand, wrist and head pieces export one side; a finger item sits on the right ring finger |
| Materials | One standard material per part role, named after its look, with the material's base colour, roughness and metalness. The procedural surface patterns and the wings' feather cut-outs are runtime shaders and textures, and are not in the file |
| Not included | A rig, skin weights, animation, cloth simulation, projectiles and effects |

The root node's `extras` identify the item:

```ts
type ItemExportExtras = { exportVersion: string; author: string; license: string; finishVersion: string; slot: string; gear: string; material: string | null };
```

```json
{ "exportVersion": "item-export-1", "author": "Jimmy Lee", "license": "Free to use when obtained from set.world, commercially too (the API, what it returns, the skills and downloaded models). The source code of Set is © Jimmy Lee under CC BY-NC 4.0 and its commercial use needs a paid waiver.", "finishVersion": "item-finish-29", "slot": "tool", "gear": "sword", "material": "steel" }
```

Check the alignment of a worn piece against your imported [Anima](https://set.world/skills/anima-character-models) before relying on it; Set has not tested the files in other engines.

## The catalog

Every base type has a model, so the gear tables are the model list. Load them from `/api/tables` ([Item properties](https://set.world/skills/item-properties)); the materials each slot can take are in [Materials](https://set.world/skills/item-materials).

| Slot | Models | Form |
| --- | ---: | --- |
| tool, offhand | 145 | Rigid held items; some with strings, ropes, chains or pages |
| chest | 26 | Fitted cloth with attached plates |
| head | 20 | Rigid pieces on the head |
| wrist | 13 | Rigid bands and plates |
| legs | 10 | Cloth tubes, skirts and plates |
| shoulders | 8 | Capes, cords, pauldrons |
| neck | 8 | Ribbons, plates, jewels and chains |
| finger | 7 | Jewellery and plate on the ring finger |
| hand | 6 | Shells, bands and plates |
| back | 5 | Cloak, cape, flag, sack, wings |
| feet | 5 | Shells with soles |
| waist | 4 | Belt, sash, coil, girdle |

## How items are held and worn

- **Hands.** `tool` goes in the right hand and `offhand` in the left. The first `hand` and `finger` item goes on the right, the second on the left.
- **Layer order, innermost first:** feet, legs, hand, finger, wrist, chest, waist, shoulders, neck, back, head. Each layer is fitted over the ones beneath it.
- **One model everywhere.** The scene, the army, the dungeon, portraits and the inspector use the same geometry at full detail.

### Grip families

Each held item attaches to the hand bone in one of seven frames. The origin sits inside the fist, except for `wrist`.

| Grip | Mainhands that use it |
| --- | ---: |
| `handle` | 114 |
| `fist` | 6 |
| `bow` | 5 |
| `pistol` | 6 |
| `shield` | 8 |
| `palm` | 4 |
| `wrist` | 2 |

| Grip | Tool frame |
| --- | --- |
| `handle` | +Y along the handle past the thumb, +X along the palm (the cutting edge), +Z out of the palm |
| `pistol` | +Y forward along the barrel, +Z up out of the fist |
| `bow` | +Y across the fist, +Z toward the target |
| `shield` | +Y up, +Z away from the palm; the board sits beyond the fingers |
| `fist` | +Y forward past the knuckles, +Z into the palm |
| `palm` | +Y out of the closed grip, +Z toward the wrist |
| `wrist` | As `fist`, at the wrist |

The left hand holds a mirrored copy of the geometry, never a negatively scaled one. Which grip each item uses is one column of the held-item table in [Derived combat](https://set.world/skills/anima-derived-combat).

## Material looks

Each material names a look for four part roles: fabric, solid, trim and inlay. Bow and harp strings are always cord and book pages parchment. Common materials are matte and coarse; rare ones are smoother, with sheen, iridescence or a faint glow. What a material weighs and how it protects or hits is in [Derived stats](https://set.world/skills/anima-derived-stats).

## A schema for item assets in your game

```ts
type ItemAsset = {
  key: string;                     // "tool:sword:steel"
  ref: ItemModelRef;
  file: string;                    // where you stored the GLB
  hand: 'right' | 'left' | null;   // held items; mirror the geometry for the left
  layer: number | null;            // worn items: position in the layer order
  exportVersion: string;           // re-download when it changes
};
```

## Source

A model downloaded from set.world is free to use in any project, commercial ones included ([AGENTS.md](https://set.world/AGENTS.md) has the license). The builders are part of Set's source code: `three-isometric-engine/weapons/` (catalog, meshes, grips), `three-isometric-engine/armor/` (worn pieces, cloth) and `three-isometric-engine/items/` (assembly, materials, export). Dimensions and fitting rules are §13.37 to §13.63 of the reference ([Algorithms](https://set.world/skills/algorithms)). The flag's team emblems are trademarks of their owners.
