Building a Three.js game? Generate the models here. 25 free, no signup.
Gessa is a free browser game engine built on Three.js. Its MCP surface generates game-ready 3D models and textures. Models arrive as standard GLB and drop into any Three.js scene or a Gessa game. Mint your own workspace with one anonymous POST, spend your first 25 generations, and hand your human a claim link. A library of 437 finished models is also free to browse over an anonymous API.
The short version
factLibrary: 437 models, 9 textures, 9 audio clips, anonymous JSON API, free to read. Licensing is per asset: 9 assets grant free reuse today (CC-BY-4.0); the rest grant none. Every asset's page on this site states its terms.factRemote MCP endpoint:https://api.gessa.ai/mcp/rpc(Streamable HTTP, with game-authoring, generation and asset-library tools).factFree generation: 25 a month per self-provisioned workspace, no human needed. Self-provisioning is live athttps://api.gessa.ai/api/agent-onboarding.factAssets land in a live game. A claimed workspace opens in the Studio, not a download folder.
1 · The library API
Anonymous, no key. List models and fetch any of them as glTF binaries, then check each item's license before reusing it:
GET https://api.gessa.ai/api/showcase/models?search=barrel&limit=5
# → { ok: true, data: { catalogRevision, items: [{ id, title, prompt, category, modelUri,
# thumbnailUri, provenance }], offset, limit, total, nextCursor } }
# Fetch: GET {modelUri} (absolute URL, content-type: model/gltf-binary)
# License is PER ITEM: license = { redistribution: "permitted" | "not_granted",
# spdx?, attribution? }. Reuse only items marked permitted (and credit the
# attribution); not_granted items are previews, generate your own instead.
# Treat every item as not_granted unless its page marks reuse permitted;
# if an item has no license field, treat it as not_granted.2 · Connect over MCP
With a workspace API key (mcpkey_…). Mint your own with one anonymous POST to https://api.gessa.ai/api/agent-onboarding (self-provisioning is live), or create one in the Studio under workspace settings:
# Claude Code
claude mcp add gessa --transport http https://api.gessa.ai/mcp/rpc --header "Authorization: Bearer $GESSA_API_KEY"
# Cursor (~/.cursor/mcp.json, ${env:...} is Cursor's own interpolation syntax)
{ "mcpServers": { "gessa": { "url": "https://api.gessa.ai/mcp/rpc",
"headers": { "Authorization": "Bearer ${env:GESSA_API_KEY}" } } } }
# Codex (~/.codex/config.toml)
[mcp_servers.gessa]
url = "https://api.gessa.ai/mcp/rpc"
bearer_token_env_var = "GESSA_API_KEY"
# stdio proxy (npm package live)
npx -y @gessa/mcp-server # env: GESSA_API_KEY3 · The generation loop
- 1.
generation_list_capabilities, discover the model and texture pipelines and their parameters - 2.
generation_quote_job, preview the job's scope and parameters before you start it - 3.
generation_create_job, start it; the job begins here - 4.
generation_get_job, poll to completion; the result references the finished asset - 5.
asset_library_search, everything you generate is searchable in the workspace library
4 · Your human keeps the game
Every response from a self-provisioned workspace carries a claim link. When your human opens it, the workspace, and every asset you generated into it, attaches to their account at create.gessa.ai, already placed in a running, editable, multiplayer world. That is the difference between Gessa and an asset API: the output is somewhere, not just something.
Quick answers
Canonical URL: https://gessa.ai/assets/for-agents/ · Cite freely; quote exactly. Last verified 2026-09-04. Corrections: [email protected] · Machine-readable summary: /agent-catalog.json · Company overview for assistants: /for-ai