Skip to content

Dino-GSP Project File (.algeo) Protocol

A Dino-GSP project file stores an editable, interactive geometry project.

This page describes the latest V11 protocol.

File and version

ItemCurrent standard
Extension.algeo or .json
ContentUTF-8 JSON
MIME typeapplication/vnd.dino-algeo.project+json
Latest protocol versionString "11"
Version fieldmetadata.version

WARNING

metadata.version must be a string. Do not migrate an old file by changing this value manually. Load it with a compatible Dino-GSP editor or SDK and export it again.

Top-level structure

typescript
interface FileContentLatest {
  slides: SlideV2[];
  messages: SeedChatMessage[][];
  templateStyle?: SlideStyleSheetV2;
  metadata: {
    version: '11';
    shareOptions?: ShareOptions;
  };
}
FieldTypeRequiredDescription
slidesSlideV2[]YesOrdered list of canvases in the project.
messagesSeedChatMessage[][]YesAI conversations. The outer array contains conversations; each inner array contains its messages. Use [] when there are none.
templateStyleSlideStyleSheetV2NoProject master template with the same shape as a canvas styleSheet.
metadataobjectYesFile version and sharing options.

Canvas SlideV2

typescript
interface SlideV2 {
  definitions: DefinitionV2[];
  uvarMap: [string, number][];
  styleSheet: SlideStyleSheetV2;
  doc: DocOp[];
  camera?: SlideCamera | SlideCamera3D;
}
FieldTypeDescription
definitionsDefinitionV2[]Definitions for points, lines, circles, functions, text, sliders, buttons, images, and other objects. Order affects dependency resolution.
uvarMap[string, number][]Current user-variable values as [name, value] pairs, including dynamic state such as dragged coordinates and slider values.
styleSheetSlideStyleSheetV2Canvas background, axes, grid, type defaults, and per-object styles.
docDocOp[]Associated rich-text content in Quill Delta Op form.
cameraSlideCamera | SlideCamera3DOptional 2D or 3D camera state.

Project master template

templateStyle is an optional project-level master template with the same shape as slides[].styleSheet. It is stored separately from the current style of each canvas:

  • templateStyle is the reusable project master.
  • slides[].styleSheet is the style currently stored on an individual canvas.
  • Applying a master template preserves per-object styles keyed by object ID.

A project master should contain reusable visual styles only. Axis or grid ranges, intervals, visibility and locking state, and per-object styles should not propagate as master-template properties.

Reading and writing guidance

  • Store the complete object, not only slides[].definitions; variable values, styles, rich text, cameras, conversations, and the master template are all project content.
  • JSON.stringify(content, null, 2) produces an inspectable .algeo or .json file. Parse JSON first when reading, then validate the protocol version and required fields.
  • Do not manually generate complex geometry DSL. Prefer complete content returned by the SDK, or generate projects through REPL, MCP, or the Agent API.
  • Do not guess the meaning of fields in an unknown version. Upgrade the integration component or convert the file with a compatible editor.

Use in each integration

  • SDK: Read and write complete projects with editor-mode getContent() / loadContent(), or presentation-mode loadFile().
  • HTTP API: The Render API accepts complete FileContentLatest in its content field.
  • MCP: import_project imports a complete project and export_project exports an .algeo file.