genart.dev
Packages

@genart-dev/format

File format types, parsers, and canvas presets — version 0.5.0

@genart-dev/format

Version 0.5.0. The foundation package defining the .genart and .genart-workspace file formats. Zero runtime dependencies.

Installation

npm install @genart-dev/format

Core Types

SketchDefinition

The top-level type representing a .genart file:

interface SketchDefinition {
  version: string;
  renderer: 'p5' | 'canvas2d' | 'three' | 'glsl' | 'svg';
  algorithm: string;
  canvas: CanvasSize;
  seed: number;
  params?: ParamDef[];
  colors?: ColorDef[];
  layers?: DesignLayer[];
  symbols?: SketchSymbolValue[];
  metadata?: SketchMetadata;
}

ParamDef

Parameter definitions that become interactive controls:

interface ParamDef {
  name: string;
  type: 'number' | 'string' | 'boolean' | 'select' | 'color';
  default: any;
  min?: number;
  max?: number;
  step?: number;
  options?: string[];
}

ColorDef

Named color palette entries:

interface ColorDef {
  name: string;
  value: string; // hex, rgb, hsl
  role?: 'background' | 'primary' | 'secondary' | 'accent';
}

Parsers

FunctionDescription
parseSketchFile(json)Parses and validates a .genart JSON string into SketchDefinition
parseWorkspaceFile(json)Parses a .genart-workspace JSON string into WorkspaceDefinition
serializeSketch(def)Serializes a SketchDefinition to formatted JSON
serializeWorkspace(def)Serializes a WorkspaceDefinition to formatted JSON

Canvas Presets

17 canvas presets across 5 categories:

Screen

PresetWidthHeight
1080p19201080
4k38402160

Print

PresetWidthHeight
letter25503300
a424803508
a335084961

Social

PresetWidthHeight
instagram-square10801080
instagram-portrait10801350
instagram-story10801920
twitter-post1200675
twitter-header1500500

Square

PresetWidthHeight
square-sm500500
square-md10001000
square-lg20002000
square-xl40004000

Widescreen

PresetWidthHeight
ultrawide34401440
cinema40961716
banner1920480

Version History

Format VersionChanges
1.0Initial format — sketch definition, params, colors, canvas
1.1Added design layers, metadata
1.2Added symbols field (SketchSymbolValue, SketchSymbolDef)
1.3Added symbol categories, custom symbol creation