When I joined Full Swing Golf, they had an existing system for building meshes from curves to design golf courses, but it was painfully slow and riddled with issues. These weren’t just minor hiccups—this was a system that couldn’t reliably produce clean geometry, which meant downstream problems for everyone involved, from designers to QA testers. The frustration was palpable, and the inefficiency was costing valuable time.
The Problem with the Existing System
The tool they were using, built by external contractors no longer available for support, had two major flaws:
- Geometry Issues: It produced foldovers and duplicate geometry, creating meshes that didn’t share topology. This made LOD (Level of Detail) generation a nightmare.
- Designer Bottlenecks: Simple adjustments required tweaking vertices and regenerating geometry, a process that could take up to five minutes per change. Designers were spending more time troubleshooting the tool than actually creating, and the QA team wasted hours reporting issues back to course developers.
The Challenge
The goal was ambitious: create a system that would:
- Enable designers to rapidly generate clean, decimatable meshes from concave and convex curves.
- Allow seamless iteration on curve data with instant visual feedback.
- Integrate with third-party resources like drone-derived textures and height maps to define precise surfaces, like fairways or greens.
- Eliminate errors that would cripple downstream processes.
The Solution
To solve this, I designed a curve-based course editor that leveraged Unity’s Job System and Burst Compiler to handle mesh generation in the background, ensuring the editor remained responsive during the process.
Here’s how it worked:
- Curve-Based Mesh Generation: Designers could draw curves over 2D maps (built from drone footage and height maps) to define surfaces. The system used those curves to generate meshes that delineated physics surfaces, such as fairways, greens, and rough.
- Rapid Iteration: Changes to curve data triggered passive updates to affected meshes. Designers no longer had to wait minutes to see if their adjustments worked—they could see the results almost instantly.
- Optimized Geometry: The system produced clean, error-free geometry. This solved the foldover and duplicate topology issues, enabling LOD generation without headaches.
The Results
The impact was immediate and significant:
- Efficiency Boost: Designers could iterate faster than ever before, focusing on creativity rather than fighting the tools.
- Clean Geometry: The meshes were rock-solid, eliminating the QA bottleneck and ensuring compatibility with downstream processes like LOD generation.
- Improved Workflow: With background processing courtesy of Unity’s Burst and Job systems, the editor remained responsive, even when handling complex operations.
This wasn’t just a quality-of-life improvement—it was a complete transformation of how Full Swing Golf approached course design. By replacing an outdated, unsupported tool with a robust, modern solution, we unlocked new levels of productivity and creative freedom for the entire team.