Proposal
Topic of the session
deck.gl's declarative JSON spec as a target for AI agents that generate and edit maps — and what the project should do to become more "AI-ready."
Type of the session
Estimated duration of the session
45 minutes (~20 min talk, ~25 min open discussion) — open to adjust.
Date and Time of the session
TBD / Open for discussion
Level
Pre-requisite knowledge
Working familiarity with deck.gl — its layer model and the declarative JSON API (@deck.gl/json / JSONConverter, as used by pydeck). A general sense of how LLM agents produce structured output (function calling / JSON mode, MCP) is helpful but not required; we'll bridge that in the talk.
Describe the session
Maps are increasingly generated not by a person clicking through a UI, but by an AI agent emitting structured output. deck.gl's declarative JSON spec turns out to be a natural target for this: an agent produces a JSON document describing layers, data, and view state, and deck.gl renders it — no imperative code required.
At CARTO we've built on exactly this. Our agents (exposed over MCP) emit deck.gl declarative specs to create and edit maps on the fly, across both the data-publishing and consumption sides of our platform. This session shares what we've learned treating deck.gl as an agent-facing rendering target, then opens a debate on what the project could do to make that path first-class. Seeds for discussion:
- A formal, versioned JSON Schema for specs — to support validation, constrained decoding, and function-calling / structured outputs.
- Machine-readable validation errors an agent can consume and self-correct from, rather than runtime exceptions.
- Closing declarative-surface gaps where JSON can't express what the imperative API can (accessors, callbacks, the
@@function/@@type escape hatches) — and how to keep those agent-safe.
- Spec round-tripping (serialize an existing deck back to JSON) so agents can edit existing maps, not only generate new ones.
- Lightweight introspection / capability discovery so an agent can learn what layers and props exist without ingesting the entire API surface into its context.
Goal: leave with a shared sense of priorities — and ideally a few concrete issues/PRs — for an agent-friendly deck.gl.
Session facilitator(s), Github handle(s) and timezone(s)
Javier de la Torre (@) — CEST
Meeting notes and Virtual Meeting Link
Meeting Notes:
Virtual Meeting link:
Follow-up / Set-up sessions (if any)
None currently.
Additional context (optional)
N/A
Proposal
Topic of the session
deck.gl's declarative JSON spec as a target for AI agents that generate and edit maps — and what the project should do to become more "AI-ready."
Type of the session
Estimated duration of the session
45 minutes (~20 min talk, ~25 min open discussion) — open to adjust.
Date and Time of the session
TBD / Open for discussion
Level
Pre-requisite knowledge
Working familiarity with deck.gl — its layer model and the declarative JSON API (
@deck.gl/json/ JSONConverter, as used by pydeck). A general sense of how LLM agents produce structured output (function calling / JSON mode, MCP) is helpful but not required; we'll bridge that in the talk.Describe the session
Maps are increasingly generated not by a person clicking through a UI, but by an AI agent emitting structured output. deck.gl's declarative JSON spec turns out to be a natural target for this: an agent produces a JSON document describing layers, data, and view state, and deck.gl renders it — no imperative code required.
At CARTO we've built on exactly this. Our agents (exposed over MCP) emit deck.gl declarative specs to create and edit maps on the fly, across both the data-publishing and consumption sides of our platform. This session shares what we've learned treating deck.gl as an agent-facing rendering target, then opens a debate on what the project could do to make that path first-class. Seeds for discussion:
@@function/@@typeescape hatches) — and how to keep those agent-safe.Goal: leave with a shared sense of priorities — and ideally a few concrete issues/PRs — for an agent-friendly deck.gl.
Session facilitator(s), Github handle(s) and timezone(s)
Javier de la Torre (@) — CEST
Meeting notes and Virtual Meeting Link
Meeting Notes:
Virtual Meeting link:
Follow-up / Set-up sessions (if any)
None currently.
Additional context (optional)
N/A