|
| 1 | +# jigsawR 0.4.0 |
| 2 | + |
| 3 | +## New Features |
| 4 | + |
| 5 | +* **SNIC superpixel puzzle type** with image-aware boundary segmentation and |
| 6 | + synthetic mode for use without input images (#80) |
| 7 | +* **Voronoi puzzle type** using Fermat spiral cell generation (#42) |
| 8 | +* **Random shape puzzle type** via Delaunay triangulation (#41) |
| 9 | +* **ggplot2 integration**: `geom_puzzle_rect()`, `geom_puzzle_hex()`, |
| 10 | + `geom_puzzle_conc()`, `geom_puzzle_vor()`, `geom_puzzle_rnd()`, |
| 11 | + `geom_puzzle_snic()` layer functions with `stat_puzzle()` and |
| 12 | + `theme_puzzle()` (#54) |
| 13 | +* **Fusion rendering** for all puzzle types including voronoi and random, |
| 14 | + with `fusion_style` and `fusion_opacity` parameters (#68) |
| 15 | +* **`fill_direction` parameter** for spatial color ordering across piece fills |
| 16 | +* **`fill_palette` parameter** for ggpuzzle geom functions |
| 17 | +* **`show_labels` parameter** for ggpuzzle label display |
| 18 | +* **Min/max tab size constraints** for all puzzle types (#41, #42, #76) |
| 19 | +* **Tabsize normalization** with unified formula and defaults across all |
| 20 | + puzzle types |
| 21 | +* **Rcpp C++ optimizations** for Bezier curve computation and SVG path |
| 22 | + translation |
| 23 | +* **RNG batch optimization** integrated into puzzle generators (#65) |
| 24 | +* **Cached segment extraction** for ~40x faster coordinate parsing |
| 25 | +* **Quarto documentation site** with dark mode toggle and gallery pages |
| 26 | + (#62, #69) |
| 27 | + |
| 28 | +## Shiny Application |
| 29 | + |
| 30 | +* Dark mode support with CSS contrast improvements |
| 31 | +* SNIC puzzle type in navigation |
| 32 | +* Nested accordion UI with slider enhancements (#75) |
| 33 | +* Fusion styling updates without regeneration |
| 34 | +* Voronoi and Random puzzle types in UI (#41, #42) |
| 35 | +* Tab size constraint controls |
| 36 | + |
| 37 | +## Bug Fixes |
| 38 | + |
| 39 | +* Fixed blank PNG rendering in Quarto with `theme_puzzle()` addition |
| 40 | +* Fixed Y-axis inversion for voronoi/random `fill_direction` |
| 41 | +* Fixed fusion edge rendering with lower Bezier resolution for dashed edges |
| 42 | +* Fixed missing boundary strokes and edge segment tracking for voronoi/random |
| 43 | +* Fixed offset parameter wiring through geom functions |
| 44 | +* Fixed blank images when `ggplot()` has no data |
| 45 | +* Fixed gradient test compatibility with ggplot2 4.0 S7 objects |
| 46 | +* Fixed PILES keyword tokenization and row/column piece lookups |
| 47 | +* Fixed size parameter order standardized to `c(height, width)` |
| 48 | +* Fixed `%||%` operator to use rlang |
| 49 | +* Resolved 15 pre-existing test failures |
| 50 | +* SNIC: handle non-matrix labels, platform-robust adjacency tests |
| 51 | + |
| 52 | +## CI/CD |
| 53 | + |
| 54 | +* Full R-CMD-check matrix: windows, macOS, ubuntu (release, devel, oldrel-1) |
| 55 | +* Quarto site publishing workflow |
| 56 | +* Shiny app deployment workflow |
| 57 | +* RCDT archived package handled via `Remotes` field |
| 58 | +* Increased CI timeout for oldrel-1 source compilation |
| 59 | + |
| 60 | +## Documentation |
| 61 | + |
| 62 | +* Quarto documentation site with API/ggpuzzle side-by-side tabsets |
| 63 | +* Responsive SVG embedding with `htmltools` |
| 64 | +* Gallery pages with fusion group examples |
| 65 | +* README redesigned as attractive entry point (#63) |
| 66 | +* GPL-3 license boilerplate expanded |
| 67 | + |
| 68 | +## Internal |
| 69 | + |
| 70 | +* Split `unified_renderer.R` into modular renderer files |
| 71 | +* Consolidated duplicated code across tessellation puzzle types |
| 72 | +* CRAN compliance remediation (#81-#85) |
| 73 | +* Namespace cleanup and performance refactoring |
| 74 | +* Test suite expanded to 2,200+ tests |
| 75 | + |
| 76 | +# jigsawR 0.3.0 |
| 77 | + |
| 78 | +## Features |
| 79 | + |
| 80 | +* Concentric ring puzzle type with configurable center shapes |
| 81 | +* PILES notation (Puzzle Input Line Entry System) for piece fusion groups |
| 82 | +* Noise-based fill patterns |
| 83 | +* Individual piece extraction and export |
| 84 | +* Repel layout for separated piece positioning |
| 85 | + |
| 86 | +# jigsawR 0.2.0 |
| 87 | + |
| 88 | +## Features |
| 89 | + |
| 90 | +* Hexagonal puzzle type with circular warping and edge truncation |
| 91 | +* Gradient background support |
| 92 | +* Seed-based deterministic generation |
| 93 | + |
1 | 94 | # jigsawR 0.1.0 |
2 | 95 |
|
3 | 96 | ## Initial Release |
4 | 97 |
|
5 | | -### Puzzle Types |
6 | 98 | * Rectangular jigsaw puzzles with configurable grid dimensions |
7 | | -* Hexagonal puzzles with circular warping and edge truncation |
8 | | -* Concentric ring puzzles with configurable center shapes |
9 | | -* Voronoi puzzles using Fermat spiral cell generation |
10 | | -* Random shape puzzles via Delaunay triangulation |
11 | | -* SNIC superpixel puzzles with image-aware segmentation |
12 | | - |
13 | | -### Core Features |
14 | | -* `generate_puzzle()` unified API for all puzzle types |
| 99 | +* `generate_puzzle()` unified API |
15 | 100 | * High-quality SVG output with configurable piece separation |
16 | | -* PILES notation (Puzzle Input Line Entry System) for piece fusion groups |
17 | | -* Seed-based deterministic generation for reproducibility |
18 | | -* Gradient and noise-based fill patterns |
19 | | -* Individual piece extraction and export |
20 | | - |
21 | | -### ggplot2 Integration |
22 | | -* `geom_puzzle_rect()`, `geom_puzzle_hex()`, `geom_puzzle_conc()`, |
23 | | - `geom_puzzle_vor()`, `geom_puzzle_rnd()`, `geom_puzzle_snic()` layer functions |
24 | | -* `stat_puzzle()` for computing puzzle geometries |
25 | | -* `theme_puzzle()` for clean puzzle visualization |
26 | | -* Fusion-aware rendering with configurable fill and stroke palettes |
27 | | - |
28 | | -### Shiny Application |
29 | | -* Interactive puzzle generator with live preview |
30 | | -* Dark mode support |
31 | | -* PNG and SVG download options |
32 | | -* Configurable styling (fills, strokes, labels, backgrounds) |
33 | | - |
34 | | -### Performance |
35 | | -* Rcpp-accelerated Bezier curve computation and SVG path translation |
36 | | -* Optional parallel processing support via future/furrr |
| 101 | +* Shiny web application with live preview and PNG/SVG downloads |
0 commit comments