Repository navigation
Releases: malifica/TGC-Designer-Tools
Release list
TGC Designer Tools 2K25 - Beta 8.4
TGC Designer Tools 2K25 — Beta 8.4
- Graduated Background is selectable beside Background Scale. Enabling it overrides the manual scale; switching it off restores the manual setting.
- Red-mask background terrain uses three Brush 10 sizes, written from the outside in: 64 m, 32 m, and four times the effective main brush scale directly at the seam. Main terrain is written last.
- A 72/1 main brush gets a 10/4 seam. A 10/3 main brush gets a 10/12 seam. Background centers follow measured elevations on the red side of the saved mask.
- Includes Beta 8.3's open rough and water island handling.
Windows executable: tgc_gui_2k25_beta8_4.exe.
TGC Designer Tools 2K25 - Beta 8.2
TGC Designer Tools 2K25 - Beta 8.2
Version: v0.5.0-2k25-beta8.2
Windows executable: tgc_gui_2k25_beta8_2.exe
Surface parking lots
Import Surface Parking Lots (Road Surface) is a separate, default-off OSM import option. It creates filled parking areas using the same primary surface as traffic roads. Enable the parking option for lots and Import Automobile Roads separately if you also want their mapped vehicle lanes.
A valid closed amenity=parking area with parking=surface, or without a parking subtype, is eligible. Underground parking, garages, rooftop parking, mapped points and open boundaries do not turn into filled lots. Complete multipolygon lots retain their inner cutouts. Parking areas do not affect Auto Red Mask.
Natural wood and terrain masks
Import Natural Wood as Mulch (natural=wood) is off by default. Only valid areas explicitly tagged natural=wood qualify. Meadow, forest-only and woodchip-only areas do not generate woodland mulch. A separately mapped wood island inside a meadow can qualify on its own. Individual OSM tree points remain independently selectable.
Woodland does not paint mask.png or contribute an Auto Red Mask keep area or buffer, during initial processing or an aligned CFS mask rebuild. To refresh an older affected project, back up your hand-painted mask, use Apply + Rebuild Mask, reapply wanted manual edits, then regenerate from your pre-import course. Earlier exports are not edited in place.
TGC Designer Tools 2K25 - Beta 8.1
TGC Designer Tools 2K25 - Beta 8.1
Release ID: v0.5.0-2k25-beta8.1
Windows executable: tgc_gui_2k25_beta8_1.exe
Highlights
- Separate Import Woods / Woodchip Areas (Mulch) and Import Individual OSM Tree Points controls. Both default OFF; woodland surfaces no longer enable tree-point planting.
- Standard
natural=wood,landuse=forest, and closedsurface=woodchipsareas generate dry native mulch, separate from water. - Complete woodland multipolygons preserve inner cutouts; incomplete or invalid geometry is reported rather than filled across missing members.
- Unity/SVG export writes standard woodland or woodchip classifications. Multipolygon member ways retain
tgc:svg_idbookkeeping metadata. - Obsolete
golf=mulchareas warn and are skipped instead of being silently reclassified. - Existing LiDAR-tree detection, weighted planting, regional themes, terrain, background registration, and local feature editing are retained.
Using the two controls
For woodland groundcover without individual OSM trees, enable Import Woods / Woodchip Areas (Mulch) and leave Import Individual OSM Tree Points OFF. LiDAR-tree controls remain independent. Existing duplicate suppression still avoids adding OSM points when LiDAR trees are requested.
Keep natural=wood for tree-covered land, or landuse=forest where appropriate. Use surface=woodchips for genuine wood/bark-chip ground. These describe the real feature; the game's mulch surface is an importer choice. Do not retag a bare bed as woodland merely for a game material.
The earlier private golf=mulch workflow is retired. Review old private-tagged local polygons and assign their actual standard classification. They are not automatically guessed. Unity woodland mapping exports natural=wood; its mulch mapping exports surface=woodchips and area=yes.
Woodland areas remain dry: no water registration, blue-water mask, water elevation or carving operation is introduced. Preview, aligned-mask and native import handling use the same supported area classifications.
Existing projects
Keep a backup of any hand-edited mask. After changing OSM tags or files, finalize CFS alignment, rebuild the aligned mask, then redo any intended manual mask edits and regenerate the course. Existing course exports do not change automatically. The processed heightmap can be reused when its terrain, map scale and coordinate frame are unchanged.
Standard tags do not make synthetic Unity/SVG coordinates suitable for the public OSM database. Synthetic exports retain upload="never"; their geography must not be uploaded.
Scope and validation
This release uses the supplied, previously built Windows EXE unchanged. All 142 upload-manifest entries were verified. All 57 project Python modules present in the frozen application, including its entry point and OSM/Unity modules, match the supplied source using the same Python 3.11 bytecode version, with environment-specific filenames and debug column ranges normalized. Embedded regional profiles and native runtime support were also checked. Publication does not rebuild or modify the EXE. No additional Windows GUI or in-game testing is claimed.
TGC Designer Tools 2K25 - Beta 8
TGC Designer Tools 2K25 — Beta 8
Beta 8 brings Unity terrain/layout import, detailed course-feature alignment, a refreshed interface, Desert Southwest, and selectable custom-theme tree sizing into TGC Designer Tools.
Highlights
- Unity RAW + Course SVG import. Terrain size/height, byte-order and orientation controls, SVG feature mapping, preview, and paired DEM/local-OSM output integrated into the existing import workflow.
- Bunker and tee alignment audit. Review terrain-based local offset suggestions and confidence indicators before approving corrections.
- Course-wide micro-alignment. Select from the map or list; drag, nudge, or enter precise offsets; move selected groups and undo changes. Manual editing includes greens, fairways, rough, water, mulch, paths and other supported features.
- Linked or independent boundaries. Move a feature with its matching inner cutout, or adjust them separately. Shared-boundary handling preserves unselected neighbors and validates the resulting geometry.
- Refreshed interface. Consistent controls, synchronized map/list feature filters, and a resizable/maximizable alignment workspace.
- Desert Southwest theme. A desert tree/cactus palette with regional playing-surface and terrain-material selections.
- Custom Theme Weighted Planting. ON restores the earlier custom-theme height/width behavior; OFF retains current LiDAR-derived sizing. Heroic, Epic and Mythic remain separate size choices. The option defaults OFF; it does not add a new tree-count rule or change detection/filtering.
- Background-terrain registration improvements. Corrected source-grid sampling keeps background terrain registered to the detailed terrain.
- Dry-mulch support. Import mapped mulch separately from water, with corresponding preview and mask handling.
Using Beta 8
Run tgc_gui_2k25_beta8.exe.
Automatic terrain-based alignment suggestions apply to tees and bunkers. Other supported feature types use manual translation. This is not vertex editing, terrain sculpting, or automatic realignment of every course feature. Review proposed changes and keep project backups.
Unity RAW and SVG supply terrain and surface-layout data. The importer does not invent numbered hole routes when the SVG lacks them. Add routing as appropriate before generating a playable course. Synthetic-coordinate OSM is for local use and must not be uploaded to OpenStreetMap.
For existing projects, reuse processed terrain where appropriate, review alignment, rebuild the aligned mask when required, then regenerate and export. Previously exported courses do not update automatically.
Downloads
tgc_gui_2k25_beta8.exeTGC-Designer-Tools-2K25-v0.5.0-2k25-beta8-Windows-x64.zip- Matching SHA-256 checksum files.
The Windows ZIP contains the executable, editable regional profiles, default spline configuration, license notices, and these release notes. Beta 7 remains available as a separate release.
TGC Designer Tools 2K25 - Beta 7
TGC Designer Tools 2K25 — Beta 7
Highlights
- Much faster LiDAR and DEM preview/mask processing. Reworked coordinate-transform handling prepares and reuses the appropriate transformation instead of constructing it for every OSM node. Affected OSM-heavy stages that previously took many minutes can now complete in seconds; gains depend on the project and hardware.
- Clearer processing progress. Named phases, phase-based percentages, elapsed time, and file-write activity make long operations easier to follow.
- CFS alignment improvements. The viewer and aligned-mask rebuild use the same transformation convention as course import, with corrected raster-to-screen placement.
- Better CFS display controls. Hillshade is the default; brightness and contrast sliders, reset controls, and zoom up to 30× improve detailed alignment. High zoom renders only the visible background area.
- Current-project folder defaults. CFS and mask rebuilding start from the selected working folder instead of an earlier project's remembered heightmap location.
- Independent LiDAR tree controls. OSM/surface filtering defaults OFF, red-mask tree exclusion defaults ON, and the existing 50 m course-feature filter remains ON and independent.
- Unresolved OSM relations no longer disable every tree. Problematic items are identified in the status output and skipped. Enabled surface filtering checks valid shapes and retains confirmed rough-island exceptions without inventing exclusion boxes.
- More focused DEM previews. Golf features, roads, streams, water, and necessary relation members are retained; unrelated coastline and residential land-use areas are excluded from the render-feature set. Residential roads remain supported.
The speed improvements preserve the selected terrain resolution and coordinate calculations. Raw-point loading, tree detection, and disk throughput still affect total job time; this is not a fixed whole-process speed multiplier or a CUDA update.
Existing features retained
Regional tree/material profiles, LiDAR-based tree sizing, water locked to mulch, separate asphalt roads and cart paths, multipolygon islands, Custom/Unmatched OSM placement, source-grid masks, AWS EPT acquisition, Trees Only, Terrain Gap Fill, Dense / Original terrain brushes, and Slope-Locked Hulkify remain included. Course Finisher and Course Architect are separate and unchanged.
Upgrading and using existing projects
Run tgc_gui_2k25_beta7.exe. The application title is TGC Designer Tools 2K25 - Beta 7.
Reuse the processed heightmap. Back up manually edited masks, review alignment in the corrected CFS viewer, use Apply + Rebuild Mask, then regenerate the course features. Rebuilding replaces mask.png; make manual mask edits afterward. Previously exported courses do not update automatically.
To retain trees in red-masked areas, uncheck Exclude LiDAR Trees from Red-Masked Areas. This affects trees only, not terrain masking. The 50 m filter and saved-grid bounds still apply. To enable maintained-surface exclusions and rough-island handling, enable the independent OSM/surface filter.
Downloads
tgc_gui_2k25_beta7.exeTGC-Designer-Tools-2K25-v0.5.0-2k25-beta7-Windows-x64.zip- A SHA-256 checksum file for each download.
The ZIP includes the executable, editable regional profiles, spline configuration, and user documentation. The prior Beta 6 release remains available.
TGC Designer Tools 2K25 - Beta 6 Hotfix
TGC Designer Tools 2K25 — v0.5.0-2k25-beta6 Hotfix
Tree topology and nonfatal OSM notices hotfix
- Maintained green, fairway and bunker areas reject new LiDAR trees; confirmed fully contained rough islands remain eligible, subject to other exclusions.
- OSM rough uses outer-minus-inner topology. Broad surrounding rough no longer grants a fairway-tree exception.
- Ambiguous mixed golf tags and unusable tree-topology items print terminal NOTICE messages instead of aborting tree filtering. Trees are denied in the affected outer footprints, including inner areas.
- When complete affected bounds cannot be recovered safely, new LiDAR trees are disabled for that import while processing continues. Healthy areas retain their normal filtering when the fault can be localized.
- EXE:
tgc_gui_2k25_beta6.exe. Main window:TGC Designer Tools 2K25 - Beta 6. No TEST or hotfix suffix is displayed. - Prior multipolygon-preview, mandatory mulch-water, tree-sizing, CFS/mask and regional-profile fixes are retained. Tree detection/sizing, mask coordinates, Hulkify and spline geometry are unchanged. Course Finisher is not updated.
Reuse the processed heightmap and regenerate the TGC course before Course Finisher. This filter affects newly generated LiDAR trees; it does not remove existing trees from saved finished courses or edit the OSM/server. This is a tree-filter correction, not a change to the spline importer's green-relation coverage. Invalid JSON or unrelated processing errors are not suppressed.
Multipolygon preview and mandatory mulch-water hotfix - 2026-10-21
- Relation-owned golf and water multipolygons render in the selection preview and mask whether Auto Red Mask is ON or OFF.
- Complete relation tags, outer boundaries and inner islands are retained in the ordinary LiDAR/DEM overlay and aligned/custom-OSM mask paths.
- Imported 2K25 water polygons and streams use native mulch category 10. Mulch05 is explicitly retained at surfaces2[2] after regional-theme application and immediately before final archive encoding.
- Asphalt roads use native category 8; cart paths remain category 7. Water/stream geometry and width settings remain configurable, but a primary-surface override cannot change imported water away from mulch.
- Red-mask exclusion/buffering/cleanup, CFS placement, terrain reconstruction, LiDAR tree sizing and all regional profiles are unchanged.
Existing projects: use Rebuild Mask from Current OSM Alignment to regenerate mask.png from the saved heightmap and alignment. Refresh the selection preview separately when needed. Reimport the course features for the water correction; old exported files and PNGs are not rewritten automatically.
This release applies the supplied hotfix to current Beta 6, including a correction to its installer anchors so all six preview call-site edits are actually applied. The native-overpy test fixture is corrected without changing application behavior. The LiDAR tree-sizing hotfix and existing entry point are retained. Automated checks validate geometry and serialized material assignments; native Designer appearance still requires a visual check.
LiDAR tree-sizing hotfix - 2026-10-20
- Regional themes now select tree models without replacing LiDAR-derived tree scales.
- Built-in and regional tree palettes share the same source crown-radius and height calculation.
- Standard (Lidar) and Heroic retain their established LiDAR mapping; Epic is 1.20 x Heroic and Mythic is 1.80 x Heroic on X/Y/Z.
- Profile scale defaults, per-asset scale distributions and uniform-scale settings no longer override generated tree sizing.
- Tree detection, coordinates, final-grid masks, playing-surface exclusions, OSM alignment and material presets are unchanged.
- Pacific Northwest is included in both the bundled and editable profile directories.
- All previous Beta 6 spline-surface and CFS/mask hotfixes remain included.
The existing processed LiDAR heightmap can be reused; this correction does not require repeating LiDAR processing.
This restores the established source-measurement-to-transform-scale mapping, not a new metre-for-metre calibration of every tree model. Different native models can have different unscaled dimensions.
Beta 6 spline-surface hotfix
- OSM water polygons and streams now default to the mulch custom surface.
- Automobile roads now default to asphalt and remain independent from golf cart paths.
- Cart paths retain the selected Designer theme's Cart Path material while honoring configured widths and valid surface overrides.
- Water and streams have independent
splines.jsonsections, with the legacyplaceholdersection retained as a closed-water geometry fallback. - Invalid or misnamed
splines.jsonfiles now produce a clear error instead of silently reverting to defaults. - The processing log reports effective cart-path, road, water, and stream surfaces and widths.
- Aligned-mask road-width tracking now uses the same validated configuration loader as final OSM import.
The hotfix retains the existing Beta 6 tag and established Windows asset filenames.
Beta 6 builds on the Beta 5 hotfix with a safer CFS/mask workflow, detached Local OSM placement, explicit road/path handling, final-grid LiDAR tree masking, Slope-Locked Hulkify, and an expanded regional-tree system.
Any Local OSM on any LiDAR/DEM terrain
Beta 6 can use a Local OSM course layout even when its real-world coordinates do not match the selected terrain. In this mode the OSM file is treated as a local metric design: its dimensions and orientation are preserved 1:1, the golf layout is centered on the terrain, and the CFS Alignment Viewer supplies the final translation.
- Centering prefers
golf=holegeometry, then other golf geometry, before falling back to full node extent. - The same transform is reused by the initial preview, CFS overlay, Auto Red Mask, and final OSM import.
- AWS EPT discovery and Terrain Gap Fill are disabled while unmatched-OSM mode is active because those operations depend on the original OSM geography.
CFS-first Auto Red Mask workflow
The production mask is no longer treated as final before CFS alignment.
- Local OSM selection appears before LiDAR/DEM processing.
- CFS alignment is finalized before the production Auto Red Mask is accepted.
- Applying an OSM shift rebuilds
mask.pngon the final master grid using that exact shift. - Stale masks are blocked rather than silently reused.
- CFS terrain/OSM preparation and production-mask rebuilding run off the Tk main thread with progress reporting.
This is especially important with tight preservation buffers, where even a small post-mask alignment shift could otherwise move course geometry into masked terrain.
Roads, cart paths, and walking paths
Beta 6 separates these feature classes instead of treating generic OSM paths as golf cart paths.
- Cart paths require
golf=cartpath. - Walking paths require explicit
golf=path. - Generic
highway=footway,highway=path, andhighway=pedestrianfeatures are not promoted into golf paths unless tagged for golf. - Supported automobile
highway=*features use an independent optional road-spline workflow with a 6.0 m default width. - Automobile roads are excluded from Auto Flatten Cartpaths.
LiDAR tree master-grid fix
LiDAR tree filtering now uses the final terrain/master-grid mask so tree placement stays registered after CFS or custom-layout transforms. Existing playing-surface exclusions and explicit rough-island behavior are retained.
Slope-Locked Hulkify
Slope-Locked Hulkify enlarges complete course geometry by 10% per click while applying the same transform to terrain relief, active water levels, and terrain-seated object elevations. Rise and run scale together, preserving slope severity. Repeated clicks compound from the current course state.
Regional tree profiles and scale labels
- Pacific Northwest is added as a calibrated regional tree profile.
- Tree-size choices are now
Standard (Lidar),Heroic,Epic, andMythic. - Standard (Lidar) retains the established LiDAR sizing behavior.
- Heroic retains the existing Heroic calibration.
- Epic is
1.20 × Heroic. - Mythic is
1.80 × Heroic. - Regional and built-in palettes use the same LiDAR-derived sizing; profile size distributions are ignored.
Retained Beta 5 hotfix corrections
- AWS EPT Web/Pseudo-Mercator data is reprojected into true-ground local metric coordinates before LAZ output.
- AWS EPT chooser actions remain visible and the selected acquisition remains highlighted.
- Local OSM master extents use safe course/export bounds rather than unrelated distant relation nodes.
- Final
mask.pngdimensions are verified againstheightmap.npy. - A mask/heightmap mismatch reports a clear error rather than reaching a NumPy broadcasting failure.
Windows release
Executable:
tgc_gui_2k25_beta6.exe
Windows package:
TGC-Designer-Tools-2K25-v0.5.0-2k25-beta6-Windows-x64.zip
The prerelease includes SHA-256 files for both the executable and Windows ZIP.
Beta 6 remains the main TGCTool course-creation application. Adaptive Terrain, Course Finisher, and Crazy Bunkers remain separate downstream tools.
TGC Designer Tools 2K25 - Beta 5 Hotfix
TGC Designer Tools 2K25 — v0.5.0-2k25-beta5
Beta 5 publishes the current main-line TGC Designer Tools 2K25 feature set without adding any new feature work beyond the already-tested Beta 5 development tree.
Highlights
- Regional Theme system with calibrated real-course tree planting profiles.
- Coordinated Designer theme plus playing-surface and terrain-material presets.
- Heroic, Epic, and Legacy LiDAR tree-scale modes.
- Public USGS 3DEP AWS EPT acquisition discovery/download from Local OSM.
- Acquisition chooser with WESM collection metadata when available.
- Trees Only workflows that keep existing DEM terrain.
- Terrain Gap Fill using older/fallback LiDAR only where the primary terrain is missing.
- OSM-defined terrain master extent for Local OSM LiDAR workflows.
- Existing Beta 4 improvements: dynamic course preview, par-aware hole normalization, LiDAR playing-surface tree filters, OSM multipolygon water import, and Fjordland tree support.
Regional Themes
Beta 5 can use JSON-backed regional profiles with calibrated regional planting palettes, scale distributions, and material presets. Enabled profiles in the current release include the calibrated profiles already present in the Beta 5 tree-profile directory, including Texas Hill Country, Niagara Escarpment, Carolina Piedmont (Autumn), Virginia Coastal Plain, Hudson Valley Mixed Forest, Northern Rockies, Monterey Bay Coast, Georgia Piedmont, San Francisco Peninsula, and South Carolina Lowcountry.
Regional profiles may control:
- source Designer theme;
- weighted tree-prefab mix;
- profile-calibrated X/Y/Z tree scale distributions;
- bunker, green, fringe, fairway, rough and heavy-rough textures;
- terrain/splat material slots.
The reviewed Coastal Links profile remains disabled because it does not provide a suitable automatic tree population.
Tree Scale
- Heroic (Beta 5) remains the default.
- Epic preserves the same population/mix and scales final trees one additional 20% above Heroic.
- Legacy LiDAR remains available for comparison.
USGS AWS EPT
With a Local OSM file selected, Beta 5 can discover overlapping public USGS 3DEP LiDAR acquisitions and show collection/quality metadata before download. The selected acquisition can be used for:
- normal Terrain + Trees;
- Trees Only while preserving DEM terrain;
- Terrain Gap Fill while preserving valid primary terrain.
Public AWS EPT access does not require an AWS account.
Terrain Gap Fill
Fallback LiDAR is projected onto the existing master grid and only fills cells where primary terrain is missing/NaN. Valid primary terrain is never overwritten.
When enough overlap exists, Beta 5 measures a robust median vertical offset and applies it only within the existing 2 m safety limit.
OSM-defined terrain master extent
For Local OSM LiDAR workflows, Beta 5 can reframe the terrain to the golf-course OSM extent plus the established safety buffer. The master extent is snapped to the existing terrain cell lattice, preserving valid primary elevations without resampling and allowing later gap-fill acquisitions to populate missing edge/interior cells.
Fixed: DEM Auto Red Mask production crop
Beta 5 includes the DEM fix validated against the reported Cape Wickham case.
The fast bounded DEM boundary preview remains, but the final production sequence now follows Beta 3/3.1 semantics:
- Render OSM + Auto Red Mask on the full-resolution full DEM coordinate frame.
- Crop the completed mask and the DEM with the exact same accepted bounds.
- Build the normal CFS master grid from those crop bounds.
The Beta 4 100 m crop-halo production-mask regeneration path is no longer used.
Auto Red Mask polygon logic, buffer rules, multipolygon behavior and cleanup rules are otherwise unchanged.
Windows build
Run:
BUILD_TGC_2K25_BETA5.batExpected executable:
C:\TGC-Designer-Tools\dist\tgc_gui_2k25_beta5.exe
Expected release archive:
C:\TGC-Designer-Tools\dist\release_beta5\TGC-Designer-Tools-2K25-v0.5.0-2k25-beta5-Windows-x64.zip
The build runs VERIFY_BETA5_SOURCE.py, performs Python syntax checks, attempts to compile the native LiDAR rasterizer, builds the one-file PyInstaller executable, packages the regional profile directory, and writes SHA-256 checksum files.
Publishing
After validation:
PUBLISH_TGC_2K25_BETA5.batTag: v0.5.0-2k25-beta5
Release title: TGC Designer Tools 2K25 - Beta 5
Publish as a prerelease.
Scope
Beta 5 is the main TGCTool release. The Adaptive Terrain Converter, Course Finisher, Yardage/Greens/Course Map tools, and Crazy Bunkers remain separate downstream utilities.
This project remains an unofficial derivative of HiCamino/TGC-Designer-Tools under the upstream Apache License 2.0.
TGC Designer Tools 2K25 - Beta 4
TGC Designer Tools 2K25 — v0.5.0-2k25-beta4
Beta 4 consolidates the post-Beta-3.1 work on the main TGCTool into a new Windows prerelease. It keeps the established LiDAR / GeoTIFF DEM / Local OSM / CFS workflow and adds the course-import, tree-filtering, preview-performance, and 2K25 theme-tree improvements completed after Beta 3.1.
Highlights
- Dynamic course preview sizing based on actual course bounds.
- Faster GeoTIFF DEM course-boundary selection with bounded preview preparation off the Tk/UI thread.
- Par-aware OSM golf-hole waypoint normalization.
- LiDAR tree exclusion from maintained playing surfaces, while explicit rough islands can preserve intentional fairway trees.
- OSM multipolygon lakes/ponds imported into the actual 2K25 course with stitched relation topology and physical inner islands.
- Full Fjordland (theme 54) tree palette support from the supplied 2K25 reference course.
- Beta 3.1's automatic LiDAR CRS fix for foot/US-survey-foot projected systems remains included.
Improved: dynamic course preview
The course preview now sizes itself from the actual rendered course bounds instead of forcing every course into the same fixed square presentation.
This makes long, narrow, or unusually oriented courses easier to inspect without changing the course data itself.
Improved: faster DEM course-boundary selection
Large GeoTIFF DEM workflows now prepare a bounded-resolution DEM/OSM/Auto Red Mask selector preview in the background before the crop window opens.
After the user accepts the course boundary, TGCTool:
- maps the accepted selection back to full DEM coordinates;
- generates the production mask only for the selected course area;
- retains a 100 m processing halo around the accepted crop so multipolygon and cleanup behavior remains stable at the edge;
- performs final mask/heightmap work off the Tk main thread.
The production Auto Red Mask semantics remain unchanged.
Improved: OSM golf-hole waypoint normalization
OSM golf-hole centerlines are normalized by par when written into the course:
- standard par 3 two-node routes receive a green-side middle waypoint 5 m before the pin/end node;
- standard par 4 three-node routes remain unchanged;
- standard par 5 four-node routes keep tee + first middle waypoint + pin/end node.
The source OSM is never modified, and nonstandard node counts retain the historical compatibility fallback.
Improved: LiDAR tree playing-surface filtering
LiDAR-generated tree candidates are now checked against imported course surfaces before they are written:
- greens / tee boxes reject LiDAR tree candidates;
- bunkers reject LiDAR tree candidates;
- fairways reject LiDAR tree candidates unless an explicit rough spline overrides that location;
- OSM-mapped trees are unaffected;
- the optional 50 m course-proximity filter remains unchanged.
This keeps unclassified/elevated LiDAR returns from populating maintained playing surfaces while still allowing deliberately mapped rough islands around real fairway trees.
Improved: OSM multipolygon water import
The OSM importer now writes standard mapped lakes and ponds into the actual 2K25 course using the same relation topology already used by Auto Red Mask.
- closed
natural=waterways are imported as filled water placeholder splines; type=multipolygonwater relations are reconstructed from outer/inner member ways;- fragmented relation shorelines are stitched by shared endpoint node IDs;
- inner islands are preserved as physical holes using the established narrow-neck/lollipop representation required by TGC filled splines;
- consumed relation members are not independently fill-closed into false water;
- incomplete Local OSM relations fail closed with a warning.
Added: Fjordland theme trees
Theme ID 54 is now recognized as Fjordland.
The supplied reference course contained 44 actual Fjordland tree prefabs. Beta 4 adds all of them to the 2K25 global tree dictionary without renumbering existing tree IDs:
- 15 broad/wider tree assets in the normal-tree palette;
- 29 narrow/columnar/conifer assets in the skinny-tree palette;
- 33 new global asset paths appended to the existing dictionary;
- 11 existing global assets reused.
Theme shrub/bush assets are intentionally excluded from LiDAR tree placement.
The main TGCTool now has explicit 2K25 tree palettes for Desert, Boreal, Tropical, Countryside, Harvest, Winter, Delta, Rustic, Swiss, Steppe, Autumn, Highlands, Temperate, and Fjordland.
Retained from Beta 3.1
Beta 4 retains the automatic LiDAR CRS correction introduced in Beta 3.1. When LAS/LAZ horizontal CRS metadata resolves to an EPSG code, the working projection is rebuilt from the canonical EPSG definition so meter-normalized LiDAR coordinates remain aligned with OSM/CFS data even when the source CRS is defined in feet or US survey feet.
Windows build
Run:
BUILD_TGC_2K25_BETA4.batExpected executable:
C:\TGC-Designer-Tools\dist\tgc_gui_2k25_beta4.exe
Expected release archive:
C:\TGC-Designer-Tools\dist\release_beta4\TGC-Designer-Tools-2K25-v0.5.0-2k25-beta4-Windows-x64.zip
The build runs VERIFY_BETA4_SOURCE.py, performs Python syntax checks, attempts to compile the optional native LiDAR rasterizer, builds the one-file PyInstaller executable, creates the release ZIP, and writes SHA-256 checksum files.
If MinGW-w64 is unavailable, the EXE still builds with the exact Python LiDAR rasterizer fallback and reports that status in the build summary.
Publishing
After validation, run:
PUBLISH_TGC_2K25_BETA4.batThe publish helper requires GitHub CLI (gh) to be installed and authenticated. It creates the prerelease/tag v0.5.0-2k25-beta4 from main, uses this file as the release body, and uploads the EXE, release ZIP, and both SHA-256 files.
Scope
Beta 4 remains the main TGCTool release. The separate Adaptive Terrain Converter and Course Finisher are not folded into this repository release.
This project remains an unofficial derivative of HiCamino/TGC-Designer-Tools under the upstream Apache License 2.0.
TGC Designer Tools 2K25 - Beta 3.1 Hotfix
TGC Designer Tools 2K25 — v0.5.0-2k25-beta3.1
Beta 3.1 is a focused hotfix for the Beta 3 release. It keeps the full Beta 3 LiDAR / GeoTIFF DEM / Local OSM / CFS workflow and corrects automatic LiDAR projection for foot-based projected coordinate systems.
Fixed: Auto LiDAR projection
Some LAS/LAZ files correctly exposed a projected horizontal CRS and unit metadata, but the WKT-derived working projection could remain in feet or US survey feet even though TGCTool had already normalized the LiDAR XY coordinates to meters.
That produced an OSM/CFS alignment mismatch unless the user manually forced the horizontal EPSG.
Beta 3.1 changes the modern LAS/LAZ CRS path so that:
- the LAS/LAZ header is still parsed automatically;
- compound CRS metadata is still split into horizontal and vertical components;
- horizontal and vertical unit conversion remains independent;
- when the horizontal CRS resolves to an EPSG code, the working projection is rebuilt from that canonical EPSG definition with meter-normalized projected output;
- when no EPSG is resolvable, the existing direct-CRS fallback remains available.
Regression validation
The hotfix was validated against a compound Colorado State Plane South dataset where Auto Detect reports:
Horizontal EPSG: 6432
NAD83(2011) / Colorado South (ftUS)
Before the hotfix, OSM alignment required manually forcing EPSG 6432 (or the closely related legacy EPSG 2233).
After the hotfix, leaving Force LiDAR Horizontal EPSG blank produces the same correct OSM alignment as manually forcing EPSG 6432.
The console now reports:
Working projection rebuilt from canonical EPSG:6432
Windows build
Run:
BUILD_TGC_2K25_BETA3_1.batExpected executable:
C:\TGC-Designer-Tools\dist\tgc_gui_2k25_beta3_1.exe
Expected release archive:
TGC-Designer-Tools-2K25-v0.5.0-2k25-beta3.1-Windows-x64.zip
The build still attempts to compile and bundle tgc_lidar_fast_native.dll. If the required MinGW-w64 compiler is unavailable, the EXE can still be built with the exact Python fallback. The Beta 3.1 build summary explicitly reports which LiDAR rasterizer was packaged.
Scope
This hotfix does not fold the separate Adaptive Terrain Converter or Course Finisher into the main TGCTool. It does not otherwise change the Beta 3 terrain, masking, OSM optimization, CFS alignment, or LiDAR/DEM performance behavior.
This project remains an unofficial derivative of HiCamino/TGC-Designer-Tools under the upstream Apache License 2.0.
TGC Designer Tools 2K25 - Beta 3
TGC Designer Tools 2K25 — v0.5.0-2k25-beta3
Beta 3 is the current malifica PGA TOUR 2K25 fork release. It keeps the Beta 2 Local OSM / LiDAR / GeoTIFF DEM workflow and incorporates the CFS alignment work, automatic course mask, OSM simplification, LiDAR proximity filters, and the validated DEM/LiDAR performance pass used in current course builds.
Beta 3 highlights
- CFS georeference lock so OSM, LiDAR/DEM terrain and later course features use one projected master affine instead of independent recentering assumptions.
- CFS Alignment Viewer for checking and adjusting projected OSM against source terrain before course generation.
- The Alignment Viewer now uses a higher-contrast preview-only hillshade and a constant 2-screen-pixel gray75 tracing overlay so the terrain remains visible while manually nudging golf features.
- Alignment supports mouse drag, zoom, 0.10 m Arrow-key nudges, and 1.0 m Shift+Arrow nudges, with the final shift copied back to the main import controls.
- Auto Red Mask is enabled by default and preserves golf/cart-path terrain using a user-selectable 5–30 m buffer (5 m default) while masking unrelated terrain.
- After buffering, conservative cleanup removes one-pixel red slivers with a 2 px minimum-width rule and removes enclosed red islands smaller than 25 raster pixels; the border-connected exterior red region remains intact.
- Auto Red Mask understands OSM multipolygon relations, stitches fragmented outer/inner member ways, subtracts inner holes correctly, and preserves separately tagged inner golf features.
- Compound fairway/rough multipolygons are filled green in
mask.png; multipolygon water is retained and painted pure blue; open relation fragments are not implicitly closed into fake areas. - Optimize OSM Spline Points is enabled by default with feature-specific tolerances and conservative shape guards.
- 50 m LiDAR Tree and Building filters use core golf geometry plus hole routes and exclude cart/walking paths and building/utility splines from the proximity index.
- DEM Fast moves heavy DEM work off the Tk main thread and accelerates arbitrary-ratio 40th-percentile reduction while preserving established output behavior.
- LiDAR Fast replaces several Python hot paths with vectorized NumPy/PyProj operations and an optional native-C exact-order ground rasterizer.
- The native LiDAR helper is built with generic x86-64 MinGW-w64 settings and has an exact Python fallback when a compiler/DLL is unavailable.
- The main TGCTool is Dense / Original only; Adaptive conversion and Course Finisher operations remain separate downstream tools.
CFS Alignment Viewer
The viewer offers Blend, Visual, and Hillshade modes on the same CFS master-grid projection used by terrain and OSM conversion.
The final Hillshade view is deliberately easier to read on gently shaped golf-course terrain. It uses preview-only relief exaggeration, a lower simulated sun angle, and a robust percentile contrast stretch. None of these display changes modify the elevation data used to create the course.
The OSM overlay is a constant 2 screen pixels wide and uses Tk gray75 stippling for a partially transparent tracing-paper effect. This avoids the heavy zoom-scaled outlines from earlier viewer builds while remaining more visible than the prior 1 px / gray50 experiment.
Auto Red Mask behavior
With Auto Red Mask enabled, the generated mask uses:
- red — terrain excluded from the detailed course area;
- blue — preserved water behavior;
- green/other OSM colors — visual preview only; these pixels are simply non-red terrain for the terrain mask.
The crop-selection rectangle is black while Auto Red Mask is active so it remains visible over the red background.
Multipolygon relations are resolved before the selected 5–30 m preservation buffer is applied. The GUI labels 5 m minimum / 30 m maximum. One raster pixel corresponds to the current processing Map Scale.
After buffering, the internal cleanup keeps the automatic result practical without preventing manual editing: one-pixel red hairs/slivers are removed, enclosed red islands below 25 pixels are removed, and the border-connected exterior mask is preserved.
Terrain generation and background behavior
The main TGCTool exposes Dense / Original only for course creation. Adaptive terrain has been removed from the main tool and its GUI. Adaptive conversion is a separate downstream utility.
When Add Background Terrain / Remove Cliffs is enabled, the source-derived coarse background is written first with Brush 10. Its footprint is 2.5 × the requested Background Scale so the soft circular stamps overlap smoothly. The normal selected dense terrain brush is written afterward on top of that coarse fill.
The separate Auto Background Landscape (Purple) system can also generate a coarse source-derived outer landscape; its detail spacing remains user editable.
Performance
DEM
Beta 3 retains the 40th-percentile lower-ground reducer but uses a vectorized/chunked path for arbitrary source-to-target ratios. Rasterio/GDAL reprojection defaults to up to eight logical CPU threads and can be overridden with TGC_DEM_THREADS.
LiDAR
Beta 3 accelerates:
- crop/classification filtering;
- multi-tile point concatenation;
- CRS reprojection;
- tree maximum rasters;
- preview raster generation;
- interpolation array preparation;
- the order-sensitive ground rasterizer.
When tgc_lidar_fast_native.dll is available, the exact-order ground rasterizer runs in native C. Otherwise the exact Python fallback is used.
OSM spline optimization
Optimize OSM Spline Points is enabled by default. It conservatively removes redundant OSM vertices before normal spline-handle generation for bunkers, greens, tee boxes, fairways, rough, cart paths, and walking paths while preserving endpoints, sharp corners, winding, minimum point counts, and polygon-area guards.
50 m LiDAR Tree / Building Filters
LiDAR tree and Class-6 building generation can be constrained to within 50 m of core course geometry. The index uses bunker, green/tee, fairway, rough, and hole-route geometry and deliberately excludes cart paths, walking paths, building placeholders, and other utility splines.
Build
Run:
BUILD_TGC_2K25_BETA3.batExpected executable:
C:\TGC-Designer-Tools\dist\tgc_gui_2k25_beta3.exe
The build script looks for TGC_CC, then the project's tested LLVM-MinGW path, then MinGW-w64 clang/gcc on PATH. Failure to build the native helper does not prevent the main executable from being built.
Release archive:
TGC-Designer-Tools-2K25-v0.5.0-2k25-beta3-Windows-x64.zip
Scope
Beta 3 does not fold the separate Adaptive Terrain Converter or Course Finisher into the main TGCTool. The main repository release remains focused on deterministic LiDAR/DEM/OSM course creation.
This project remains an unofficial derivative of HiCamino/TGC-Designer-Tools under the upstream Apache License 2.0.