Assistant
Note
Coming in Spatial Integration version 3.
The assistant lets you work with Spatial Integration in plain language. Ask it about the loaded data and it answers with summaries, tables and reports; tell it what you want to see and it drives the application for you: showing and hiding layers, moving the camera, styling visualisations and running calculations.
It is powered by a large language model that you connect yourself: Anthropic's Claude, OpenAI, a model built into Spatial Integration, or a model running on your own machine through Ollama, LM Studio or another OpenAI-compatible server.
Open the assistant with its button in the tools menu along the right edge of the window, or press A. The panel stays open when you open or close a project.
Connecting a model
The assistant needs a model provider before it can answer. Open Configure > Assistant and pick one of the providers listed, or add your own.
| Provider | Kind | Endpoint | Key |
|---|---|---|---|
| Built-in model | Built-in | none | None. Download a model once; see below |
| Anthropic | Anthropic | leave empty | An API key from console.anthropic.com, or the ANTHROPIC_API_KEY environment variable |
| OpenAI | OpenAI-compatible | leave empty | An API key from platform.openai.com, or the OPENAI_API_KEY environment variable |
| Ollama | Ollama | http://localhost:11434 |
None. Pull a model first, for example ollama pull qwen3:8b |
| LM Studio | OpenAI-compatible | http://localhost:1234 |
None. Start the local server in LM Studio |
| llama.cpp server | OpenAI-compatible | http://localhost:8080 |
None |
| OpenRouter | OpenAI-compatible | https://openrouter.ai/api |
An OpenRouter key |
Press Test to check the connection and list the models the endpoint offers, then pick a Model and press Apply. The Active provider is the one the panel uses; you can also switch provider and model from the panel's toolbar.
Note
Keys are stored encrypted on this machine and are only sent to the endpoint you configured. A key left empty falls back to the environment variable named above.
The built-in model
The simplest way to run a model on your own machine is the Built-in model provider, which needs nothing else installed. Pick it in the panel's provider list and press Download. The model is downloaded once, checked, and from then on runs inside Spatial Integration, offline.
Under Configure > Assistant the Built-in provider lists the models available, shows which are downloaded, and suggests which suits this computer's graphics card; Recommended for this machine picks for you. The model starts when the provider becomes active, and the panel shows it loading; the first question after a start waits for it.
| Model | Download | Needs |
|---|---|---|
| Qwen3 4B | 2.5 GB | a 6 GB graphics card, or runs slowly on the processor |
| Qwen3 8B | 5 GB | a 10 GB graphics card |
| Gemma 4 12B | 7 GB | a 12 GB graphics card |
| gpt-oss 20B | 12 GB | a 16 GB graphics card |
The model runs on the graphics card when it fits; otherwise part of it runs on the processor, which is slower. It shares the card with the 3D view, so a very large project and a large model do not mix well. The built-in model is stopped whenever another provider is active.
Note
Models are downloaded from huggingface.co under their own licences (Apache 2.0 for those listed) and are not shipped with Spatial Integration.
Settings for local models
A model running on your own machine costs nothing per question and sends nothing off the machine, but it is smaller than the cloud models and needs a few settings to do well. The Built-in and Ollama providers come with them set; for LM Studio or llama.cpp set them yourself under the provider:
- Context tokens is how much text the model can work with at once. Ollama's own default of 4096 is too small for the assistant's instructions, and whatever does not fit is silently dropped. The Ollama provider asks for 32768, which suits an 8B model on a 12 GB graphics card; a bigger window uses more memory, a smaller one forgets sooner. For LM Studio and llama.cpp also set the context length in that application. Test reports the context the model was trained with.
- Temperature: a low value, 0.1 to 0.3, makes the model's actions more reliable.
- Tools: Compact (small models) offers the model a short list of the most relevant actions for each request and lets it look up others as needed. This uses far less of the context, and small models choose better from a short list. Full catalogue offers everything; the cloud providers use it.
- Thinking lets a reasoning model (Qwen3, gpt-oss, DeepSeek) think before it answers. The thinking is shown folded away above the reply. It is slower, and off suits most requests.
- Tool result cap (KB) shortens long earlier results before they go back to the model, so old statistics or help text do not fill the context. 0 sets it from the context size. The newest results are kept whole as far as possible.
The footer shows roughly how much of the context the conversation is using. When it fills, the oldest results and then the oldest turns are dropped; a warning there means it is time to start a new chat.
Models that work well: qwen3:8b (or qwen3:4b on a small graphics card), and gpt-oss:20b with 16 GB or more. A model that does not support tool calling cannot drive the application at all; the assistant tells you when a reply contained no usable action.
Asking questions
Type into the box at the bottom of the panel and press Enter. Shift+Enter starts a new line. Some things to try:
- What layers are loaded?
- Describe the magnetics grid.
- What is the range of copper assays in the drill holes?
- Summarise this project in a short report.
- How do I clip objects?
The assistant can look at the project, the layers, each layer's attributes and statistics, the camera, the recent message log and the help. Each lookup or action appears as a card in the conversation; open the card to see what was asked and what came back. Replies can contain tables and headings. Use the save button to write the conversation to a Markdown file, or the copy button to put the last reply on the clipboard.
Giving commands
The assistant uses the same commands as the user interface, so anything it does can be undone with Ctrl+Z like your own actions.
- Hide all the drill holes.
- Look north and set the vertical exaggeration to 3.
- Colour the collars by total depth with five natural break classes.
- Fly to the terrain surface.
Line data processing
For a LineDB survey the assistant can calculate channels from expressions and filter them line by line, using the same calculator and filters as the Attribute Table. For example, ask "convert Au_ppm to ppb in a new channel" or "despike the magnetics channel into mag_ds". Both can be undone, and "undo that" reverses the last one. Say what you want and the assistant chooses the settings and tells you what it ran.
It can grid a channel by minimum curvature, as the Gridding dialog does. Ask for example "grid the magnetics at a 50 m cell" or "make a grid of Th_ppm with a 200 m blanking distance". Anything you do not specify (the coordinate channels, the extent, the cell size, the output file) is set as the dialog would set it, and the assistant says what it ran. Ask it to load the grid as a surface if you want to see it. Grids above fifty million cells are refused; make those from the dialog.
It can also set the survey's coordinate frame, as the Coordinate Frame button in the Attribute Table does. Ask for example "read the positions from X_MGA and Y_MGA in MGA zone 50" or "the survey is in EPSG:28350". The frame is written to the survey's file and the survey is redrawn; this can be undone.
Approvals
Commands that change data or the project, such as deleting points, removing a layer or closing the project, wait for your approval by default. The panel shows what the assistant wants to run, with Approve and Deny buttons. Change this with Approval under Configure > Assistant:
- Run every command: nothing waits.
- Confirm destructive commands: the default.
- Confirm every command: every command waits; questions are still answered.
- Read only: the assistant can answer questions but cannot change anything.
What is sent to the model
Each message carries the project name, the view CRS and a one line summary of every layer, so the model knows what is loaded. Results sent back to the model contain what you see in the cards: layer names, attribute names, statistics, log lines and help text. Your datasets themselves are never sent, and neither are your keys. Untick Send a layer summary with each message under Configure > Assistant if you would rather the model asked.
To see exactly what was sent, tick Keep a transcript journal. Every request and reply is then written to files in ~/.si/llm/transcripts, which is useful for working out why a model answered as it did. Keys are never written.
Using an external AI client
If you use an AI client on your own computer, such as Claude Code, it can drive a running copy of Spatial Integration with the same abilities as the assistant panel.
- Open Configure > Assistant and find MCP server for developers.
- Tick Enable MCP server, choose a Port, and press Save at the bottom of the Configure window. The settings then show the address the server is running at.
- Connect your client. For Claude Code, copy the command shown beneath the port with the copy button and run it, for example:
claude mcp add --transport http si http://127.0.0.1:8765/mcp
Other clients that support the Model Context Protocol connect to the same address.
The server only accepts connections from this computer and is off by default. Nothing asks for approval when an external client is in control, so commands that edit, delete, save or close are refused unless you tick Allow destructive tools over MCP.
Warning
Any program on this computer can reach the server while it is running. Leave it off when you are not using it.