Releases: NGNT/treegen-pinegen
Release list
version 1.5.3
New Features
• Kapokgen Generator: Added a new broadleaf tropical tree generator with roots, canopy, and leaves. Includes full UI tab with sliders for trunk, roots, canopy, and leaf controls.
• Expanded Internal Palettes: Added 7 new kapok palettes (Rainforest, Exotic, Neon, Mystic, Aurora, Inferno, Crystal) for diverse tropical themes. All palm and kapok palettes are now programmatically generated via palette_worker.py, eliminating dependency on external PNG files.
Improvements
• Palette System Overhaul: Removed external file-based palette loading from all workers (palm, birch, pinegen, treegen, kapok). All generators now use the internal palette_worker for consistent, built-in palettes.
• Preview Scaling Fixes: Resolved export scaling mismatches by scaling tree parameters in export functions (palm and kapok) to ensure generated trees fit within the 256x256 grid, preventing clipping in MagicaVoxel.
• Preview Logic Standardization: Updated preview functions across all generators (palm, pine, birch, kapok) to match the treegen preview structure, including proper CancelledError handling and consistent param scaling.
• UI Polish: Enhanced palm and kapok tabs with themed styling, updated combo boxes, and consistent slider designs. Added kapok dimension label and export status display.
Bug Fixes
• Fixed palm export dimensions exceeding 256 by scaling params in export_palm.
• Corrected preview image resizing issues without altering final preview scaling.
• Ensured all workers handle axis orientation consistently for MagicaVoxel compatibility.
Technical Notes
• All changes maintain backward compatibility with existing UI and export workflows.
• Internal palettes reduce setup friction by avoiding external file dependencies.
• Preview and export now use identical parameter scaling for consistent results.
version 1.5.2
• Release: v1.5.2 - Palmgen + palette & frond-mapping improvements
Highlights
• Added Palmgen generator with full UI tab, controls and export support.
• New internal palm palettes registered programmatically: Palm Default, Palm Lush, Palm Dusk, Palm Sandbar, Palm Sunset (no external PNGs required).
• Frond colour mapping: leaf voxels now map to palette indices by fractional position along each frond (t01) so frond centres are darker and tips lighter for a natural look.
• UI polish:
• Palm palette combo styling and themed header/logo assets.
• Palm seed changed to themed slider (consistent with other tabs).
• Minor styling updates across Tree/Pine/Birch/Palm tabs.
• Build / packaging:
• Added recommended PyInstaller command for single-file Windows build (includes img folder and worker modules and Qt platform binary).
• Bug fixes and robustness:
• Fixed leaf voxel tracking and mapping logic (resolved UnboundLocalError and mapping/list conversion issues).
• Improved preview worker flow and safe multiprocessing startup (keeps multiprocessing.freeze_support()).
• Documentation:
• README.md updated with Palmgen, internal palettes, frond colour mapping, control lists and packaging guidance.
Files of interest
• palm_worker.py - palm generator, frond colour mapping changes
• palette_worker.py - internal palm palettes registration
• treegen_qt.py - Palm UI tab, preview/export wiring
• README.md - updated docs and build instructions
Usage notes
• For building a single EXE (Windows), run PyInstaller in an activated venv; include qwindows.dll as shown in the provided one-line command in the README.
• If multiprocessing issues arise with --onefile, try --onedir for more reliable behaviour.
Version 1.5.1
This update contains the following changes:
- Added new Birchgen tab - makes birch-style trees
- Added more palettes
- Removed reliance on external palette images; all palette handling is contained internally via worker script
- Improved preview rendering logic - program now renders tree previews in full resolution, then scales down
- Minor tweaks to pine tree generation and setting logic
- Removed reliance on external output counting file; exported vox files are now titled via timestamp
- Added multiprocessing for all tree generation logic and previewing logic for quicker response times
- Sliders in all tabs are now appropriately themed
Thank you for using my free program!
Version 1.5
This update contains the following improvements:
- Program ported to PyQty6
- Changed the dimension of the GUI
- Added some resizing capabilities and limitations
- Per-tab theming and enhanced GUI style
- GUI organizations
- Added a file menu to close the program
- Added a help menu with an "about" page
To run the new PyQty6 version, just copy/paste or drag the folder that's inside of the zip file to any directory of your choice, then double-click treegen-pinegen.exe. The new and improved program will open up normally and you can begin making your trees in style!
Version 1.4.1
This release includes the following updates:
- New "randomize" button: randomizes all slider values to generate a random tree
- Trunk size fixes: tweaks to trunk sizes in both tabs
- Grid snapping: grid snaps to model bounds after generation so that there's no more extra space in the work area
Version 1.4
In this release:
- Updated palettes for preview image
- Added preview image in GUI
- Adjusted pine twist function
- Minor optimization improvements
version 1.3
This update includes the following features:
- Combined both programs into one GUI
- Added a palette selector dropdown menu
- Changed the pine leaf generation algorithm a little bit more
- Added new slider to pinegen
Please note: This is a simple program. Because of that, your Antivirus will probably hate it, and yell at you that my program is going to infect your PC and run off with your life's valuables.
Neither of that will happen. Allow this program, and keep on generating.
Virus Scan Results
Version 1.2
What's new in this release:
- Toggle with a checkbox to auto-open generated files
- Message "generated xgen_output.vox" resets to "Ready" after a few seconds
- Filenames now sequenced to prevent overwriting (output1.vox, output2.vox etc)
- New file (treegen)(pinegen)_counter.txt created during first generation
To reset the filenames, delete the counter.txt. The program will start back at output1.
Your anti-virus may throw a false positive. That's all it is, though. You can exclude it.
First release
This release includes the following updates:
- "seed" slider
- author name
- version number
- improved code