← WebMCP Directory

Tool tree

wadi.house

Developer ToolsTools verified
Website
Wadi: 3D Home Designer
Explore capabilities
    wadi_wdl_referenceAction

    A self-contained primer for Wadi's .wdl design language and the authoring loop. Call this FIRST before writing WDL.

    View tool JSON
    {
      "name": "wadi_wdl_reference",
      "kind": "act",
      "impl": "imperative",
      "description": "A self-contained primer for Wadi's .wdl design language and the authoring loop. Call this FIRST before writing WDL.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/app/"
    }
    wadi_get_wdlAnswer

    Return the current live house as editable .wdl source. Read this before modifying an existing design.

    View tool JSON
    {
      "name": "wadi_get_wdl",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return the current live house as editable .wdl source. Read this before modifying an existing design.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/app/"
    }
    wadi_set_wdlAction

    Compile .wdl and load it into the live 3D model. STRONGLY PREFER EDITING A TEMPLATE over building from scratch: wadi_list_homes -> wadi_choose_home (closest match) -> wadi_get_wdl -> edit -> wadi_set_wdl. Authoring a whole house from a blank .wdl is error-prone (wall alignment, roof sizing, cantilever support, staircase); only do it if no template fits. On a compile/schema error the model is unchanged and errors are returned; on success returns the structural check — READ IT AND FIX WARNINGS before telling the user it is ready. Loop: get -> edit -> set -> fix -> repeat.

    View tool JSON
    {
      "name": "wadi_set_wdl",
      "kind": "act",
      "impl": "imperative",
      "description": "Compile .wdl and load it into the live 3D model. STRONGLY PREFER EDITING A TEMPLATE over building from scratch: wadi_list_homes -> wadi_choose_home (closest match) -> wadi_get_wdl -> edit -> wadi_set_wdl. Authoring a whole house from a blank .wdl is error-prone (wall alignment, roof sizing, cantilever support, staircase); only do it if no template fits. On a compile/schema error the model is unchanged and errors are returned; on success returns the structural check — READ IT AND FIX WARNINGS before telling the user it is ready. Loop: get -> edit -> set -> fix -> repeat.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "wdl": {
            "type": "string",
            "description": "The full .wdl source."
          }
        },
        "required": [
          "wdl"
        ]
      },
      "page": "/app/"
    }
    wadi_check_wdlAction

    Compile-check .wdl WITHOUT loading it (dry run). Returns errors, or ok.

    View tool JSON
    {
      "name": "wadi_check_wdl",
      "kind": "act",
      "impl": "imperative",
      "description": "Compile-check .wdl WITHOUT loading it (dry run). Returns errors, or ok.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "wdl": {
            "type": "string",
            "description": "The full .wdl source."
          }
        },
        "required": [
          "wdl"
        ]
      },
      "page": "/app/"
    }
    wadi_list_modulesAction

    List the custom component modules registered for the current model (import ref + source size). These reusable component .wdl files are saved inside the .wadi. Inbuilt packs (std-furniture, konkan/base) are always available and are not listed.

    View tool JSON
    {
      "name": "wadi_list_modules",
      "kind": "act",
      "impl": "imperative",
      "description": "List the custom component modules registered for the current model (import ref + source size). These reusable component .wdl files are saved inside the .wadi. Inbuilt packs (std-furniture, konkan/base) are always available and are not listed.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/app/"
    }
    wadi_add_moduleAction

    Register (or replace) a reusable component module by its import ref, then recompile the live model. The module is a .wdl holding `component Name { … }` definitions in LOCAL coords (no `house` block). After adding, `import "ref" as ns` in the main WDL (wadi_set_wdl) and place it with `use ns.Name at (x,y)`. Saved inside the .wadi so the design is self-contained. Returns the structural check.

    View tool JSON
    {
      "name": "wadi_add_module",
      "kind": "act",
      "impl": "imperative",
      "description": "Register (or replace) a reusable component module by its import ref, then recompile the live model. The module is a .wdl holding `component Name { … }` definitions in LOCAL coords (no `house` block). After adding, `import \"ref\" as ns` in the main WDL (wadi_set_wdl) and place it with `use ns.Name at (x,y)`. Saved inside the .wadi so the design is self-contained. Returns the structural check.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ref": {
            "type": "string",
            "description": "the import ref, e.g. \"dining-set\""
          },
          "wdl": {
            "type": "string",
            "description": "the module's .wdl source (component definitions only)"
          }
        },
        "required": [
          "ref",
          "wdl"
        ]
      },
      "page": "/app/"
    }
    wadi_remove_moduleAction

    Remove a custom component module by its import ref and recompile. Also remove its `import` line from the main WDL if the component is no longer used.

    View tool JSON
    {
      "name": "wadi_remove_module",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove a custom component module by its import ref and recompile. Also remove its `import` line from the main WDL if the component is no longer used.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ref": {
            "type": "string",
            "description": "the import ref to remove"
          }
        },
        "required": [
          "ref"
        ]
      },
      "page": "/app/"
    }
    wadi_list_homesAction

    List the ready-made home designs to start from (id, title, meta).

    View tool JSON
    {
      "name": "wadi_list_homes",
      "kind": "act",
      "impl": "imperative",
      "description": "List the ready-made home designs to start from (id, title, meta).",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/app/"
    }
    wadi_choose_homeAction

    Load one ready-made home by id (from wadi_list_homes) as your STARTING POINT — pick the one closest to what the user wants, then read it with wadi_get_wdl and edit it. This is the recommended way to begin; it is far more reliable than authoring from scratch.

    View tool JSON
    {
      "name": "wadi_choose_home",
      "kind": "act",
      "impl": "imperative",
      "description": "Load one ready-made home by id (from wadi_list_homes) as your STARTING POINT — pick the one closest to what the user wants, then read it with wadi_get_wdl and edit it. This is the recommended way to begin; it is far more reliable than authoring from scratch.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "template id, e.g. family_home"
          }
        },
        "required": [
          "id"
        ]
      },
      "page": "/app/"
    }
    wadi_read_homeAnswer

    Return a ready-made home's .wdl source WITHOUT loading it — study an example (how it does a roof, staircase, grid, etc.) without disturbing the user's current model. Use this to look things up; use wadi_choose_home only when you actually want to start from that home. Ids come from wadi_list_homes.

    View tool JSON
    {
      "name": "wadi_read_home",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return a ready-made home's .wdl source WITHOUT loading it — study an example (how it does a roof, staircase, grid, etc.) without disturbing the user's current model. Use this to look things up; use wadi_choose_home only when you actually want to start from that home. Ids come from wadi_list_homes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "template id, e.g. family_home"
          }
        },
        "required": [
          "id"
        ]
      },
      "page": "/app/"
    }
    wadi_describe_houseAnswer

    The whole house as structured data (floors, rooms with sizes/positions in feet, connections, roof, plot, variables, staircases, and a structural summary). Read this to understand the current design. The `staircases` array reports each stair's flight count, climb direction, the top-landing rectangle (where you step onto the floor) with its facing, and the min box length for 1 and 2 flights — use it to size and orient stairs.

    View tool JSON
    {
      "name": "wadi_describe_house",
      "kind": "answer",
      "impl": "imperative",
      "description": "The whole house as structured data (floors, rooms with sizes/positions in feet, connections, roof, plot, variables, staircases, and a structural summary). Read this to understand the current design. The `staircases` array reports each stair's flight count, climb direction, the top-landing rectangle (where you step onto the floor) with its facing, and the min box length for 1 and 2 flights — use it to size and orient stairs.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/app/"
    }
    wadi_checkAction

    Run the C1-C12 structural linter over the live house and return errors + warnings.

    View tool JSON
    {
      "name": "wadi_check",
      "kind": "act",
      "impl": "imperative",
      "description": "Run the C1-C12 structural linter over the live house and return errors + warnings.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/app/"
    }
    wadi_capture_viewAction

    Render the current 3D model to a PNG image so you can see the result.

    View tool JSON
    {
      "name": "wadi_capture_view",
      "kind": "act",
      "impl": "imperative",
      "description": "Render the current 3D model to a PNG image so you can see the result.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/app/"
    }
    wadi_undoAction

    Undo the last change.

    View tool JSON
    {
      "name": "wadi_undo",
      "kind": "act",
      "impl": "imperative",
      "description": "Undo the last change.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/app/"
    }
    wadi_redoAction

    Redo the last undone change.

    View tool JSON
    {
      "name": "wadi_redo",
      "kind": "act",
      "impl": "imperative",
      "description": "Redo the last undone change.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/app/"
    }