RustGIS is a fast, free and open-source GIS in pure Rust for mapping, analyzing and sharing geospatial data. Its a really good fit for running in agent bots, its fast and well organized with builtin mcp/cli. rustgis.app/
Here's a @grok @bot template to install it in GrokBot.
example:
"I asked my Grok Bot to pull today's live wildfire perimeters from a public ArcGIS service and check which counties are exposed. In seconds RustGIS buffered them by 10 km, overlaid counties, and made the map + report: 40 Pacific NW counties, 7.0M residents."
Brian Flood retweeted
Haiku 5.5 is 20x cheaper than Sonnet 5.5 (for <100k input tok), fast, and great for sub-agent parallelization.
i've been building maps w/ many Haiku 5.5 sub-agents that stream drawing commands to a shared canvas:
Grok Bot - had the CityPlanner continue building out the new city. It created master plan and then blocks, lots, ROW layers using best practices from ArcGIS. I've found the Grok models are really strong with spatial reasoning so that can go in and create, update and analyze entire feature layers (given the right base tools)
CityPlanner - "Two parallel products: a community master plan under NRS 278.160 (not a County plan rewrite), and a parcel fabric cut from the street frame. I’ll pull the live counts so the numbers match the map.
Master plan is a site community plan, not a replacement of Transform Clark County. It’s written to NRS 278.160 (a)–(i), then drawn as three polygon services under the Master plan folder. Neighborhoods and phasing are snapped to the street frame; plan structure is live zoning dissolved into Employment / Town Center / Neighborhoods / OS / Civic / School — not a second district map.
Those three services are 19 features total: jean_p1_neighborhoods_poly 5 (NW, SW, NE, SE, Town Center), jean_p1_phasing 3 (1A 2,800 du west-central, 1B 2,200 east bowl, 1C employment), jean_p1_plan_structure 11. Ignore the leftover point seed jean_p1_neighborhoods. The written plan and checklist are the NRS/Title 30 path (PLU amendment + Major Project / PUD, BLM, SNWA treat-and-return, no septic).
Parcels are a two-layer fabric. Blocks are the site minus curb. Lots are those islands split by Title 30 so an OS-majority block does not swallow RS/RM/IP. ROW is class plates (arterial / collector / local), not 78 segment capsules. Each lot has fabric-ish fields (pin JN-P1-B014-012, stated acres, frontage, record name) and no invented owners. Curb lives on jean_p1_street_row_ft because the old world-extent WGS84 service hulls 28-ft locals on write.
Live on the watch map right now: 217 street centerlines (78 plus the new locals for access), 107 curb-plate polygons, 386 blocks, 686 parcels (533 lots, 150 campus, 3 ROW). Lot mix is 205 RS3.3, 70 RS2, 177 RM, 11 IP, plus commercial and civic campus. First cut had thousands of module lots with no road; this pass added locals and merged the leftovers so lots front a curb. OS wash can still sit off-street.
Each layer is its own AGO Feature Service (delete on at create, then replace-features from a server-side result, no coordinates in chat). Live /FeatureServer/0 URLs sit on the official map in Plan / Land use / Utilities / Master plan folders. Same item IDs get rewritten in place so the map does not mint twins."
xitter.cf/bFlood/status/20931058…
Grok Bot - Create data and maps in ArcGIS Online
ChiefBot asked for a phase-one 20k new town near Las Vegas: vacant developable land, not inside LV/Henderson/NLV, screened off military, wilderness, tribal, floodways, and steep terrain. Target 2–4 sq mi, about 5,000 dwellings, compact and walkable. Persist real GIS layers (streets, land use, parks, civic, schools, utilities, drainage) and put them on a map.
Site is Jean New Town Phase One: BLM desert east of I-15 at NV-161, centroid 35.7765, -115.2813. 1,915 acres / 2.99 sq mi. Town sits in the east bowl. Jean Wash is the spine. West ridge is open space. I-15 water, power, and interchange pins stay west of town.
In AGO there are 26 official Feature Services and 463 features, plus 4 web maps.
CityPlanner (11 layers, 110 features): site 1 · streets v2 78 (10 arterial, 21 collector, 47 local) · wash framework 3 · parks 7 · civic 6 · schools 2 · trails 7 · neighborhood centers 5 · transit hub 1.
ZoningBot (2 layers, 16 features): 11 Title 30 districts (IP, CG, CC, PF-C, PF-S, OS, CN, RM32, RM18, RS2, RS3.3) covering the full 1,915 acres · 5 overlays (DSEO, PCO, AAO, MSFO, WBO). Theoretical yield about 15,900 du.
UtilitiesBot (15 layers, 337 features): wash corridors 3 · facilities 5 (1.25 MGD WRF, two 2.5 MG tanks, 138/24.9 kV sub, LVVWD POC) · water trunk 13 / laterals 61 / nodes 15 · sewer trunk 12 / collection 57 / ww nodes 7 · reuse 11 · 138 kV 2 · power dist 51 / nodes 6 · storm 76 · drainage nodes 9 · easements 9.
Maps: overview · Plan · Land use · Utilities. All live Feature Service URLs, not snapshots.
Agents I created: UtilitiesBot (water, sewer, power, drainage) and ZoningBot (Title 30 districts, FAR, overlays). I keep site, streets, and the watch maps.
@arcgis @bot
Grok Bot - Create data and maps in ArcGIS Online
ChiefBot asked for a phase-one 20k new town near Las Vegas: vacant developable land, not inside LV/Henderson/NLV, screened off military, wilderness, tribal, floodways, and steep terrain. Target 2–4 sq mi, about 5,000 dwellings, compact and walkable. Persist real GIS layers (streets, land use, parks, civic, schools, utilities, drainage) and put them on a map.
Site is Jean New Town Phase One: BLM desert east of I-15 at NV-161, centroid 35.7765, -115.2813. 1,915 acres / 2.99 sq mi. Town sits in the east bowl. Jean Wash is the spine. West ridge is open space. I-15 water, power, and interchange pins stay west of town.
In AGO there are 26 official Feature Services and 463 features, plus 4 web maps.
CityPlanner (11 layers, 110 features): site 1 · streets v2 78 (10 arterial, 21 collector, 47 local) · wash framework 3 · parks 7 · civic 6 · schools 2 · trails 7 · neighborhood centers 5 · transit hub 1.
ZoningBot (2 layers, 16 features): 11 Title 30 districts (IP, CG, CC, PF-C, PF-S, OS, CN, RM32, RM18, RS2, RS3.3) covering the full 1,915 acres · 5 overlays (DSEO, PCO, AAO, MSFO, WBO). Theoretical yield about 15,900 du.
UtilitiesBot (15 layers, 337 features): wash corridors 3 · facilities 5 (1.25 MGD WRF, two 2.5 MG tanks, 138/24.9 kV sub, LVVWD POC) · water trunk 13 / laterals 61 / nodes 15 · sewer trunk 12 / collection 57 / ww nodes 7 · reuse 11 · 138 kV 2 · power dist 51 / nodes 6 · storm 76 · drainage nodes 9 · easements 9.
Maps: overview · Plan · Land use · Utilities. All live Feature Service URLs, not snapshots.
Agents I created: UtilitiesBot (water, sewer, power, drainage) and ZoningBot (Title 30 districts, FAR, overlays). I keep site, streets, and the watch maps.
@arcgis @bot
Grok Bot - swarms of agents working non-stop against GIS services generates a lot of load and without good MCP tool options, it can consume a lot of tokens too. Ask Grok agents to help with updating strategies to slim that usage, this will be critical at scale.
"based on the tool changes in geoai, do you think we saved some tokens on the last updates?"
"Yes on the GIS writes. Street ROW never entered this chat as coordinates. Query stayed remote: true, the dissolve ran in a pipeline code node, and replace-features took a resultId. Same for the 78-to-3 curb-plate swap. The old path (load the polygons, paste GeoJSON, hundreds of updates) would have been the expensive one. I don’t have a token meter, so that’s a shape call, not a count."
Grok Bot - setting up a mock staff to analyze and inspect roof AC units. Connecting the bots to ArcGIS data (MCP) and gaussian splat layers so they can visually inspect roofs and catalog what they find.
Both Grok Bot and Grok Build's /resume-claude should really concern @AnthropicAI
Grok vision also did pretty well with "planes", "solar panels", "cars that are driving", all extracted to geojson
xitter.cf/bFlood/status/20847566…
Using Grok to build a 3D SAM process around Grok Build. This works better then expected, looking forward to see what Grok 4.6 does too
Top set of images is a 3D frame from a gaussian splat (but could easily be video frames as well). The top-middle is the model mask and the right is the extracted vectors.
Bottom set is it working on 2D satellite imagery (samgeo test data, runs about 40% quicker too)
Using Grok to build a 3D SAM process around Grok Build. This works better then expected, looking forward to see what Grok 4.6 does too
Top set of images is a 3D frame from a gaussian splat (but could easily be video frames as well). The top-middle is the model mask and the right is the extracted vectors.
Bottom set is it working on 2D satellite imagery (samgeo test data, runs about 40% quicker too)
Grok Build - ArcGIS visual data analysis - a human is faster and more accurate but if you've got thousands of features across large areas (eg inspect all building roof AC units), this process has merit, especially when the agent can change vantage points in 3D. WIP, added SAM-lite and some vision model extraction tricks. Grok Build subagents and workflows used to run the process
prompt: Inspect the smokestack at the center of the target area. Look for any defects and report back all findings
response: (in report) - 1. [issue] Major mid-shaft cladding spall / delamination (north face). Large horizontal band of delaminated/peeling outer cladding or render on the north face mid-shaft, below the helical ladder intermediate landing. Flaps of material hang outward; dark openings/voids visible behind peeled skin.
Grok Build + ArcGIS 3D Gaussian splat visual analysis -
Virtual Drones POC - The primary agent uses swarms of Grok sub-agents to inspect a large scene in parallel, findings are cross-checked, added to coverage/defect layers and a report. Each subagents gets a general AOC, instructions and skills ("you are an expert industrial HVAC inspector, look for..."). Add an MCP to a work order system and anything critical could be added automatically.
Using the Grok Build harness as an agentic workflow engine is really powerful and since its open source, you can drop in whatever models you want and run locally or server side. I do think Grok 4.5 hits the sweet spot on intelligence, speed and price. We'll see how much better the vision gets in 4.6 and 4.7, right now its a little slow to extract pixel level features from the scenes (and since video vision inference is so critical in Tesla FSD and Optimus, I hope these models will build on each other in the future)
Grok Build + ArcGIS 3D Gaussian splat layer analysis. Allow the agent (and subagents) to explore 3D layers visually, generate condition and remediation reports on what it sees.
Prompt: please examine the building at the center of the scene, rotate around it and generate a detailed report about the condition of the building, roof, siding and all piping. Record all defect and produce a plan for remediation.
Response: (5 page pdf report) -
5. Overall opinion
The baghouse remains a complete exterior assembly (shell, four hoppers, primary ducts, supports). The plant appears operational. Dominant degradation is:
Long-term coating failure and corrosion on roof and process ductwork (especially NE risers and elbows).
Cladding paint loss (NW/W worst).
Poor yard housekeeping and uncertain fall protection.
Overall: Fair–Poor.
Do not assume indefinite structural or process fitness without thickness testing and a close-up mechanical / structural walkdown.
Brian Flood retweeted
People keep sleeping on @Esri, but they are processing splats with millions of images at a time. These are all splats from their User Conference this month
Grok Build + ArcGIS 3D Gaussian splat layer analysis. Allow the agent (and subagents) to explore 3D layers visually, generate condition and remediation reports on what it sees.
Prompt: please examine the building at the center of the scene, rotate around it and generate a detailed report about the condition of the building, roof, siding and all piping. Record all defect and produce a plan for remediation.
Response: (5 page pdf report) -
5. Overall opinion
The baghouse remains a complete exterior assembly (shell, four hoppers, primary ducts, supports). The plant appears operational. Dominant degradation is:
Long-term coating failure and corrosion on roof and process ductwork (especially NE risers and elbows).
Cladding paint loss (NW/W worst).
Poor yard housekeeping and uncertain fall protection.
Overall: Fair–Poor.
Do not assume indefinite structural or process fitness without thickness testing and a close-up mechanical / structural walkdown.
Brian Flood retweeted
Grok Build + ArcGIS services
prompt: "Find all Harris county properties that are greater then 2 acre and within 0.5 miles of a gas station. Also, they can’t be in a flood plain. Build a plan, let me approve and then complete the work"
result: "Executing the approved plan with work package wp_exec-2026-07-21T1508: stations → buffer → parcel harvest → flood filter → map + report.
1889 stations loaded. Buffering 0.5 mi, then harvesting parcels.
Harvesting HCAD parcels by tile (largest step — may take several minutes).
Harvested 49,793 parcels. Running proximity and flood filters next.
Final result: 18,356 parcels. Finishing map reload, work package, and report."
@spacexai @ArcGISOnline
Grok Build and ArcGIS
Prompt: Build a Houston EV / alt-fuel seismic screen: join alt-fuel stations to historical quakes, flag parcels within 0.75 mi of stations, enrich the top stations with nearby parcel + quake metrics, priority-band them (P1/P2), and show the layers on the map.
grok4.5 agent designs and assembles geospatial pipelines as part of the plan. it can use core node types (query,buffer,enrich,foreach etc) or insert python it writes as part of the process. This gives the workflow more deterministic and tested geospatial code but also allows the agent to reason and build whatever it needs. fwiw, this was the same design for the execute-pipeline tool in geoai.tools MCP as well, it allows the agent to reason but keeps data and execution out of the context window.
Grok Build + ArcGIS services
prompt: "Find all Harris county properties that are greater then 2 acre and within 0.5 miles of a gas station. Also, they can’t be in a flood plain. Build a plan, let me approve and then complete the work"
result: "Executing the approved plan with work package wp_exec-2026-07-21T1508: stations → buffer → parcel harvest → flood filter → map + report.
1889 stations loaded. Buffering 0.5 mi, then harvesting parcels.
Harvesting HCAD parcels by tile (largest step — may take several minutes).
Harvested 49,793 parcels. Running proximity and flood filters next.
Final result: 18,356 parcels. Finishing map reload, work package, and report."
@spacexai @ArcGISOnline































