commit_scene_asset_upload
ChatGPTValidate an assembled asset and publish its resource reference as one revision. Image: PNG. Video: WebM/MP4. Other kinds: UTF-8 JSON matching the resource schemas. Old resource versions remain available for undo.
create_property
ChatGPTCreate a property from its own supplied plan and measured scale. Source, scale basis and assumptions are required. Floors and camera defaults are generated. Add only source-supported walls and fixtures with put_scene_nodes; do not copy another building.
delete_property
ChatGPTDelete a property from Your properties for all visitors. Requires its current expectedRevision and properties:write scope. A public property is refused: its owner switches sharing off in the browser first.
discard_scene_asset_upload
ChatGPTDiscard unpublished upload chunks. Does not change the property document or its revision.
get_authoring_guide
ChatGPTSelf-contained authoring manual, one bounded topic per call. Overview lists all topics; examples contains executable tools/call steps for textured multipart furniture, instancing, appearance, lighting and openings. Read geometry/materials/behavior/editing/validation before a detailed build. No repository access required.
get_property
ChatGPTRead property settings, rooms, catalogue, resource manifest, revision and browser viewerUrl. Nodes are omitted; use paginated get_scene_nodes. Browser viewing requires a separate owner or admin account session. share is null while the property is private. Otherwise share.publicUrl opens it for anyone without signing in: mode latest means every edit you save is public at once; mode pinned means visitors keep seeing share.revision until the owner updates it. Only the owner can make a property public or private, with the Share switch in the browser; no tool changes it.
get_scene_nodes
ChatGPTRead scene nodes, including immutable imported geometry references and transforms. Use parentId to inspect children; omitted lists all nodes with pagination. Set summary for a flat placement list with world transforms and bounds already applied, which reads a whole scene in one call at a fraction of the size; use it unless you need raw geometry or matrices.
get_scene_resource
ChatGPTRead a property resource as a bounded base64 byte range. Decode JSON resources to inspect or edit their definitions. get_property includes the current resource manifest.
get_schema
ChatGPTRead before editing. Input schemas and essential conventions. Then call get_authoring_guide for detailed workflows, renderer semantics, examples and validation. Interpret screenshots and research externally; this server has no browsing or image interpretation.
import_property_image
ChatGPTDownload a PNG and set it as the property's image in one revision. Accepts direct HTTPS download URLs on oaiusercontent.com or blob.core.windows.net and their subdomains, including signed links. No client-side byte retrieval needed. Session-local sandbox: links and login pages do not work; obtain a direct download link. PNG only, at most 8 MiB, 4096 px per side and 4 megapixels. Stored privately; source URL is not saved. Requires properties:write and current expectedRevision; retains history and updates open property lists.
list_properties
ChatGPTList accessible property IDs, names, image URLs and current revisions. share is null for a private property; otherwise it gives the mode, the shared revision and the publicUrl anyone can open. Use to locate the user's requested property, not to borrow another building as a template.
list_revisions
ChatGPTList saved snapshots newest first, paginated with beforeRevision. All revisions from the last 24 hours are retained; older history keeps the final revision per Dubai calendar day. created_at records when the snapshot was replaced; current_from records when that revision became current (estimated for legacy history). Each action is the edit that replaced that snapshot; the current revision comes from get_property. Use to identify an undo target, including the start of a multi-call operation.
open_property_viewer
ChatGPTOpen the property's realistic interactive live viewer in this conversation. Call it as soon as the property exists and before visual work, then end the turn so the host can mount it. In later turns render_property uses it. An open website tab for the same account can also render and is preferred. Edits appear live. The assistant cannot see this canvas until render_property returns an image. Whether a viewer keeps rendering after it scrolls away depends on the host, so try render_property: if it says the viewer was hidden or stopped responding, ask the user to scroll back to it first; if that does not help, call this again to place a fresh one at the bottom of the chat, which replaces the old one. Sessions last 30 minutes. Do not reopen a viewer that is working.
place_product
ChatGPTAdd researched catalogue products as groups of primitive parts for a layout approximation. Pass one placement inline, or placements for several in a single revision rather than waiting on each other. Do not treat generic boxes as finished realistic furniture; prefer put_scene_nodes with detailed resource parts and realistic variants for final models. Positions are floor-local metres on the room’s floor (world-space for legacy single-floor properties); each part is relative to the group bottom. Ceiling placement uses ceilingDrop. Published changes appear live in open viewers.
put_scene_nodes
ChatGPTCreate or update scene nodes. parentId is required; omitted name/position/rotation/scale reset to defaults. Other omitted geometry/metadata generally persists; render/light/realistic accept null to clear authored fields. Read affected nodes first and map object/userData/appearance output to input fields, not raw objects. See get_authoring_guide editing and examples. All IDs are property-local; geometry must come from this property's source.
put_scene_resources
ChatGPTCreate or replace up to 20 validated geometry/material/texture resources. Blobs are immutable in R2; references and history change atomically at expectedRevision. Dependencies must exist or be included in the same batch. The batch is stored in parallel, so send related resources in one call rather than one call each.
remove_product
ChatGPTRemove a shopping selection. Refuses when instances exist unless removeInstances is true.
remove_scene_node
ChatGPTRemove a node and all its descendants. Catalogue entries remain.
remove_scene_resource
ChatGPTRemove an unused resource from the current property manifest. Refuses dangling references; immutable blobs remain for historical revisions.
rename_property
ChatGPTRename the property. The new name appears on the account properties list and in the viewer heading and page title, updating open browsers live. Renaming does not change the model, its ID or its viewer URL. Requires properties:write and the current expectedRevision; it publishes one revision and is undone by restore_revision.
render_property
ChatGPTSee the actual property viewer in realistic appearance only: returns a JPEG MCP image plus captured revision, camera and rendering errors. Choose overview, plan or walkthrough, a named settings.presets perspective, optional floorId, roomId or custom camera, cutaway and furniture. One image per call, or pass cameras (up to four) to capture several viewpoints of one revision from a single scene load, which is most of a capture's cost. 800x600 by default and resizable, with bounded runtime and rate; no property changes. Renders only through an open website property tab for the same account or the chat viewer from open_property_viewer; there is no other renderer. If neither is ready it returns ok:false with a reason and a next instruction (usually: call open_property_viewer again, end the turn, then retry); follow it, and never infer availability from a host name. Use validate_property for placement, connectivity and layout questions. Not a route or VR test.
restore_revision
ChatGPTRestore the entire saved property snapshot, including its name and resources, as a new revision. This is not selective undo: account for later/concurrent edits. Requires current expectedRevision and a saved target revision from list_revisions; current validation still applies.
update_property_image
ChatGPTSet the image shown on the properties page to an image resource in this property, or pass imageResourceId:null to clear it. For a generated image download URL use import_property_image instead. Otherwise upload a PNG first with upload_scene_asset_chunk (kind:image) and commit_scene_asset_upload, then use the returned revision and resource ID. Requires properties:write and current expectedRevision; retains history and updates open property lists.
update_settings
ChatGPTReplace the complete settings object; read it first and preserve unrelated fields. Optional rooms and authoring replace their entire values when supplied. Keep labels, floor geometry, navigation polygons and room references consistent. To change one field without restating presets, labels, polygons and notes, pass settingsPatch instead: its top-level keys are merged over the current settings and everything else is left alone. Requires current revision.
upload_scene_asset_chunk
ChatGPTStage immutable base64 asset chunks, each up to 65536 decoded bytes. Use a unique uploadId and totalParts, then either one zero-based part with data, or parts: up to 8 {part,data} entries of the same upload in one call. Staging does not publish data or advance the scene revision. Pending chunks expire after 24 hours. Where the model writes tool arguments itself, each full chunk is about 87,000 base64 characters of its output, which suits small textures rather than photographs or video; callers that encode in code have no such cost.
upsert_product
ChatGPTCreate or replace complete catalogue products; defaults apply to omitted fields. Pass product for one or products for several: a whole shopping list registers in one revision rather than waiting on the previous one each time. Prioritise researching real products externally, verify dimensions/finish/price and record direct product URLs, not category pages. Explicitly label any unresolved provisional item. Does not place geometry or resize existing instances. Use place_product for primitives or put_scene_nodes for detailed resource parts.
validate_property
ChatGPTInspect the current revision for solid intersections, candidate mesh collisions, room reachability, research-source gaps and missing realistic variants, and return a character plan of each floor's walkable surface. Call after shell construction and every furnishing batch, and before claiming completion. Far cheaper than render_property: prefer it for placement and connectivity questions and keep renders for appearance. Reports limitations; visual and VR checks are still required.
viewer_log
ChatGPTProperty viewer only: report the widget's own display, visibility and error events.
viewer_release
ChatGPTProperty viewer only: withdraw readiness on Stop, hide or teardown.
viewer_submit
ChatGPTProperty viewer only: complete or decline its assigned render job.
viewer_wait
ChatGPTProperty viewer only: one waiting call for revision changes and render jobs, up to 25 seconds.