Skip to main content

Technical Specifications

Detailed technical information about Piecer pattern editor.

System Requirements

Supported Browsers

Desktop Browsers

BrowserMinimum VersionRecommended
Chrome90+Latest
Firefox88+Latest
Safari14+Latest
Edge90+Latest

Mobile Browsers

BrowserSupport LevelNotes
Mobile ChromeFullBest mobile experience
Mobile SafariFulliOS 14+
Mobile FirefoxFullAndroid 8+
Samsung InternetPartialSome features limited

Hardware Requirements

Minimum Specs

  • Processor: Dual-core 1.6 GHz
  • RAM: 4 GB
  • Display: 1280x720 resolution
  • GPU: WebGL compatible
  • Storage: 100 MB browser storage
  • Internet: 1 Mbps connection
  • Processor: Quad-core 2.4 GHz+
  • RAM: 8 GB+
  • Display: 1920x1080 or higher
  • GPU: Dedicated graphics with WebGL 2.0
  • Storage: 500 MB+ browser storage
  • Internet: 5 Mbps+ connection

Browser Features Required

Essential:

  • ✓ JavaScript enabled
  • ✓ Cookies enabled
  • ✓ LocalStorage enabled
  • ✓ Canvas API support
  • ✓ SVG support

For 3D Mode:

  • ✓ WebGL 1.0 or 2.0
  • ✓ Hardware acceleration
  • ✓ GPU drivers updated

Canvas Specifications

Canvas Limits

PropertyLimitNotes
Zoom Range1x - 100xPractical range
Canvas SizeUnlimitedScrollable infinite canvas
Max Points per Shape10,000Performance degradation beyond
Max Shapes per Pattern1,000Recommended limit
Max Pattern File Size50 MBStorage limit

Coordinate System

  • Origin: Top-left corner
  • X-Axis: Left to right (positive)
  • Y-Axis: Top to bottom (positive)
  • Units: Centimeters (internal)
  • Precision: 0.1mm (float precision)

Grid System

Grid Levels

Fine Grid

  • Metric: 1 cm spacing
  • Imperial: 0.25 inch spacing
  • Visible: Scale ≥ 11
  • Snap Target: Moving, editing, bezier handles

Medium Grid

  • Metric: 5 cm spacing
  • Imperial: 1 inch spacing
  • Visible: 3 ≤ Scale < 11
  • Snap Target: Adding points when zoomed out

Coarse Grid

  • Metric: 10 cm spacing with labels
  • Imperial: 2 inch spacing with labels
  • Visible: Scale < 3
  • Display Only: No snapping at this level

Grid Snapping Behavior

Adding Points (Pen/Rectangle/Circle tools):

if (scale < 11) {
// Zoomed out - snap to medium grid (5cm/1in)
snapIncrement = unit === "in" ? 1 * INCH_TO_CM : 5;
} else {
// Zoomed in - snap to fine grid (1cm/0.25in)
snapIncrement = unit === "in" ? 0.25 * INCH_TO_CM : 1;
}

Moving Points/Bezier Handles:

// Always snap to fine grid regardless of zoom
snapIncrement = unit === "in" ? 0.25 * INCH_TO_CM : 1;

Measurement System

Unit Conversion

  • Conversion Factor: 1 inch = 2.54 cm (exact)
  • Internal Storage: Always in centimeters
  • Display: User's selected unit preference
  • Precision: 0.1 unit display (1mm or 0.04in)

Measurement Display

Shown Measurements:

  • Line lengths (cm or inches)
  • Angles (degrees)
  • Distances between points
  • Seam allowance widths
  • Variable lengths (locked lines)

Measurement Colors:

  • Regular lines: Blue text
  • Key lines: Pink text
  • Connected lines: Green text
  • Locked lengths: Orange text

File Formats

Export Formats

SVG (Scalable Vector Graphics)

Specifications:

  • Version: SVG 1.1
  • Encoding: UTF-8
  • Coordinate Units: User units (90 DPI)
  • Precision: 2 decimal places
  • Features: Layers, groups, metadata

SVG Structure:

<svg xmlns="http://www.w3.org/2000/svg"
width="..." height="..." viewBox="...">
<g id="pattern">
<g id="piece-1">
<path d="M..." />
<text>...</text>
</g>
</g>
</svg>

PDF (Portable Document Format)

Specifications:

  • Version: PDF 1.4+
  • Resolution: 300 DPI
  • Color Space: RGB
  • Compression: Flate/ZIP
  • Fonts: Embedded

Paper Sizes:

SizeDimensions (mm)Dimensions (in)
A0841 × 118933.1 × 46.8
A1594 × 84123.4 × 33.1
A2420 × 59416.5 × 23.4
A3297 × 42011.7 × 16.5
A4210 × 2978.3 × 11.7
Letter215.9 × 279.48.5 × 11
Legal215.9 × 355.68.5 × 14
Tabloid279.4 × 431.811 × 17

Project File Format

Internal Storage:

  • Format: JSON
  • Encoding: UTF-8
  • Compression: None (browser handles)
  • Storage: LocalStorage + Server sync

Data Structure:

{
"version": "1.0",
"name": "Pattern Name",
"unit": "metric",
"shapes": [...],
"fabrics": [...],
"connections": [...],
"metadata": {...}
}

Color System

Line Colors

Line TypeHex ColorRGBUsage
Regular#2B99FF43,153,255Standard lines
Key Line#f43f5e244,63,94Important references
Connected#84cc16132,204,22Line connections
Locked#f97316249,115,22Variable lengths

Theme Colors

Light Mode

  • Background: #efebe4 (stone-100)
  • Canvas: #efebe4 (stone-100)
  • UI: #e7e5e4 (stone-200)
  • Text: #1c1917 (stone-900)
  • Grid: #d6d3d1 (stone-300)

Dark Mode

  • Background: #13100e (custom dark)
  • Canvas: #13100e (custom dark)
  • UI: #1c1917 (stone-900)
  • Text: #fafaf9 (stone-50)
  • Grid: #292524 (stone-800)

Performance Characteristics

Rendering Performance

Target Frame Rates:

  • 60 FPS: Smooth interaction
  • 30 FPS: Acceptable for complex patterns
  • 15 FPS: Warning threshold

Performance Factors:

  • Number of shapes (linear impact)
  • Number of points per shape (linear impact)
  • Bezier curves (slightly more expensive)
  • Grid visibility (minimal impact)
  • Measurement display (moderate impact)
  • 3D mode (significant impact)

Optimization Techniques

Implemented:

  • Canvas rendering optimization
  • Dirty rectangle tracking
  • Event debouncing
  • Viewport culling
  • Lazy loading
  • Asset caching

User Strategies:

  • Hide unused layers
  • Simplify complex curves
  • Reduce total shapes
  • Disable 3D when not needed
  • Close preview mode while editing

Data Storage

Browser Storage

LocalStorage:

  • Capacity: 5-10 MB typical
  • Usage: Draft patterns, preferences
  • Persistence: Until cleared
  • Sync: No (per-device)

SessionStorage:

  • Usage: Temporary state
  • Persistence: Until tab closes
  • Capacity: 5-10 MB typical

IndexedDB:

  • Usage: Large pattern cache
  • Capacity: 50 MB+ (quota varies)
  • Persistence: Until cleared

Server Storage

User Account:

  • Pattern Limit: Unlimited
  • Storage per Pattern: 50 MB max
  • Total Storage: Fair use policy
  • Backup: Daily backups
  • Retention: Active accounts only

API Endpoints

Pattern Operations

GET    /api/patterns          - List user patterns
GET /api/patterns/:id - Get pattern data
POST /api/patterns - Create pattern
PUT /api/patterns/:id - Update pattern
DELETE /api/patterns/:id - Delete pattern

Community Operations

GET    /api/community         - List public patterns
GET /api/community/:id - Get public pattern
POST /api/patterns/:id/like - Like pattern
DELETE /api/patterns/:id/like - Unlike pattern
POST /api/patterns/:id/replicate - Replicate pattern

Export Operations

POST   /api/export/svg        - Generate SVG
POST /api/export/pdf - Generate PDF
GET /api/export/:id - Download export

3D Rendering

WebGL Specifications

Requirements:

  • WebGL 1.0 or 2.0
  • OES_standard_derivatives extension (preferred)
  • Fragment shader precision: mediump or better

3D Scene:

  • Renderer: Three.js (or custom WebGL)
  • Lighting: Directional + Ambient
  • Camera: Perspective, orbital controls
  • Materials: Phong shading
  • Shadows: Optional (performance impact)

Fold Simulation

Algorithm:

  • Topology-based folding
  • Fold line constraints
  • Connection constraints
  • Physics approximation (not real-time)

Limitations:

  • Simple patterns: Accurate
  • Medium complexity: Good approximation
  • Very complex: May require manual adjustment
  • Not a physics simulation

Keyboard Input

Key Handling

Supported Keys:

  • Letters: A-Z (uppercase for shortcuts)
  • Modifiers: Shift, Ctrl/Cmd, Alt
  • Special: Delete, Backspace, Esc, Space
  • Arrows: Up, Down, Left, Right

Platform Differences:

  • macOS: Cmd key for shortcuts
  • Windows/Linux: Ctrl key for shortcuts
  • Touch: No keyboard shortcuts

Mouse/Touch Input

Mouse Events

  • Click: Select, add point
  • Double-click: Fit to view
  • Drag: Move, draw, pan
  • Right-click: Context menu (future)
  • Scroll: Zoom
  • Middle-click: Pan

Touch Gestures

  • Tap: Select, add point
  • Long press: Context menu
  • Drag: Move, draw
  • Two-finger drag: Pan
  • Pinch: Zoom
  • Two-finger rotate: Not implemented

Browser Compatibility Matrix

Feature Support

FeatureChromeFirefoxSafariEdge
Canvas 2D
SVG
WebGL
LocalStorage
Touch Events
File API
Canvas FiltersPartial

Known Issues

Safari:

  • Touch event handling slightly different
  • Some CSS features delayed

Firefox:

  • WebGL performance may vary
  • Font rendering differences

Mobile:

  • Performance lower on older devices
  • Touch accuracy varies by device
  • Keyboard shortcuts not available

Security & Privacy

Data Handling

Client-Side:

  • Pattern data stored locally
  • No auto-upload without account
  • LocalStorage accessible only to site

Server-Side:

  • HTTPS encryption in transit
  • Pattern data encrypted at rest
  • No sharing without explicit publish
  • Account required for cloud save

Privacy

  • No tracking of pattern content
  • Analytics: Anonymized usage stats only
  • Community patterns: Public by choice
  • Unpublished patterns: Private

Version Information

Application Version

  • Current Version: 1.3.6
  • Release: Active development
  • Stability: Production
  • Update Frequency: Continuous

Feature Flags

Some features may be behind flags:

  • Beta features (opt-in)
  • Experimental tools
  • New export formats
  • Advanced 3D options

API Rate Limits

Authenticated Users

  • Pattern Operations: 60 requests/minute
  • Export Operations: 10 requests/minute
  • Community Operations: 30 requests/minute

Public Access

  • Community Browse: 30 requests/minute
  • Pattern View: 30 requests/minute

Accessibility

Current Support

  • Keyboard navigation (partial)
  • Screen reader labels (basic)
  • High contrast mode (via browser)
  • Zoom support (browser zoom)

Future Enhancements

  • Full keyboard navigation
  • ARIA labels comprehensive
  • Screen reader mode
  • Voice control support