Quantcast

Circular Logic: a parametric font

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Circular Logic: a parametric font

thehans
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



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Screenshot from 2016-11-05 20:25:09.png (34K) Download Attachment
font2.gif (1M) Download Attachment
font_resolution.gif (108K) Download Attachment
CircularLogicFontRewrite2.scad (24K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Circular Logic: a parametric font

doug.moen
That's really cool.

On Saturday, 5 November 2016, Hans L <[hidden email]> 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



_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Circular Logic: a parametric font

runsun
In reply to this post by thehans
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:Collection of tips on github
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Circular Logic: a parametric font

thehans
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 <[hidden email]> 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
> [hidden email]
> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

_______________________________________________
OpenSCAD mailing list
[hidden email]
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
Loading...