# Internet Paradise > Internet Paradise is a walkable 3D town for Tezos art in the browser: an old-European coastal village where people rent plots three months at a time, build galleries and hang their NFTs, and visitors walk in, meet and collect. AI agents can build drafts of a plot through MCP; only the plot's owner publishes, with a wallet signature. Site: https://internetparadise.xyz Documentation: https://internetparadise.xyz/docs/ Full text for agents: https://internetparadise.xyz/llms-full.txt Numbers here are generated from the site's code (docs updated 23 October 2026; SDK 0.3.0). ## Rules for agents - Agents never publish, sign, spend tez, upload model files or hang NFTs. Build a draft; the owner opens it in their plot editor and publishes it with their own wallet. - Never ask anyone for a seed phrase, private key or wallet password. - Call describe_rules first; call describe_scene and preview after each round of changes and show the owner the preview image. - Preview, then decide: before the owner decides, run validate, review_changes (what changes against the published plot) and preview_link (a link where the signed-in owner walks the draft on their plot; nothing is saved or published there). Call deploy only when the owner says to publish; discard_draft and restore_published only when they ask. - Units are metres, y is up, positions are object CENTRES from the north-west corner, tool angles are degrees (the scene file stores radians). North is -z. - Keep to the town's style: old Europe, stone, plaster, brick, tiled roofs, planted courtyards. Not modern or white and pristine. - Only use art and models the owner has the right to show. ## Connect - Remote MCP (ChatGPT, claude.ai, Claude Desktop, Claude Code, Codex): https://internetparadise.xyz/mcp — Streamable HTTP, OAuth 2.1 with PKCE S256; discovery at https://internetparadise.xyz/.well-known/oauth-protected-resource/mcp. The owner signs in with their Tezos wallet on /connect and presses Allow. Builds an online draft of the owner's plot. Limits: 60 calls/minute, 1,500/day per wallet; 4 drafts per wallet. - Local MCP over stdio: https://internetparadise.xyz/sdk/third-life-mcp.mjs (Node.js 20+), e.g. `claude mcp add internet-paradise -- node "$PWD/third-life-mcp.mjs" --scene "$PWD/my-world.json"`. Plot folders: `node third-life-pack.mjs init --plot `; the owner deploys with `node third-life-pack.mjs deploy`. - Tools: describe_rules, list_drafts, new_plot, open_draft, describe_scene, preview, list_objects, add_room, add_wall, add_floor, add_stairs, add_frames, list_prefabs, add_prefab, add_objects, update_objects, move_group, remove_objects, describe_game_api, get_game, set_game, remove_game, undo, restore_published, validate, review_changes, preview_link, deploy, discard_draft. The local server adds new_scene, open_scene, save_scene, inspect_model, optimize_model, add_model and export_zip. ## Build your plot with your agent (connect, build, preview, decide, publish) 1. Connect: remote https://internetparadise.xyz/mcp (Claude: Settings › Connectors › Add custom connector; Claude Code: `claude mcp add --transport http internet-paradise https://internetparadise.xyz/mcp` then /mcp; Codex: `[mcp_servers.internet-paradise]` with `url = "https://internetparadise.xyz/mcp"` in ~/.codex/config.toml, then `codex mcp login internet-paradise`; ChatGPT: chatgpt.com/plugins › + › Add custom MCP server, OAuth). Or local: `node third-life-pack.mjs init --plot ` writes a plot folder with .mcp.json (Claude Code) and .codex/config.toml (Codex). 2. Build in a draft (online) or in scene.json (folder). Nothing is public. 3. Preview: the preview tool returns an image; preview_link (or `node third-life-pack.mjs preview` in a folder) opens the draft on the owner's plot to walk. 4. Decide: review_changes (or `node third-life-pack.mjs diff`) says what changed; restore_published goes back to what is live; discard_draft deletes a remote draft. 5. Publish: deploy gives the owner the link; their wallet signs. Nothing is published without that signature. Details and ready-to-paste first prompts: https://internetparadise.xyz/docs/agents#workflow ## Optimizing models (before adding any GLB) - Budgets: one GLB is refused above 20 MB or 200,000 triangles; aim for at most 180,000 triangles, 24 materials, 240 draw primitives, textures 2,048 px as WebP and about 3 MB for a whole building. One cell holds 500,000 triangles across all its models, and copies count every time. - Targets: small prop (chair, lamp) 500-3,000 triangles, 1 material, one 512-1024 px texture; sculpture 10,000-50,000; room 20,000-60,000; gallery building 50,000-150,000 with up to 8 materials and one or two 2048 px atlases. - Workflow: inspect_model, then (far over, or not a GLB) the Blender script https://internetparadise.xyz/sdk/teztopia_optimize.py: `blender -b --python teztopia_optimize.py -- house.blend house.glb --triangles 100000 --texture 2048` (add `--bake` for one atlas material), then optimize_model (the site's own import preparation; writes -optimized.glb; `npm install sharp` beside the SDK for textures), inspect_model again, add_model with the optimized copy, and always validate before deploy. - A non-technical creator installs Node.js 20+ (nodejs.org) and, for modelling or conversion, Blender 4.1+ (blender.org, free). Everything runs on their computer; never upload their files. - Refused: KTX2/Basis textures, Draco (only the plot editor's import and optimize_model decode it), EXT_mesh_gpu_instancing, KHR_meshopt_compression, sparse accessors, .gltf with external files, skins, morph targets, lights. glTF-Transform: always `--instance false --sparse false`, never `--compress draco` or `--texture-compress ktx2`. gltfpack: never -tc, -tu, -cz or -mi. - Guide with commands and the whole script: https://internetparadise.xyz/docs/optimize ## Key limits - Cell: 16 x 16 x 16 m. Plots: 16, 32, 48 and 80 m square (1, 4, 9, 25 cells). - Per cell: 500 objects, 128 model instances from 32 files, 500,000 triangles, 24 live NFT displays, 16 portals. - Per GLB: 20 MB, 200,000 triangles, one embedded buffer, textures embedded as PNG/JPEG/WebP (WebP preferred, 2048 px), up to 4096 px and 16.8 MP. Accepted extensions: EXT_meshopt_compression, KHR_mesh_quantization, EXT_texture_webp, KHR_materials_emissive_strength, KHR_materials_unlit, KHR_materials_specular, KHR_materials_ior, KHR_texture_transform. Draco, KTX2, GPU instancing, skins, morph targets and lights are refused. - Per plot: 50 MB and 200 files per cell, at most 200 MB and 800 files (paid storage up to 150 MB on 16 m, 300 MB larger). NFTs are token references and do not count. - Visitor: 0.6 m wide, 1.72 m tall, climbs ledges up to 0.28 m; doors at least 0.8 × 1.82 m. ## Docs - [New to Tezos?](https://internetparadise.xyz/docs/new-to-tezos): what Tezos and tez are, a wallet and its secret words, getting tez, renting and renewing a plot (rented 3 months at a time, not owned) - [Getting started](https://internetparadise.xyz/docs/start): wallets, entering, walking, chat, collecting, sharing - [Land](https://internetparadise.xyz/docs/land): plots rented three months at a time, zones, rent in tez, renewals, grace, passing on a built plot's rental, gifts, storage - [Building](https://internetparadise.xyz/docs/building): editor, prefabs, templates, NFTs, portals, gallery sign, publishing - [Technical limits and optimisation](https://internetparadise.xyz/docs/limits): every limit, textures, atlases, Blender, glTF-Transform, gltfpack, cwebp, ffmpeg - [Optimizing assets](https://internetparadise.xyz/docs/optimize): budgets, targets by object type, guiding a creator step by step, the Blender script, inspect_model and optimize_model - [For AI agents](https://internetparadise.xyz/docs/agents): MCP, OAuth, tools with arguments, scene format, examples - [SDK guide](https://internetparadise.xyz/sdk/): local MCP server, packing, plot folders and deploy - [Scene JSON Schema](https://internetparadise.xyz/sdk/world.schema.json) ## Optional - [House rules](https://internetparadise.xyz/docs/rules) - [Privacy and contact](https://internetparadise.xyz/docs/privacy): what is kept and for how long, data export and deletion, contact and appeals - [Terms of service](https://internetparadise.xyz/terms.html) - [FAQ](https://internetparadise.xyz/docs/faq) - [Check my model](https://internetparadise.xyz/docs/check): in-browser GLB checker