v0.1.6-pre4
Pre-release
Pre-release
·
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 viaxlink:href/href. Promotes inline CSSstyleproperties (stop-color,stop-opacity) to explicit XML attributes, eliminating solid black gradient fallbacks (#49, #55). - Group-Transformed
userSpaceOnUseGradients: Correctly composes ancestor group transforms ontogradientTransform, ensuring gradient fills stay perfectly locked to drawings authored with transformed groups (#56). - Smooth LPE Fillet & Chamfer Vertices: Seamlessly evaluates Inkscape
fillet_chamferLive Path Effects on closed polygons, rounding all vertices including vertex 0 acrossZsubpaths with non-inverted closing tangent arcs (#41). - Implicit Repeated Arc Desugaring: Automatically desugars implicit repeated
aandApath 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
transformattributes (matrix,scale), keeping outlines at their intended visual weight (#52). - Rect Corner Radius Zero Normalization: Mirrors non-zero corner radii when either
rxorryis 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 pagecolorandinkscape:pageopacitycanvas backgrounds (#43). - Aspect-Preserving Letterbox Scaling: Implements SVG
preserveAspectRatio(defaulting toxMidYMid meet) inRenderSVGToRGBAto 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:(#51).go run ./cmd/dev golden --generate go run ./cmd/dev diff -fixture=alert_icon
🌐 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 |