Changelog
Version 0.3 (Current)
New Features
-
Agent Mode - Streamlined workflow for AI agents accessing PinePaper
window.PinePaperAgentglobal 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
keyframeItemsSet for O(1) keyframe lookupanimatedItemsSet 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 |
| gif | 800x450 | |
| twitter-video | mp4 | 1280x720 |
| mp4 | 1200x627 | |
| mp4 | 1200x630 | |
| discord | gif | 400x400 |
| slack | gif | 400x300 |
| print-a4 | 300 DPI | |
| print-letter | 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)