Skip to content

v0.1.6-pre4

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Sep 17:10
· 21 commits to main since this release

InkAnim v0.1.6-pre4 — Major SVG Rendering Overhaul & Web Studio

Note

Major Rendering Fidelity Milestone: v0.1.6-pre4 delivers a massive vector rasterization overhaul, resolving critical rendering gaps across complex Inkscape SVGs. With automated golden image regression testing against headless Inkscape 1.4 across 19 atomic fixtures, this release brings near-identical desktop-grade rendering fidelity to both native desktop and WebAssembly.


🎨 Major SVG Vector Rendering Fidelity Overhaul

Our pure-Go in-memory SVG pre-processing pipeline (PreprocessSVG) intercepts and normalizes vector graphics before rasterization, preserving your files on disk without destructive flattening:

  • Color Gradients & Stop Inheritance: Full multi-level color stop inheritance across <linearGradient> and <radialGradient> templates referencing shared palettes via xlink:href/href. Promotes inline CSS style properties (stop-color, stop-opacity) to explicit XML attributes, eliminating solid black gradient fallbacks (#49, #55).
  • Group-Transformed userSpaceOnUse Gradients: Correctly composes ancestor group transforms onto gradientTransform, ensuring gradient fills stay perfectly locked to drawings authored with transformed groups (#56).
  • Smooth LPE Fillet & Chamfer Vertices: Seamlessly evaluates Inkscape fillet_chamfer Live Path Effects on closed polygons, rounding all vertices including vertex 0 across Z subpaths with non-inverted closing tangent arcs (#41).
  • Implicit Repeated Arc Desugaring: Automatically desugars implicit repeated a and A path commands into explicit consecutive arcs, completely circumventing upstream multi-arc parsing bugs and restoring missing curves (#57).
  • Embedded Raster Graphics (<image>): Decodes and layers embedded base64 PNG, JPEG, and WebP raster images interleaved with vector paths with true z-ordering, affine transforms, and opacity (#47).
  • Reusable Symbol Clones (<use>): Inlines and synthesizes <use> clones into transformed <g> groups that inherit downstream stroke scaling and styling (#46).
  • True Transform Stroke Scaling: Multiplies ancestor group scale factors by shape-level transform attributes (matrix, scale), keeping outlines at their intended visual weight (#52).
  • Rect Corner Radius Zero Normalization: Mirrors non-zero corner radii when either rx or ry is zero, ensuring rounded rectangles render correctly (#53).
  • Physical Unit Conversion: Translates physical length units ("in", "mm", "cm", "pt", "pc") to standard 96 DPI pixels (#45).
  • Canvas Background Colors: Honors sodipodi:namedview pagecolor and inkscape:pageopacity canvas backgrounds (#43).
  • Aspect-Preserving Letterbox Scaling: Implements SVG preserveAspectRatio (defaulting to xMidYMid meet) in RenderSVGToRGBA to avoid distortion when rendering into square Twitch emote dimensions (#48).
  • System Font Fallbacks: Gracefully falls back to system sans-serif fonts (DejaVu Sans, Segoe UI) for uninstalled font families, maintaining proper text layout (#54).

🧪 Automated Headless Inkscape Golden CI Gate & Dev CLI

  • 19-Fixture Golden Integration Suite: Rendered outputs are automatically validated against reference images generated by headless Inkscape 1.4 using perceptual image comparison with sub-pixel antialiasing tolerance (#40).
  • Continuous Integration Gate: Runs on every push and pull request via GitHub Actions to prevent visual regressions (#40).
  • Developer CLI (cmd/dev): Added subcommands for canonical golden generation and pixel visual diffs:
    go run ./cmd/dev golden --generate
    go run ./cmd/dev diff -fixture=alert_icon
    (#51).

🌐 Web Studio & WebAssembly Edition

  • In-Browser Studio: Access the full-featured WebAssembly studio directly from your browser at mrpoundsign.github.io/InkAnim/demo/.
  • Sample Animations Toolbar: Easily test sample multi-layer SVGs (hydrate.svg, character_walk.svg) with 1-click loading.
  • Twitch Chat Scale Preview: Real-time 112×112, 56×56, and 28×28 scale inspector and palette quantization preview.
  • Zero-Install Workflow: Drop in any layered SVG to preview, adjust playback speeds, and export production-ready animated GIFs instantly.

📦 Downloads & Binaries

Target Platform Archive
Desktop GUI Windows (x64) InkAnim_v0.1.6-pre4_windows_amd64.zip
Desktop GUI Windows (ARM64) InkAnim_v0.1.6-pre4_windows_arm64.zip
Desktop GUI Linux (x64) InkAnim_v0.1.6-pre4_linux_amd64.tar.xz
Desktop GUI Linux (ARM64) InkAnim_v0.1.6-pre4_linux_arm64.tar.xz
Headless CLI Windows (x64) inkanim-cli_0.1.6-pre4_windows_amd64.zip
Headless CLI Windows (ARM64) inkanim-cli_0.1.6-pre4_windows_arm64.zip
Headless CLI Linux (x64) inkanim-cli_0.1.6-pre4_linux_amd64.tar.gz
Headless CLI Linux (ARM64) inkanim-cli_0.1.6-pre4_linux_arm64.tar.gz
All Checksums SHA-256 checksums.txt