> ## Documentation Index
> Fetch the complete documentation index at: https://opencanvas.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# find_placement: Suggest Artboard Position

> Get a non-overlapping canvas world coordinate for a new artboard of a given size — placed automatically to the right of existing frames with an 80px gap.

The `find_placement` tool calculates a safe X/Y position for a new artboard that won't overlap any existing frames on the canvas. It looks at the rightmost edge of all current artboards and places the suggested position 80px to the right, aligned to Y=0. You can then pass the returned coordinates directly to `create_artboard` to place your new frame cleanly alongside existing ones.

This tool is especially useful when creating multiple artboards programmatically — for example, building out desktop, tablet, and mobile variants of a design in sequence — where you don't want to calculate offsets manually.

## Parameters

<ParamField path="width" type="number" required>
  The width in pixels of the artboard you plan to create. This is used to calculate how much horizontal space the new frame will occupy. Must be a positive number.
</ParamField>

<ParamField path="height" type="number" required>
  The height in pixels of the artboard you plan to create. Must be a positive number. While height doesn't affect the horizontal placement calculation, it is required for the complete placement suggestion.
</ParamField>

## Response

<ResponseField name="x" type="number" required>
  The suggested X coordinate in canvas world space for the top-left corner of the new artboard. Positioned 80px to the right of the rightmost existing artboard. Returns `0` if there are no existing artboards.
</ResponseField>

<ResponseField name="y" type="number" required>
  The suggested Y coordinate in canvas world space. Currently always returns `0`, placing new artboards along the top edge of the canvas.
</ResponseField>

## Example

<CodeGroup>
  ```json request — find position for a mobile artboard theme={null}
  {
    "method": "tools/call",
    "params": {
      "name": "find_placement",
      "arguments": {
        "width": 390,
        "height": 844
      }
    }
  }
  ```

  ```json request — find position for a desktop artboard theme={null}
  {
    "method": "tools/call",
    "params": {
      "name": "find_placement",
      "arguments": {
        "width": 1440,
        "height": 900
      }
    }
  }
  ```
</CodeGroup>

```json response theme={null}
{
  "content": [
    {
      "type": "text",
      "text": "{\"x\": 1520, \"y\": 0}"
    }
  ]
}
```

The suggested coordinates can then be passed directly to `create_artboard`:

```json create_artboard with suggested position theme={null}
{
  "method": "tools/call",
  "params": {
    "name": "create_artboard",
    "arguments": {
      "name": "Mobile – Home",
      "width": 390,
      "height": 844,
      "x": 1520,
      "y": 0
    }
  }
}
```

<Tip>
  When building a responsive design set, call `find_placement` before each `create_artboard` in your sequence. As each artboard is created, the next `find_placement` call will account for it, keeping all frames neatly spaced across the canvas.
</Tip>

<Note>
  `find_placement` is a read-only suggestion — it does not create an artboard or reserve the position. If another artboard is created between your `find_placement` call and your `create_artboard` call, the coordinates may overlap. In single-agent workflows this is rarely a concern.
</Note>
