<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/generating-running-routes-with-gpt-6-astra-and-chatgpt-work-pthywcevv" -->

---
title: Generating running routes with GPT-6 Astra and ChatGPT Work
description: Simon Willison asked ChatGPT Work running GPT-6 Astra (Max) to generate 5K and 10K running routes looping from his home address using OSM data. The agent...
canonical: https://daily.dev/posts/generating-running-routes-with-gpt-6-astra-and-chatgpt-work-pthywcevv
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Generating running routes with GPT-6 Astra and ChatGPT Work | daily.dev
og:description: Simon Willison asked ChatGPT Work running GPT-6 Astra (Max) to generate 5K and 10K running routes looping from his home address using OSM data. The agent...
og:url: https://daily.dev/posts/generating-running-routes-with-gpt-6-astra-and-chatgpt-work-pthywcevv
og:image: https://api.daily.dev/og/posts/PTHywcEVv.png
og:image:alt: Generating running routes with GPT-6 Astra and ChatGPT Work
og:image:width: 1200
og:image:height: 630
og:locale: en
---

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

# Generating running routes with GPT-6 Astra and ChatGPT Work

**[Simon Willison](https://daily.dev/sources/simonwillison)** · 2 min read · 0 upvotes · 0 comments

## Summary

Simon Willison asked ChatGPT Work running GPT-6 Astra (Max) to generate 5K and 10K running routes looping from his home address using OSM data. The agent worked autonomously for 27 minutes, using Nominatim for geocoding and Overpass to pull OpenStreetMap road and trail data, then computed loops locally and rendered them via the platform's 'visualize' skill as an embedded D3-based map plus downloadable GPX and GeoJSON files. Willison notes the underlying code and exact execution steps were not visible in the UI, calling this opacity a drawback, and shares the CDN allow-list (jsdelivr, cdnjs, esm.sh, unpkg, and font providers) permitted by the visualize skill's content security policy.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://simonwillison.net/2026/Sep/12/astra-running-routes>

## Questions this post answers

### What tools does ChatGPT's visualize skill allow loading external scripts from?

The visualize skill's content security policy allows external resources only from cdnjs.cloudflare.com, esm.sh, cdn.jsdelivr.net, unpkg.com, fonts.googleapis.com, fonts.gstatic.com, and fonts.bunny.net. Any other origin is blocked and fails silently, which constrains what libraries an agent-generated visualization can load, such as pulling D3 from jsdelivr's CDN.

_Developers building agent-rendered visualizations can track CSP and skill constraints like these on daily.dev._

### How did ChatGPT Work with GPT-6 Astra generate a running route from an address using OpenStreetMap data?

It geocoded the address with Nominatim, downloaded local roads and trails via the Overpass API, then calculated the loop routes locally before rendering them as an embedded map plus downloadable GPX and GeoJSON files. The whole task ran autonomously for 27 minutes, though the exact code executed was not shown in the ChatGPT interface.

_Anyone evaluating agentic AI workflows for geospatial tasks can follow real examples like this on daily.dev._

## Similar posts on daily.dev

- [How to Use GPT-6 Astra: 7 Easy Steps for Beginners \(2026\)](https://daily.dev/posts/how-to-use-gpt-6-astra-7-easy-steps-for-beginners-2026--bjhfqiwfk) · Medium · 0 upvotes · 0 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#ai-agents](https://daily.dev/tags/ai-agents), [#openai](https://daily.dev/tags/openai), [#chatgpt](https://daily.dev/tags/chatgpt), [#gis](https://daily.dev/tags/gis)

[View this post on daily.dev](https://daily.dev/posts/generating-running-routes-with-gpt-6-astra-and-chatgpt-work-pthywcevv)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Generating running routes with GPT-6 Astra and ChatGPT Work","url":"https://daily.dev/posts/generating-running-routes-with-gpt-6-astra-and-chatgpt-work-pthywcevv","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/generating-running-routes-with-gpt-6-astra-and-chatgpt-work-pthywcevv"},"datePublished":"2026-09-13T00:19:12.003Z","dateModified":"2026-09-13T00:19:34.314Z","description":"Simon Willison asked ChatGPT Work running GPT-6 Astra (Max) to generate 5K and 10K running routes looping from his home address using OSM data. The agent...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7126a90a68e2d1a87313c51cc5e42abd?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7126a90a68e2d1a87313c51cc5e42abd?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Simon Willison","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Simon Willison","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/cf12b897300740218b35f49a6309ec5b","url":"https://daily.dev/sources/simonwillison"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/generating-running-routes-with-gpt-6-astra-and-chatgpt-work-pthywcevv","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"webdev,ai-agents,openai,chatgpt,gis","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Simon Willison","item":"https://daily.dev/sources/simonwillison"},{"@type":"ListItem","position":3,"name":"Generating running routes with GPT-6 Astra and ChatGPT Work"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/generating-running-routes-with-gpt-6-astra-and-chatgpt-work-pthywcevv#faq","mainEntity":[{"@type":"Question","name":"What tools does ChatGPT's visualize skill allow loading external scripts from?","acceptedAnswer":{"@type":"Answer","text":"The visualize skill's content security policy allows external resources only from cdnjs.cloudflare.com, esm.sh, cdn.jsdelivr.net, unpkg.com, fonts.googleapis.com, fonts.gstatic.com, and fonts.bunny.net. Any other origin is blocked and fails silently, which constrains what libraries an agent-generated visualization can load, such as pulling D3 from jsdelivr's CDN. Developers building agent-rendered visualizations can track CSP and skill constraints like these on daily.dev."}},{"@type":"Question","name":"How did ChatGPT Work with GPT-6 Astra generate a running route from an address using OpenStreetMap data?","acceptedAnswer":{"@type":"Answer","text":"It geocoded the address with Nominatim, downloaded local roads and trails via the Overpass API, then calculated the loop routes locally before rendering them as an embedded map plus downloadable GPX and GeoJSON files. The whole task ran autonomously for 27 minutes, though the exact code executed was not shown in the ChatGPT interface. Anyone evaluating agentic AI workflows for geospatial tasks can follow real examples like this on daily.dev."}}]}
```

