When Guilloché Meets CAD — Part II: Building a Parametric Guilloché Generator with Python and AI

The question at the end of Part I was simple:

What if I built the Guilloché model with Python instead?

I am not a professional programmer. However, in 2026, when we want to build a small and highly specialised tool for a particular workflow, AI-assisted coding has become a practical way to turn a technical idea into a working prototype.

This was how I began developing my own parametric Guilloché Generator.

I first explained to ChatGPT how Guilloché is produced in the physical world: how the workpiece rotates, how the path changes periodically, how the cutting tool creates a V-shaped groove, and which parameters should influence the resulting pattern.

I then asked it to convert those manufacturing principles into mathematical equations and executable Python code.

The program was not completed through a single prompt.

The development process was closer to iterative AI vibe coding. I was responsible for explaining the craft, evaluating the geometric results, identifying problems and introducing new constraints. AI helped translate these ideas into a working software structure and revise the code after each round of testing.

The earliest version could only draw a simple two-dimensional path.

I gradually introduced parameters such as Diameter, Amplitude, Frequency, Phase, Pattern Count, Groove Width and Groove Depth.

Later, I added a user interface so that the values could be adjusted without directly editing the code. I also added a Preview window, allowing the basic path and overall pattern to be inspected before generating a high-resolution model.

Eventually, I asked the program to project the pattern onto a simply defined domed surface.

If the dial radius is (a), and the height difference between the centre and the outer edge is (h), a simplified parabolic dome can be described as:

$\rho=\sqrt{x^2+y^2}$

$z_{\text{base}}(\rho)=h\left(1-\frac{\rho^2}{a^2}\right)$

The program first calculates the flat (x) and (y) coordinates from the Guilloché equation. It then calculates the radial distance (\rho) from the centre and uses this value to determine the corresponding dome height.

Conceptually, if the shortest distance between a mesh vertex and the engraved path is (D), the groove width and depth can be used to determine how far that point should move downward.

A simplified V-shaped groove can be written as:

$z=z_{\text{base}}-d\max\left(0,1-\frac{D}{w}\right)$

Here, (d) represents the engraving depth, while (w) represents half of the groove width.

The program then connects the calculated vertices into a large number of triangular faces, creating a 3D mesh that can be exported as OBJ or STL.

It can also export DXF, SVG and PNG height maps for CAD reference, vector paths, rendering and future manufacturing experiments.

In other words, I am no longer asking the CAD software to understand and calculate one hundred Guilloché cuts.

Instead, I complete the repetitive calculations outside the CAD environment and import the already-generated result.

What Did This Tool Actually Change?

The most immediate benefit of the Guilloché Generator is design efficiency.

I can change the frequency, amplitude, line count or dome height within seconds, generate a new version, and import it into CAD or rendering software to evaluate how it works on the dial.

Previously, comparing two Guilloché patterns might have required two separate collections of sketches, sweeps and pattern features.

Now, I only need to change a small number of values.

However, the value of the tool goes beyond producing attractive patterns more quickly.

Because every pattern is generated from clearly defined and controllable parameters, it allows me to ask questions that are closer to formal research:

Does increasing the number of lines make a dial appear more refined while reducing its sense of calmness?

Does a higher level of rotational symmetry make the pattern feel more classical, formal or orderly?

Does a larger amplitude increase the sense of movement and ornamentation, or does it make the surface appear visually chaotic?

How do groove width, groove depth and dome curvature interact to influence light reflection and the perceived material quality of the dial?

From Parametric Design to Kansei Engineering

These questions made me realise that the Guilloché Generator may be more than a modeling tool.

It could also become an experimental tool for Kansei Engineering research.

The central idea of Kansei Engineering is to translate users’ impressions, feelings and emotional responses into design and engineering elements that can be measured and controlled.

In other words, it attempts to establish relationships between subjective impressions such as “refined,” “calm,” “classical,” “modern” or “luxurious,” and objective characteristics such as dimensions, proportions, materials and geometry.

With a traditional Guilloché design process, every experimental sample would require considerable manual modification, making it difficult to change only one geometric factor at a time.

With a parametric generator, the dial diameter, material, colour and lighting conditions can remain unchanged while only one selected variable is modified.

A structured series of patterns could then be generated and evaluated using semantic differential scales.

Participants might rate each design between pairs of terms such as:

refined and rough, calm and dynamic, classical and modern, formal and casual, luxurious and industrial.

Existing research into product surfaces has already explored quantitative relationships between colour, texture, gloss, roughness and human visual, tactile and emotional responses.

Research has also suggested that the expectations people form by looking at a surface may not always match their impressions after physically touching or handling it.

This is especially relevant to Guilloché.

The appeal of Guilloché does not come from geometry alone. It also comes from the way microscopic grooves capture and reflect light.

The same pattern may produce completely different impressions when displayed on a computer screen, engraved into polished brass, plated with another metal, or covered with transparent lacquer.

A possible next stage would therefore be to produce the same set of patterns in two forms:

a group of computer-rendered images, and a group of physically manufactured dial or metal samples.

Participants’ Kansei evaluations of the two formats could then be compared.

Can computer rendering accurately predict the perceived refinement, classical character or luxury of a physical Guilloché surface?

Which impressions can be predicted through geometry and rendering, and which impressions only emerge through real materials, lighting conditions and viewing angles?

This comparison could help validate the reliability of computer visualization and also reveal how much designers should depend on rendered images when making aesthetic decisions during the early stages of product development.

A Generator Is Not the Same as Real Guilloché

I do not believe that a Python generator can replace the work of a skilled Guilloché craftsman.

A mathematical model can define an ideal engraving path, but the physical result is still influenced by the shape of the tool, cutting depth, material hardness, machine rigidity, surface finishing, plating, lacquer and the operating technique of the craftsman.

A 3D rendering can only reproduce the material and lighting conditions that have been defined within the software.

The purpose of this tool is therefore not to prove that a computer can completely reproduce traditional craftsmanship.

Its purpose is to allow different design directions to be explored systematically before committing to physical prototypes.

It turns patterns that would otherwise be compared mainly through experience and intuition into a set of design parameters that can be modified, recorded, reproduced and tested.

Conclusion: When Aesthetics Become Computable

Looking back, this entire process began because CAD software could not efficiently model a Guilloché surface.

That limitation forced me to move from CAD modeling to mathematical curves, and from mathematical curves to Python, mesh modeling, AI vibe coding and Kansei Engineering.

My engineering background once led me to believe that everything should be accurate and precisely defined.

Over time, I began to understand that aesthetics can be rational, but they can also contain qualities that cannot be fully explained through rationality alone.

Parametric design is not intended to eliminate subjective or irrational responses.

Instead, it gives us a method for studying how those responses are created.

For me, the most valuable feature of this Guilloché Generator is not the number of complex patterns it can produce.

Its real value is that it transforms a question such as:

“Which one looks better?”

into a more researchable question:

“Which geometric parameter changed the way we feel about it?”

Once an aesthetic language can be translated into parameters, it is no longer only a decorative pattern.

It begins to become a system that can be designed, tested and studied.


Comments