Skip to content

feat: add @deck.gl-community/visgl-skills — AI agent skills for deck.gl#534

Draft
Copilot wants to merge 2 commits intomasterfrom
copilot/create-visgl-skills-module
Draft

feat: add @deck.gl-community/visgl-skills — AI agent skills for deck.gl#534
Copilot wants to merge 2 commits intomasterfrom
copilot/create-visgl-skills-module

Conversation

Copy link
Contributor

Copilot AI commented Feb 26, 2026

New module providing typed helpers that let AI coding agents (Claude Code, Openclaw, Copilot, etc.) construct deck.gl visualisations with minimal boilerplate — either via programmatic factory functions or fully JSON-serializable noodle descriptors.

Module structure

  • src/layer-skills.ts — Factory functions returning plain LayerDescriptor objects for the six most common layer types (ScatterplotLayer, PathLayer, PolygonLayer, TextLayer, IconLayer, HeatmapLayer), all with typed options and sensible defaults
  • src/noodles.ts — JSON-serializable layer recipe system; field accessors encoded as dot-path strings ("meta.size") that hydrateNoodle resolves to runtime functions; validateNoodle provides pre-flight error reporting
  • src/deck-builder.ts — Fluent DeckBuilder that composes layers + view state into a single DeckConfig
  • src/viewport-skills.tscreateViewState, getBoundingBox, fitViewport (Web Mercator zoom fit)
  • src/data-skills.tscreateColorAccessor (linear interpolation), createRadiusAccessor, flattenGeoJSON, extractPositions

Key design: noodles

The noodle system is the core AI-agent primitive. An agent emits pure data; the runtime hydrates it:

import {createNoodle, hydrateNoodle, validateNoodle} from '@deck.gl-community/visgl-skills';
import {ScatterplotLayer} from '@deck.gl/layers';

// Agent produces this as plain JSON — no callbacks, no runtime execution
const noodle = createNoodle('ScatterplotLayer', {
  data: cities,
  position: 'coordinates', // resolved to d => d.coordinates at hydration time
  radius: 'population',    // resolved to d => d.population
  fillColor: [255, 0, 128],
  radiusScale: 0.001,
});

const {valid, errors} = validateNoodle(noodle);
const layer = new ScatterplotLayer(hydrateNoodle(noodle));

No new runtime dependencies — peers only on @deck.gl/core and @deck.gl/layers.

Original prompt

Make a new module called visgl-skills that are all Claude Code / Openclaw / Agent skills for deck.gl that simplify the agents interaction and construction of deckgl , consider using noodles


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

…oodles, and DeckBuilder

Co-authored-by: charlieforward9 <62311337+charlieforward9@users.noreply.github.com>
Copilot AI changed the title [WIP] Add visgl-skills module for agent interaction with deck.gl feat: add @deck.gl-community/visgl-skills — AI agent skills for deck.gl Feb 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants