The missing step after Tripo · Meshy · AccuRIG

Put the sword in the hand.

Correctly. Every time.

Drop a rigged character and a loose prop. GripForge finds the hand bone whatever your rig calls it, scales the prop to body height, orients the grip for the style, and hands back a bind you can paste into your engine.

.glb · .gltf · .fbx · .obj · no shared mesh required

bind readoutcycling
bone resolved
mixamorig:RightHandR_Hand
position · bone-local
x0.014
y0.062
z-0.008
rotation · XYZ rad
x1.5708
y0.0000
z-0.2618
prop sword.glbhand right
size 0.38 of 1.80m body0.68m
hand rig
fingers closed on the grip, 15 joints posed
confidence0.94
Surfaces

One engine, three doors

Visual

Studio

Drop the two meshes, watch the attach land on a live skeleton, nudge the grip on sliders, and preview it against an attack clip before you commit.

Open Studio
HTTP

API

One multipart POST. Wire it into a batch job or a CI step that re-binds a whole prop set.

curl -X POST localhost:3100/api/v1/attach \
  -F character=@hero.glb \
  -F prop=@sword.glb \
  -F style=melee

→ { bind, confidence, exports }
Read the reference
Agent

MCP

A stdio server with four tools, so Claude Code, Cursor or Grok can attach props inside a task without you opening anything.

gripforge_attach
  character_path: ./hero.glb
  prop_path:      ./sword.glb
  style:          melee
  hand:           right
Install the server
Resolution

Any rig, one grip

Bone names in your file
SourceResolves to
mixamorig:RightHandR_Hand
hand_rR_Hand
RightHandR_Hand
rHandR_Hand
mixamorig:LeftHandL_Hand
LeftHandL_Hand

Unlisted names fall through to fuzzy matching, then to an optional AI pass for skeletons that follow no convention at all.

Style drives size and orientation
StyleGrip ruleBody ratio
meleeblade across the fist0.38
gunbarrel along the fingers0.18
shieldface on the palm0.24
staffshaft through the grip0.85

Size is measured against the character, not the world, so the same sword reads right on a child model and on an ogre. Style also sets the finger curl, so a trigger finger stays straight on a gun and wraps on a sword.

Output

Paste it where you work

Three.jsbone.add(prop)
UnityBoneAttach.cs
GodotBoneAttachment3D
bind.jsonengine agnostic

Every surface returns the same bind, so a prop attached in Studio and one attached by an agent land in the same place. Unreal sockets read straight off bind.json.

On a rig with finger bones, the bind also carries a grip pose that closes the hand on the handle. Tripo and Meshy auto-rigs give one bone per hand, so there is nothing to close there. GripForge reports which one you have as handRig rather than guessing.

Pricing

Per attach, not per seat

Free

€0 / mo
  • 3 attaches API/MCP
  • Geometry pass only
  • Studio, API and MCP

Indie

€29 / mo
  • 300 attaches
  • AI refine on odd skeletons
  • No watermark

Studio

€99 / mo
  • 2 000 attaches
  • Batch API
  • Priority queue