What's New in AlphaPIL 🚀
Stay up to date with the latest features, improvements, and fixes in AlphaPIL.
June 5, 2026 (v0.4.2)
Performance Release: NumPy-Vectorized Rendering Engine
This release replaces all pure-Python pixel-level loops with NumPy vectorized operations, delivering 10-200x speedups on gradient and noise rendering. NumPy is now a required dependency.
| Feature | Change | Description | Link |
|---|---|---|---|
| 🚀 Performance | NumPy Linear Gradient | Replaced the for px in range(diag) Python loop with np.searchsorted + vectorized interpolation. All diag pixels are computed in a single array operation instead of one-by-one. |
Manifest |
| 🚀 Performance | NumPy Radial Gradient | Replaced the O(size²) double-nested Python loop with np.mgrid distance computation + vectorized color interpolation. ~100x faster for radius=200. |
Manifest |
| 🚀 Performance | NumPy Text Gradient | Replaced per-row ImageDraw.line() calls with np.linspace color broadcast, building the full gradient array in one operation. |
Manifest |
| 🚀 Performance | NumPy Noise Effect | Replaced the O(W×H) pixel-by-pixel noise loop with vectorized np.random + array masking. ~100x faster for full-canvas noise. |
Manifest |
| 📦 Dependency | NumPy Required | Added numpy>=1.21.0 as a required dependency in pyproject.toml. |
pyproject.toml |
| 🤖 AI | Manifest v0.4.2 | Synchronized technical manifest version with the NumPy vectorization release. | Manifest |
June 5, 2026 (v0.4.1)
Patch Release: Fixed Fast Linear Gradient Color Range Bug
This release fixes a color compression bug in the optimized linear gradient engine by properly mapping the gradient color stops to the active projection length $L$ and padding out of bound pixels.
| Feature | Change | Description | Link |
|---|---|---|---|
| 🐛 Bug Fix | Gradient Color Alignment | Solved the gradient compression bug in the 1D resizing algorithm by aligning the color stop projection space to the active length $L$ and padding outer boundaries with edge colors, yielding 100% pixel parity with the original slow loop. | Manifest |
| 🤖 AI | Manifest v0.4.1 | Synchronized technical manifest version with the gradient color fix. | Manifest |
June 5, 2026 (v0.4.0)
Performance Release: 54x Faster Linear Gradients & Optimized Canvas Compression
This release introduces massive performance optimizations to the rendering pipeline, boosting linear gradient drawing speed by 54x and making canvas output generation significantly faster.
| Feature | Change | Description | Link |
|---|---|---|---|
| 🚀 Performance | 54x Faster Linear Gradients | Replaced the slow pixel-by-pixel pure Python rendering loop in $drawLinearGradient with an optimized 1D gradient resizing/rotating algorithm in Pillow C-routines. |
Manifest |
| 🚀 Performance | Optimized PNG Saving | Adjusted the default PNG compression level in get_canvas_bytes to compress_level=3 (reducing save times by 2.5x with negligible file size difference). |
Manifest |
| 🚀 Performance | Optimized JPEG/WEBP Saving | Configured JPEG and WEBP format saves to use quality=90 and disable the slow huffman optimization pass by default, rendering up to 6.5x faster. |
Manifest |
| 🤖 AI | Manifest v0.4.0 | Synchronized technical manifest version with the new rendering speed and saving upgrades. | Manifest |
May 28, 2026 (v0.3.6)
Feature Release: 3,500x PNG Speedup, Rendering Caches & Tracking-Aware Bounding Boxes
This major performance and feature release introduces global process-level caches (for system fonts, aliases, and processed images) and integrates tracking/letter-spacing support across $drawTextMid and $drawTextIn, featuring dynamic downscaled glow rendering and massive PNG save speedups for ultra-fast generation times.
| Feature | Change | Description | Link |
|---|---|---|---|
| 🚀 Performance | 3,500x PNG Speedup | Disabled exhaustive PNG re-compression (optimize=True) for PNG saves and bytes generation, yielding up to a 3,500x speedup (milliseconds instead of 35 seconds). |
Manifest |
| 🚀 Performance | Global Process Caches | Introduced process-level global caching for loaded image buffers, system font paths, and Pillow ImageFont objects. Subsequent renders take under 1ms. | Manifest |
| 🔆 Typography | Tracking-Aware Scaling | Exposed letter_spacing (tracking) inside $drawTextMid and $drawTextIn. Bounding boxes and binary-search fitting loops are now fully tracking-aware. |
Docs |
| 🎨 Glow & Shadow | Sub-ms Glow Outline | Completely redesigned glow and shadow layers to draw character-by-character with tracking. Added ceiling-division downscaling for large stroke/glow layers to make them instantaneous. | Docs |
| 🐛 Bug Fix | Font Alias Cache Keys | Resolved local font alias cache key lookup bug inside _get_font to ensure subsequent alias loads hit the memory cache. |
Manifest |
| 🤖 AI | Manifest v0.3.6 | Synchronized technical manifest version with the new letter-spacing, rendering speed, and custom output serialization upgrades. | Manifest |
| ⚡ Serialization | Configurable Output Compression | Added $setOutputFormat[format] to toggle output serialization between ultra-fast lossy JPEG and premium lossless transparent PNG formats. |
Docs |
May 28, 2026 (v0.3.3)
Patch Release: Robust Coordinate Parser & Anchor-Aligned Glow Effects
This release introduces support for single-number coordinates in standard properties (such as shadow offset) and solves the spatial misalignment bug of regional text glows under custom anchors (like middle-middle "mm" alignment).
| Feature | Change | Description | Link |
|---|---|---|---|
| 🎯 Parser | Single Coord Fallback | _parse_coords now gracefully accepts single integers (e.g., 4), converting them to duplicated coordinate pairs (4, 4) for properties like shadow_offset. |
Manifest |
| 🔆 Typography | Anchor-Aligned Glow | Completely rewrote glow logic to measure text bounding boxes dynamically and offset/draw/paste the glow relative to custom anchors. | Docs |
| 🤖 AI | Manifest v0.3.3 | Synchronized technical manifest version with the new parsing and glow alignment enhancements. | Manifest |
May 26, 2026 (v0.3.2)
Patch Release: Visual IDE Scroll Layout & Renaming Integration
This release fixes a critical flexbox scroll container layout centering bug where the top part of the image got cut off in the visual template designer. It also renames the generated HTML visualizer tool to alphapil_ide_visualizer.html to match its power as a full IDE & Visualizer, and integrates advanced text alignment tools ($drawTextMid, $drawTextIn).
| Feature | Change | Description | Link |
|---|---|---|---|
| 📏 UI Fix | Safe Centering Scroll | Implemented scroll-safe centering for the editor canvas to prevent top/left image cropping. | Docs |
| 📛 Renaming | alphapil_ide_visualizer | Renamed the visual template editor HTML output to reflect its full Visual IDE capabilities. | Docs |
| 🔤 IDE Toolbar | Text Alignment Controls | Exposed $drawTextMid (auto-truncation) and $drawTextIn (auto-scaling) directly in the Designer sidebar. |
Docs |
| 🤖 AI | Manifest v0.3.2 | Synchronized technical manifest version with the new f-string fixes, layout enhancements, and toolbar additions. | Manifest |
May 26, 2026 (v0.3.0)
Feature Release: Interactive WYSIWYG Visual Template IDE
This major release upgrades the Visual Designer into a fully featured template IDE! You can now import existing AlphaPIL code via reverse-parsing, inspect and render actual local system fonts, test dynamic layouts with mock variable interpolation ({user} placeholders), sketch multi-stop linear/radial gradients, resize canvas dimensions, and visually compose advanced charts & graphs ($drawBarChart, $drawLineChart, $drawProgressBar) with live rendering simulations.
| Feature | Change | Description | Link |
|---|---|---|---|
| 💻 IDE | Reverse Parser | Paste and import any hand-written AlphaPIL code directly into editable visual layers. | Docs |
| 🔤 Typography | Local Fonts Discovery | Discovers actual system fonts on launch and feeds a searchable dropdown inside the Web UI. | Docs |
| 📊 Visualization | Simulated Charts | Real-time HTML Canvas simulations for Bar Charts, Line Charts, and Progress Bars. | Docs |
| 🌈 Gradients | Gradient Builder | Sketched linear/radial gradient builder inside shapes with angle rotations and multi-stops. | Docs |
| 🤖 Interpolation | Mock Variables Inspector | Supports testing {var} placeholders live under customizable test variables. |
Docs |
| 📏 Dimensions | Canvas Resize | Visually modify, scale, and adjust background canvas dimensions dynamically. | Docs |
| 🤖 AI | Manifest v0.3.0 | Synchronized technical manifest version with the new WYSIWYG Visual Template IDE. | Manifest |
May 26, 2026 (v0.2.9)
Feature Release: Interactive WYSIWYG Visual Template Designer
This release upgrades the coordinate picker into a fully fledged visual designer! You can now visually draw text bounding boxes, rectangles, circles, rounded rectangles, and lines directly over your image, manage layering/composition, see live client-side rendering simulations, and instantly copy single snippets or complete multi-line AlphaPIL template code block compositions.
| Feature | Change | Description | Link |
|---|---|---|---|
| 🎨 Designer | Visual Builder | Added drawing overlay canvas for real-time visual design and layout modeling. | Docs |
| 🔤 Simulation | Text Simulations | Replicated drawTextMid truncation and drawTextIn auto-scaling inside the browser. |
Docs |
| 📚 Composition | Layer Management | Drag to draw, reorder indices, delete layers, and visual composition stack. | Docs |
| 💾 Code Export | Template Generator | Instantly export active single-command snippets or entire composed layout templates. | Docs |
| 🤖 AI | Manifest v0.2.9 | Synchronized technical manifest version with the new WYSIWYG Visual Designer. | Manifest |
To see previous updates, check our GitHub Release History.