There has been a small update on handling the apex points. The current implementation allows to offset the «gap» between two connecting diagonal lines lines as well as allowing to decrease the stroke weight when the two connect. This test implementation raises a number of design questions. (1) If the gap is increased, should the neighbouring lines get steeper or should the whole letter be wider? (2) It would make sense to decrease the stroke weight based on the angle or steepness of the connecting lines but still allow the designer to have somewhat control over it, by choosing a value – which unfortunately results in this arbitrary number that doesn’t mean anything measurable but things change when you twist it. Not exactly a type designers dream.
Generating presets is a quick way for me to choose my next challenge, by reviewing what haunts me the most.
Apart from addressing some rendering bugs, my main focus is on improving stroke compensation and curve handling.
(But also I am finally able to load and save fonts local storage, including effects…)
#parametrictype #typedesign #typography #type #graphicdesign #webdesign #challenge #computed #automation
Agency vs. automation: This is concept sketch for automated, situation-based weight compensation under supervision. A gradient-based controller gives the designers agency over their intensions by instruction the algorithm on how to compensate for strokes based on their location within tight spaces, such as in two-storey lowercase letters.
#parametrictype #typedesign #typography #type #fonttech #designsystems #code #concept
Getting back to this project after a longer break and wrapping my head around where things are. This is a new high-level algorithm diagram describing the process each glyph goes trough. The graphic uses a recent version of the tools default font, but squeezed into a monospace font.
#parametrictype #typography #typedesign #typetools #software #code #monospace
Interacting with parameters organised in logical groups with sketches of the graphical interfaced alongside knops to get a better sense of the type features that will be affected by your actions. (Of course the algorithm is bugging around as I am going through my list of bugs…)
#typedesign #parametrictype #typography #gui #graphical #graphicdesign #algorithmicfonts #math #vector
Lately, I’ve been working on every part of the project—from refining the algorithm and interface to polishing the documentation. Along the way, I’ve developed sub-tools and interfaces for various tasks, including performance measurement (with the goal of getting as close to real-time rendering as possible).
As the tool grows more advanced, optimising render times has become a daily challenge. That’s led to some fine-tuning here and there. I’m looking forward to updating the demo in the coming weeks with improvements to the parameter controls and further algorithmic shape refinements.
And yes, I know I keep saying this, but the fonts it spits out are getting more satisfying!
#parametrictype #typedesign #graphicdesign #code #gui #ui #algorithm
My goal was to generate a font for text, so I developed an algorithmic concept for spacing and kerning. Initially, the calculations were very slow, but I will document this in more detail once I have made some further progress. At the same time, I have been working on improving and restructuring the core algorithm (blueprint > skeleton > outline).
This has made the glyph generation process much faster and the curves smoother and less unpredictable, as well as making the merging of shapes (Boolean operations) faster and more precise.
In this demo, I am testing the generation of a font family with different weights, as well as extended, slanted, and monospaced styles.
In theory, each parameter could be adjusted for each style, but for now, I am interpolating between two and ten values.
#parametrictype #typedesign #typography #vector #code #algorithmic #design #type
#
While I should have been fixing some bugs in the current demo version, I was playing around with the Turing pattern.
I know it’s a classic, but let’s see where it goes...
Also: I’m sort of looking for a well performing pseudo-random (same params = same putcome) implementation of Poisson disc sampling. Do you have a hint for me?
Basically just to get an even - and seemingly random - distribution of points inside the glyph outlines.
It is not primarily for visual appearance, but to be able to create variable fonts with it.
.
#parametrictype #typedesign #typography #parametric #code #turing #pattern #programing #math #kinetictypography #generative #javascript#
I have (again) roughly implemented a new letter building algorithm, which works 99.9% of the time for some letters. It has been a very algebraic couple of weeks, but I am looking forward to getting more visual results by testing the new features in the coming weeks. I will also be giving a demo and workshop at Automatic Type Design 3 in Nancy, France next month, so it will be a great challenge to try it out there.
In this post I am playing with the old Ink-trap module, applying it to both inner and outer corners at the same time, resulting in spikes as well.
I had already done some tests with Glyph A in previous posts, but it was a different approach to get to the final outline step by step. So the scheme in my last post is already outdated when it comes to the new script for letter creation, after the stroke offsetting. Sometimes my process takes big detours - maybe because it’s unavoidable, or maybe because I don’t think it through enough before jumping in - but it works for me.
#parametrictype #typedesign #typography #parametric #code #programing #math #kinetictypography #generative #javascript# #vector
This is a step-by-step view of the algorithm used to create the basic outline shape, with the aim of removing intersections and achieving a unified shape - while retaining parametric features and information about each node. It now works well with straight lines.
I'm still working on achieving accurate and efficient Bezier intersections, including intersections beyond the segments themselves. As you can see in step 3, the offset lines aren't directly connected. In step 4, the points used to define the outline are often based on intersections that go beyond the adjacent line segments, which is also true for curves.
I recently looked into the mathematics of Bezier curves (oups…) and discovered that, according to their mathematical description, Bezier paths continue in both directions beyond their end points. However, this behaviour doesn't directly match what's needed for line offsetting. This is particularly challenging around curved endpoints such as the letters 'C' and 'S'. But I am getting optimistic to be able to share some results soon!
#parametrictype #typedesign #math
In this experiment, I’m exploring how organic shapes, such as the growth patterns of fungi or plants, can take over letters. Here’s the letter „C“ rendered with over 1000 nodes in Glyphsapp, using procedural techniques to blur the line between nature and type, chaos and control. Common techniques such as Perlin noise and angle-controlled growth simulations were used.