discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

Circular Logic: a parametric font

HL
Hans L
Sun, Nov 6, 2016 3:08 AM

I've been working on making my own parametric font in OpenSCAD.

It started with an idea to create a logo for my small business.  I had a
certain aesthetic in mind for the characters in this logo.  And I created
some "rules" to define this aesthetic:

  1. It is a monospaced font
  2. stroke-width is constant for all parts of all characters.  It does not
    vary in thickness.
  3. characters can be composed of lines, which are vertical or horizontal,
    but never diagonal.
  4. characters can also be composed of circular arcs.  The radius of any arc
    should be as large as will fit into that character geometry in a consistent
    manner.  Also because of rule 3, arc angles must be multiples of 90degrees

So of course what better name for this parametric font than "Circular Logic"

I wanted to be able to experiment with different character aspect ratios,
and stroke-widths, and It was an interesting challenge to make the geometry
still work with extreme combinations of these parameters.  One of my
favorite things about parametric modeling is when you design something
based on a sort of "normal" or "typical" shape, and then seeing how the
design behaves as parameters are adjusted way past their original intended
range.  Many times I would find sort of logic defects in the geometry, fix
them, tweak parameters more until I break something else, fix that, etc.
But just seeing how the shape evolves through the range of possible
parameters is fascinating to me.

Anyways I'm now at a point where I'm pretty satisfied with the results, and
wanted to share them to see what folks think.  Feel free to use this font
in any designs of your own and let me know if you do!
The characters I have modeled are [A-Z] [a-z] and [0-9]

One of my  attached animations shows smooth transitioning through a variety
of parameter combinations.  This animation a bit early on in my progress,
and some of the character designs have been updated slightly.

Another attached gif shows the effect of using different $fn values for the
characters.  Multiples of 4 work best, and the gif shows iterating through
values of 4,8,12,16,20 and 200 for $fn.
Rendering at $fn=4 was surprising to me and completely changes the (tone?)
of the font while still keeping characters perfectly distinguishable.  This
is like perfect generic metal band font style :)

At $fn=8 the characters are already very representative of the overall
shape compared to fully high res ($fn=200) version.  Its a pretty nice "low
poly" version of the font, which might be nice if model complexity, render
time, etc are a concern.  Moving up from there the font just smooths out a
bit more every iteration.  There's not a lot of noticeable difference
between $fn=20 and 200

I hope you will enjoy. Let me know your thoughts.

Hans

I've been working on making my own parametric font in OpenSCAD. It started with an idea to create a logo for my small business. I had a certain aesthetic in mind for the characters in this logo. And I created some "rules" to define this aesthetic: 1) It is a monospaced font 2) stroke-width is constant for all parts of all characters. It does not vary in thickness. 3) characters can be composed of lines, which are vertical or horizontal, but never diagonal. 4) characters can also be composed of circular arcs. The radius of any arc should be as large as will fit into that character geometry in a consistent manner. Also because of rule 3, arc angles must be multiples of 90degrees So of course what better name for this parametric font than "Circular Logic" I wanted to be able to experiment with different character aspect ratios, and stroke-widths, and It was an interesting challenge to make the geometry still work with extreme combinations of these parameters. One of my favorite things about parametric modeling is when you design something based on a sort of "normal" or "typical" shape, and then seeing how the design behaves as parameters are adjusted way past their original intended range. Many times I would find sort of logic defects in the geometry, fix them, tweak parameters more until I break something else, fix that, etc. But just seeing how the shape evolves through the range of possible parameters is fascinating to me. Anyways I'm now at a point where I'm pretty satisfied with the results, and wanted to share them to see what folks think. Feel free to use this font in any designs of your own and let me know if you do! The characters I have modeled are [A-Z] [a-z] and [0-9] One of my attached animations shows smooth transitioning through a variety of parameter combinations. This animation a bit early on in my progress, and some of the character designs have been updated slightly. Another attached gif shows the effect of using different $fn values for the characters. Multiples of 4 work best, and the gif shows iterating through values of 4,8,12,16,20 and 200 for $fn. Rendering at $fn=4 was surprising to me and completely changes the (tone?) of the font while still keeping characters perfectly distinguishable. This is like perfect generic metal band font style :) At $fn=8 the characters are already very representative of the overall shape compared to fully high res ($fn=200) version. Its a pretty nice "low poly" version of the font, which might be nice if model complexity, render time, etc are a concern. Moving up from there the font just smooths out a bit more every iteration. There's not a lot of noticeable difference between $fn=20 and 200 I hope you will enjoy. Let me know your thoughts. Hans
DM
doug moen
Sun, Nov 6, 2016 11:02 AM

That's really cool.

On Saturday, 5 November 2016, Hans L thehans@gmail.com wrote:

I've been working on making my own parametric font in OpenSCAD.

It started with an idea to create a logo for my small business.  I had a
certain aesthetic in mind for the characters in this logo.  And I created
some "rules" to define this aesthetic:

  1. It is a monospaced font
  2. stroke-width is constant for all parts of all characters.  It does not
    vary in thickness.
  3. characters can be composed of lines, which are vertical or horizontal,
    but never diagonal.
  4. characters can also be composed of circular arcs.  The radius of any
    arc should be as large as will fit into that character geometry in a
    consistent manner.  Also because of rule 3, arc angles must be multiples of
    90degrees

So of course what better name for this parametric font than "Circular
Logic"

I wanted to be able to experiment with different character aspect ratios,
and stroke-widths, and It was an interesting challenge to make the geometry
still work with extreme combinations of these parameters.  One of my
favorite things about parametric modeling is when you design something
based on a sort of "normal" or "typical" shape, and then seeing how the
design behaves as parameters are adjusted way past their original intended
range.  Many times I would find sort of logic defects in the geometry, fix
them, tweak parameters more until I break something else, fix that, etc.
But just seeing how the shape evolves through the range of possible
parameters is fascinating to me.

Anyways I'm now at a point where I'm pretty satisfied with the results,
and wanted to share them to see what folks think.  Feel free to use this
font in any designs of your own and let me know if you do!
The characters I have modeled are [A-Z] [a-z] and [0-9]

One of my  attached animations shows smooth transitioning through a
variety of parameter combinations.  This animation a bit early on in my
progress, and some of the character designs have been updated slightly.

Another attached gif shows the effect of using different $fn values for
the characters.  Multiples of 4 work best, and the gif shows iterating
through values of 4,8,12,16,20 and 200 for $fn.
Rendering at $fn=4 was surprising to me and completely changes the (tone?)
of the font while still keeping characters perfectly distinguishable.  This
is like perfect generic metal band font style :)

At $fn=8 the characters are already very representative of the overall
shape compared to fully high res ($fn=200) version.  Its a pretty nice "low
poly" version of the font, which might be nice if model complexity, render
time, etc are a concern.  Moving up from there the font just smooths out a
bit more every iteration.  There's not a lot of noticeable difference
between $fn=20 and 200

I hope you will enjoy. Let me know your thoughts.

Hans

That's really cool. On Saturday, 5 November 2016, Hans L <thehans@gmail.com> wrote: > I've been working on making my own parametric font in OpenSCAD. > > It started with an idea to create a logo for my small business. I had a > certain aesthetic in mind for the characters in this logo. And I created > some "rules" to define this aesthetic: > 1) It is a monospaced font > 2) stroke-width is constant for all parts of all characters. It does not > vary in thickness. > 3) characters can be composed of lines, which are vertical or horizontal, > but never diagonal. > 4) characters can also be composed of circular arcs. The radius of any > arc should be as large as will fit into that character geometry in a > consistent manner. Also because of rule 3, arc angles must be multiples of > 90degrees > > So of course what better name for this parametric font than "Circular > Logic" > > I wanted to be able to experiment with different character aspect ratios, > and stroke-widths, and It was an interesting challenge to make the geometry > still work with extreme combinations of these parameters. One of my > favorite things about parametric modeling is when you design something > based on a sort of "normal" or "typical" shape, and then seeing how the > design behaves as parameters are adjusted way past their original intended > range. Many times I would find sort of logic defects in the geometry, fix > them, tweak parameters more until I break something else, fix that, etc. > But just seeing how the shape evolves through the range of possible > parameters is fascinating to me. > > Anyways I'm now at a point where I'm pretty satisfied with the results, > and wanted to share them to see what folks think. Feel free to use this > font in any designs of your own and let me know if you do! > The characters I have modeled are [A-Z] [a-z] and [0-9] > > One of my attached animations shows smooth transitioning through a > variety of parameter combinations. This animation a bit early on in my > progress, and some of the character designs have been updated slightly. > > Another attached gif shows the effect of using different $fn values for > the characters. Multiples of 4 work best, and the gif shows iterating > through values of 4,8,12,16,20 and 200 for $fn. > Rendering at $fn=4 was surprising to me and completely changes the (tone?) > of the font while still keeping characters perfectly distinguishable. This > is like perfect generic metal band font style :) > > At $fn=8 the characters are already very representative of the overall > shape compared to fully high res ($fn=200) version. Its a pretty nice "low > poly" version of the font, which might be nice if model complexity, render > time, etc are a concern. Moving up from there the font just smooths out a > bit more every iteration. There's not a lot of noticeable difference > between $fn=20 and 200 > > I hope you will enjoy. Let me know your thoughts. > > Hans > > >
R
runsun
Sun, Nov 6, 2016 5:47 PM

Super cool. I like it. And you are right, at low resolution, its tone/style
changes, giving out a totally different flavor.

One minor not-so-important suggestion: for the number "5", maybe make the
middle-left turn to a square, 90-deg turn but not a circle.


$  Runsun Pan, PhD $ libs: doctest , faces ( git ), offline doc ( git ), runscad.py ( 2 , git ), synwrite ( 2 );   $ tips: hash ( 2 ), matrix ( 2 , 3 ), sweep ( 2 , 3 ), var ( 2 ), lerp , animation ( gif , prodVid , animlib ), precision ( 2 ), xl-control , type , rounded polygon , chfont , tailRecur ( 2, 3 ), isosphere ( 2 ), area , vol/center , RGB , CurvedImg , tests ( 2 ); $ Apps: rollApp , blockscad , openjscad , on AWS ( pdf )

View this message in context: http://forum.openscad.org/Circular-Logic-a-parametric-font-tp18955p18959.html
Sent from the OpenSCAD mailing list archive at Nabble.com.

Super cool. I like it. And you are right, at low resolution, its tone/style changes, giving out a totally different flavor. One minor not-so-important suggestion: for the number "5", maybe make the middle-left turn to a square, 90-deg turn but not a circle. ----- $ Runsun Pan, PhD $ libs: doctest , faces ( git ), offline doc ( git ), runscad.py ( 2 , git ), synwrite ( 2 ); &nbsp; $ tips: hash ( 2 ), matrix ( 2 , 3 ), sweep ( 2 , 3 ), var ( 2 ), lerp , animation ( gif , prodVid , animlib ), precision ( 2 ), xl-control , type , rounded polygon , chfont , tailRecur ( 2, 3 ), isosphere ( 2 ), area , vol/center , RGB , CurvedImg , tests ( 2 ); $ Apps: rollApp , blockscad , openjscad , on AWS ( pdf ) -- View this message in context: http://forum.openscad.org/Circular-Logic-a-parametric-font-tp18955p18959.html Sent from the OpenSCAD mailing list archive at Nabble.com.
HL
Hans L
Sat, Feb 4, 2017 11:00 PM

I finally got around to posting the font on thingiverse.  I think
there were some minor changes, but not a whole lot different since my
previous post about it, but here it is anyways:
http://www.thingiverse.com/thing:2067806

Also here's the first part I created that incorporates the font:
http://www.thingiverse.com/thing:2069750
Its a fairly simple part, a "salt cellar", with the font on the lid.

If anyone uses the font in their own designs, I would love to see them.

On Sun, Nov 6, 2016 at 11:47 AM, runsun runsun@gmail.com wrote:

Super cool. I like it. And you are right, at low resolution, its tone/style
changes, giving out a totally different flavor.

One minor not-so-important suggestion: for the number "5", maybe make the
middle-left turn to a square, 90-deg turn but not a circle.


$  Runsun Pan, PhD $ libs: doctest , faces ( git ), offline doc ( git ), runscad.py ( 2 , git ), synwrite ( 2 );   $ tips: hash ( 2 ), matrix ( 2 , 3 ), sweep ( 2 , 3 ), var ( 2 ), lerp , animation ( gif , prodVid , animlib ), precision ( 2 ), xl-control , type , rounded polygon , chfont , tailRecur ( 2, 3 ), isosphere ( 2 ), area , vol/center , RGB , CurvedImg , tests ( 2 ); $ Apps: rollApp , blockscad , openjscad , on AWS ( pdf )

View this message in context: http://forum.openscad.org/Circular-Logic-a-parametric-font-tp18955p18959.html
Sent from the OpenSCAD mailing list archive at Nabble.com.


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

I finally got around to posting the font on thingiverse. I think there were some minor changes, but not a whole lot different since my previous post about it, but here it is anyways: http://www.thingiverse.com/thing:2067806 Also here's the first part I created that incorporates the font: http://www.thingiverse.com/thing:2069750 Its a fairly simple part, a "salt cellar", with the font on the lid. If anyone uses the font in their own designs, I would love to see them. On Sun, Nov 6, 2016 at 11:47 AM, runsun <runsun@gmail.com> wrote: > Super cool. I like it. And you are right, at low resolution, its tone/style > changes, giving out a totally different flavor. > > One minor not-so-important suggestion: for the number "5", maybe make the > middle-left turn to a square, 90-deg turn but not a circle. > > > > ----- > > $ Runsun Pan, PhD $ libs: doctest , faces ( git ), offline doc ( git ), runscad.py ( 2 , git ), synwrite ( 2 ); &nbsp; $ tips: hash ( 2 ), matrix ( 2 , 3 ), sweep ( 2 , 3 ), var ( 2 ), lerp , animation ( gif , prodVid , animlib ), precision ( 2 ), xl-control , type , rounded polygon , chfont , tailRecur ( 2, 3 ), isosphere ( 2 ), area , vol/center , RGB , CurvedImg , tests ( 2 ); $ Apps: rollApp , blockscad , openjscad , on AWS ( pdf ) > -- > View this message in context: http://forum.openscad.org/Circular-Logic-a-parametric-font-tp18955p18959.html > Sent from the OpenSCAD mailing list archive at Nabble.com. > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org