work / Product
← All projectsProduct
Building Garden Paving Planner
From domain rules and geometry to a usable desktop application for real paving designs.

01 / About this project
When a simple pattern becomes a complex problem
At first glance, designing a paved patio seems straightforward. Choose a tile, select a pattern and fill an area. But once real dimensions, irregular boundaries, obstacles and cutting requirements enter the picture, the problem becomes considerably more interesting.
Garden Paving Planner began as a software project to explore how these real-world constraints could be translated into an intuitive design tool.
The challenge wasn't simply to draw paving tiles on a screen. It was to create a model that understands what those tiles actually represent.
Building around real geometry
Instead of using repeated textures to simulate paving, Garden Paving Planner treats each tile as an individual geometric object with its own dimensions and position.
This distinction matters. A visually attractive layout is not necessarily a practical one. When a pattern reaches the edge of a patio, individual tiles may need to be cut. Changing the orientation or starting point of a pattern can significantly affect the final layout.
By building the application around deterministic geometry, these relationships can be calculated rather than estimated visually.
The application is developed in Python using PySide6 for its desktop interface. Project data is stored in portable JSON files, supported by a reusable library of paving products and tile definitions.
From calculation to usability
One of the most interesting aspects of the project is connecting a technically precise calculation model to an interface that people can actually use.
Complexity belongs inside the software, not in front of the user.
The goal is to let someone experiment with a paving layout without needing to understand the geometry and calculations behind it.
The project also creates opportunities to explore more advanced problems: comparing different layouts, minimizing awkward cuts, reducing material waste and eventually producing reliable purchasing and installation information.
These remain areas of ongoing development rather than promises of completed functionality.
More than a paving application
For me, Garden Paving Planner demonstrates a particular approach to software development: understand the real problem, model its rules carefully and build an interface that makes those rules useful.
It brings together geometry, data modelling, user-interface design and practical product development.
What started as a specialized paving problem has become an exercise in turning complex domain knowledge into understandable, usable software.
Technology & expertise
Python / PySide6 / geometry