GeoGebra 数学绘图工具

GeoGebra Studio 是一个便携式 Agent 技能,将 2D/3D 图形的文本描述转换为可编辑的交互式 GeoGebra HTML,支持浏览器内检查和编辑,并可导出为多种格式。

  • by YZDame
  • HTML
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 YZDame/geogebra-mcp-server

使用说明

GeoGebra Studio

A portable Agent Skill for editable mathematical constructions. Describe a 2D or 3D figure, generate a local interactive GeoGebra HTML, inspect and edit it in a browser, then export the current construction.

English · 简体中文 · 繁體中文 · Español · Français · Deutsch · 日本語 · 한국어 · Português (Brasil)

What it does

  • Native editable GeoGebra figures with free/dependent objects and Algebra View.
  • Responsive 2D/3D viewer, nine theme families, light/dark mode and a toolbar outside the canvas.
  • Seven in-viewer downloads: GGB, HTML, PNG, SVG, PDF, XML, TikZ.
  • Additional local Asymptote and mixed TSQX/Asymptote source exports from GeoGebra XML.
  • Bundled Gikz cleans native GeoGebra PGF before TikZ export.
  • No MCP server, backend, database or separate Chrome setup for normal usage.

Requirements: Node.js 22.12+ and internet access when opening a generated HTML (GeoGebra's official engine is loaded remotely). No separate GeoGebra Studio npm installation is required for the standalone Skill.

Install as an Agent Skill (recommended)

In an Agent Skills-compatible environment, install from the GitHub repository and select geogebra-studio:

npx skills add YZDame/GeoGebra-Studio --skill geogebra-studio

Alternatively, copy the entire skills/geogebra-studio/ folder into your agent's skills directory. It must contain SKILL.md, scripts/, references/, and the bundled runtime/. The runtime is packaged with the Skill; do not copy only SKILL.md. The CLI uses Node.js built-ins and bundled code, without npm install.

Agents need file-write/shell access. Open HTML in the client's built-in browser when available, or a normal browser. A built-in browser pane is not a universal Agent Skills feature. Native plugin installation has been developed for Codex; other clients require environment-specific verification.

Optional Codex Plugin

The Codex distribution is only a convenience wrapper around the same Skill. Version 0.5.0 is published on npm:

npx @lydt/geogebra-studio@0.5.0 install

Restart the Codex session so installed Skills are reloaded. For source development, run npm ci && npm run build, then node dist/cli.js install --local.

Quick start

Write diagram.json in your working directory:

{
  "filename": "circle.html",
  "commands": ["A=(0,0)", "B=(4,0)", "c=Circle(A,B)"],
  "visibleLabels": ["A", "B"]
}

Then ask your agent to use the installed geogebra-studio Skill. Or run directly:

node /path/to/geogebra-studio/scripts/geogebra-studio.cjs generate --input /absolute/project/diagram.json --workspace /absolute/project

Open the resulting HTML in the agent browser panel or any modern browser. If file:// navigation is blocked, serve the workspace using a localhost-only static server (python3 -m http.server 8765 --bind 127.0.0.1 --directory /absolute/project), then open the corresponding URL.

The generator writes new files only; it does not execute or validate the geometry. The viewer reports errors, but a mathematical/visual check requires inspection of the actual figure.

Edit, save and export

Drag free points or open the native object editor using the toolbar's left button. Theme and download controls are aligned to the right. User edits are not automatically written back to the original JSON/HTML: download current HTML or GGB before closing or refreshing. Current HTML embeds packed GGB and preserves edits when reopened.

For additional source formats, download the current XML from the viewer (or obtain await window.geogebraStudio.snapshot() in the page), then run:

node /path/to/geogebra-studio/scripts/geogebra-studio.cjs export --input /absolute/project/figure.xml --format tsqx --workspace /absolute/project --output figure.tsqx
node /path/to/geogebra-studio/scripts/geogebra-studio.cjs export --input /absolute/project/figure.xml --format asymptote --workspace /absolute/project --output figure.asy

These exports cover a documented semantic subset and reject unsupported dependencies rather than silently freezing them. TSQX is mixed TSQX/Asymptote, not pure TSQX. TikZ is a static visual snapshot generated via native GeoGebra PGF and bundled Gikz.

Architecture

Agent → SKILL.md → construction JSON → bundled local CLI/HTML viewer → official GeoGebra applet → current-state files

The one Skill uses progressively loaded references/ for construction, export, visual standards and troubleshooting. The standalone runtime and the Codex Plugin share the same build sources. The project ships no MCP server.

See teacher walkthrough, sample constructions, architecture, and contributing.

Develop and verify

npm ci
npm run verify
npm run test:unit

Optional browser/real-engine verification requires an available Chrome executable and internet. A clean Skill install is checked without installing dependencies inside the installed Skill.

GeoGebra Studio is an independent community project, not affiliated with GeoGebra. Combined distribution: GPL-2.0-or-later. Third-party notices and prior MIT attributions are retained in LICENSE, LICENSE-MIT and THIRD_PARTY_NOTICES.md.