Changelog

Version 0.3 (Current)

New Features

  • Agent Mode - Streamlined workflow for AI agents accessing PinePaper

    • window.PinePaperAgent global API
    • URL parameter activation (?agent=1)
    • Smart export format recommendations
    • Platform-specific export presets (16 platforms)
    • Batch workflow support with reset()
    • Browser capability detection
  • Performance Optimizations

    • keyframeItems Set for O(1) keyframe lookup
    • animatedItems Set for efficient animation iteration
    • Cached canvas center for pattern rotation
    • Viewport culling for off-screen items
    • Adaptive frame skipping for low-FPS recovery
    • Frame metrics API (app.getFrameMetrics())
  • Interactive Components Foundation

    • Trigger system for click/hover/drag events
    • Built-in actions (navigate, show/hide, animate, setState)
    • Quiz presets (multiple choice, drag-and-drop)
    • LMS integration events (SCORM/xAPI ready)
  • Collaboration System Foundation

    • Real-time sync architecture
    • Presence API (cursors, selections)
    • RTD adapter interface for custom backends
    • Shared state management

API Additions

// Agent Mode
const agent = window.PinePaperAgent;
await agent.configure({ mode: 'agent' });
await agent.waitForReady();
agent.reset({ canvas: 'instagram-post' });
const rec = agent.getExportRecommendation();
const result = await agent.quickExport({ platform: 'tiktok' });
const caps = agent.getCapabilities();
const presets = agent.getPresets();

// Performance Metrics
const metrics = app.getFrameMetrics();
app.resetFrameMetrics();
app.setFrameSkipConfig({ enabled: true, fpsThreshold: 24 });

Platform Export Presets

Platform Format Dimensions
instagram-post mp4 1080x1080
instagram-story mp4 1080x1920
instagram-reel mp4 1080x1920
tiktok mp4 1080x1920
youtube-thumbnail png 1280x720
youtube-short mp4 1080x1920
twitter gif 800x450
twitter-video mp4 1280x720
linkedin mp4 1200x627
facebook mp4 1200x630
discord gif 400x400
slack gif 400x300
print-a4 pdf 300 DPI
print-letter pdf 300 DPI
web svg animated

Version 0.2

Features

  • Scene Manager - Multi-scene presentations with transitions
  • Decorative Registry - Track non-interactive background elements
  • Image Tools Manager - Multi-image library with cropping and masking
  • Filter System - Scene-wide visual effects
  • Relation System - Behavior-driven animations
  • Worker Pool - Offload heavy computations

Improvements

  • Multi-image upload support
  • Image library with thumbnails
  • Docsify-based documentation
  • Enhanced keyframe animation system
  • Better canvas resize handling

API Additions

// Image Tools
app.imageTools.uploadImage(file)
app.imageTools.placeImage(id, options)
app.imageTools.getLibrary()

// Relations
app.addRelation(fromId, toId, type, params)
app.removeRelation(fromId, toId, type)
app.getRelations(itemId)

// Filters
app.filterSystem.addFilter('grayscale', { intensity: 1 })
app.filterSystem.removeFilter('grayscale')

// Scene Manager
app.sceneManager.createScene(name)
app.sceneManager.loadScene(id)
app.sceneManager.listScenes()

Version 0.1

Features

  • Canvas-based animation editor
  • Text and shape creation
  • Basic animations (pulse, rotate, bounce, fade, wobble, slide)
  • Background generators (sunburst, sunset, grid, waves, circuit)
  • Freehand drawing tool
  • Arrow system with animated bolts
  • Video export (WebM)
  • Animated SVG export
  • Template system
  • Undo/redo history

API

// Core
app.create({ type, ...options })
app.modify(item, options)
app.deleteSelected()  // Remove selected items
app.animate(item, { animationType, animationSpeed })

// Export
app.exportAnimatedSVG()
app.startRecording()
app.stopRecording()

// Generators
app.executeGenerator(name, params)

// Effects
app.applyEffect(item, type, config)