← Planner5D: Plan, Build, CreateCONTENT HISTORY

Update to Planner5D: Plan, Build, Create

Snapshot Oct 9, 2026 · 18:02 UTC · version 1.3.1

Collection source: downloaded plugin package.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Import the user's furniture or custom 3D models from product photos, product links or model files into Planner 5D. Use for testing whether specific furniture fits, showing it in the user's interior, replacing an existing item or comparing furniture variants in a native project. Do not use for standalone illustrations or image edits that explicitly exclude a native project.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 529
    },
    {
      "relative_path": "references/fit-evidence.md",
      "size_in_bytes": 3773
    }
  ],
  "name": "planner5d-model-import",
  "skill_md_contents": "---\nname: planner5d-model-import\ndescription: Import the user's furniture or custom 3D models from product photos, product links or model files into Planner 5D. Use for testing whether specific furniture fits, showing it in the user's interior, replacing an existing item or comparing furniture variants in a native project. Do not use for standalone illustrations or image edits that explicitly exclude a native project.\n---\n\n# Planner 5D model import and furniture fit\n\nUse the person's actual product or owned model. Preserve its identity and real dimensions while producing the requested editable layout, measured fit assessment or scene-based AI render.\n\n## Choose the outcome and source\n\n- For an already imported item, inspect `listUserModels` and reuse its owned hash. A similar catalog sofa is not the person's sofa. Use a catalog alternative or simplified proxy only when that matches the request or the person accepts the approximation.\n- A question with enough supplied measurements may need only a preliminary fit calculation. Do not require AI model generation for arithmetic or import/place objects in an explicitly read-only assessment.\n- Furniture/product photos are object sources. Room photos guide interior reconstruction; floor-plan PDFs/images guide recognition and measured room geometry. Select the route from the requested outcome, not the file extension or the presence of furniture in a picture. An imported 3D mesh is an asset, not an editable native room plan.\n\nUse the connected app or requested browser's registered native tools. In the app, follow `planner5d-native-app` to reuse the selected panel before opening one, discover with `get_planner5d_tools`, and execute tools through `read_planner5d` / `change_planner5d` using current panel/document IDs and stable operation IDs. Read `getWebMcpGuide` once and request the live `importUserModels`, `listUserModels` and placement schemas. Import actions, including capabilities/inspection, use the write wrapper when their annotation is not read-only. Refresh discovery/document ID after navigation. The native model `requestId` recovers its background jobs; the outer MCP `operation_id` identifies one exact call and input.\n\n## Import and recover the owned model\n\nAlready-ready owned models and read-only dimensional assessments skip new import. When importing or configuring an asset, `importUserModels` takes a JSON-string `request`. Begin with `{\"action\":\"capabilities\"}` to read supported extensions, native byte limits and account access. Choose the source the person actually supplied:\n\n| Source | Native import route |\n| --- | --- |\n| Attached product photo or small supported model file | `file` with the real filename and raw base64, within `inlineMaxBytes`. |\n| Public product image URL | `image` with its URL and optional name. |\n| Product/store page | `link` with the product URL. |\n| Public 3D-file URL | `file_url` with its URL and native filename. |\n| Large local 3D file | `prepare_upload` with filename and byte size; upload to the returned signed PUT destination with its headers, then import `uploaded_model` using the returned asset token. |\n\nDo not pass a local/sandbox path as a public image URL or publish a private attachment to make this route work. Keep signed destinations and asset tokens private. Native subscription, credit, ownership and file checks remain authoritative.\n\nSubmit an import request with `action:\"import\"`, a stable `requestId` and a `sources` array whose source IDs are unique. `waitMs` is a bounded observation wait, not the job's lifetime. Keep the page open through upload/admission until the receipt contains a submitted model hash. Accepted server conversion can then continue after navigation or closure.\n\nRecover with `{\"action\":\"status\",\"requestId\":\"stable-key\"}`, including after reload; an observation error/deadline does not cancel conversion. Reuse identical input and requestId after uncertainty. For an unknown admission inspect the owned model list before deciding whether any new submission is necessary. Preserve submitted items in a partial batch and do not repeat them under another key.\n\nFor an import receipt, ready means the item is `submitted`, its model is `finished`, and no observation error remains. A completed tool operation, upload acknowledgement or thumbnail is insufficient. If `model.status` requires review/setup, use `{\"action\":\"inspect\",\"modelHash\":\"...\"}` and the returned complete native configuration. When needed, submit a `configure` source with that hash/configuration and a new requestId for this deliberate configured copy; the original is preserved. Do not invent missing configuration fields. Failed or unresolved models remain unfinished. Native import configuration uses centimeters for size/position and Blender ZXY Euler radians for rotation; editor floor heading uses degrees. Read the returned configuration rather than guessing axes, pivot or units.\n\n## Place the product and answer “will it fit?”\n\nOpen the intended project and bind to `editorGetContext`: project hash, floor, room, permissions and revision. If the room comes from a supplied plan, recognize/create its native geometry and compare the dimensions/openings first using `planner5d-floorplan-recheck`. For a room photograph use `planner5d-webmcp` reconstruction guidance and label unmeasured geometry as assumed.\n\nImport alone does not place furniture. Insert the ready result through `editorPlaceCatalogItems` with `catalogId:\"user_model/<hash>\"`, retaining returned object IDs. Set its intended native position and pose, then obtain ready 3D geometry and inspect actual applied properties and transformed bounds.\n\nUse measured/product-specification width, depth, height and intended operating pose as the physical truth. Photo-generated models can have arbitrary scale or inaccurate shape. Correct the imported proxy's units/scale to those real dimensions through returned native configuration or editable object properties; verify the applied values. Never reduce the real product's dimensions just to make it fit. Missing decisive measurements block an exact fit verdict, but can still allow a labeled visual concept.\n\nFor clearances and evidence coverage read [furniture fit evidence](references/fit-evidence.md). Compare loaded geometry with actual usable room boundaries, nearby furniture and the requested minimum passage. Run scoped `editorValidateScene` and inspect the actual 2D/3D views. Keep footprint, passage, height, door operation and delivery-route checks separate; a generated picture does not prove any of them.\n\n## Show the furniture in the person's interior\n\nFor “how will this furniture look here?”, finish the native placement and requested finishes, then use `planner5d-ai-render` on that scene when available; otherwise follow the live `editorSubmitRender` preparation/generation/status guide. Compose and inspect a free source preview with the imported model loaded before preparing the quote. Render within the authorized budget and recover the same generation after uncertainty. Return the actual completed image together with the editable project; a technical preview is not an AI render. Compare the result with the source scene and product reference, noting visible differences rather than promising exact product reproduction from AI-generated geometry.\n\nCommon complete workflows are:\n\n- Product photo/link/model + measured room → owned model → native placement → fit verdict and limiting clearance.\n- Product source + existing interior → native placement/materials → reviewed source camera → AI render.\n- PDF/plan image + furnishing brief → recognized and checked native plan → imported or catalog furniture as requested → AI render.\n- Replace an existing item → inspect its identity and neighbors → place/verify the replacement → remove only the verified obsolete object using the exact-selection gate.\n- Compare furniture or finish variants → reuse the owned model and verified room geometry, retain each option's dimensions, and keep the camera consistent for requested renders. Do not change both geometry and appearance without distinguishing those choices.\n\nVerify normal autosave; for a requested persistence/E2E check use a fresh load and compare the imported model reference, dimensions and placement. Return the source/owned-model identity, project link, requested fit/render outcome and concrete unresolved checks. Distinguish import readiness, native scene correctness, saved persistence and AI-image fidelity.\n"
}

SHA-256 of public snapshot: 8ded2a7db04c74cb68b73a909751def77b3dfb3bd6f9a85ba3a462c83246d7a1