Spiro 0.01 release

raph
5.May.2007 1.19am
raph's picture

Typophiles,

After years of talking about a spiral-based curve editing tool, the provisional patent application is filed, and I've made an unpolished release of the stuff I have now. Brave souls can check it out to see what I've been talking about. Others among you may choose to wait until there's a release that's not quite as spartan.

I made a Mac build, but loading and saving is more or less not implemented (you can kinda make it work using the commandline, but it really needs a file dialog). Background images (for tracing) are not supported yet either.

The solver has also not been tuned for numerical robustness, so when you play around with it, you'll often see it fail to solve the spline. It does work reliably when the pattern plate represents a real font shape rather than random points, though.

It's free software (GPL), and patches for improvements are greatly appreciated.

http://levien.com/spiro/

Toby
5.May.2007 3.17am
Toby's picture

Great stuff, congrats! I see this as a better, more useful alternative to the sketch mode in Fontlab.


clauses
5.May.2007 9.04am
clauses's picture

Great stuff! Should speed up a 'start designing directly on the computer' sort of a work process. Will it be compatible with UFO's or Fontlab files?


guifa
5.May.2007 10.30am
guifa's picture

Great program. I did some quick sketching to figure out how it works. However on the Mac version I'm getting a few anomalies, though I'm not sure if it's Mac-specific or not (though they are pretty. They occur when I'm dragging points around, and and in drag randomly at certain points the design will "expload" into some of the forms you see below. If you need any help with the Mac OS X programming side I'd be willing to help out if you'd like.




«El futuro es una línea tan fina que apenas nos damos cuenta de pintarla nosotros mismos». (La Luz Oscura, por Javier Guerrero)


hrant
5.May.2007 11.03am
hrant's picture

Pretty - but letters, please!

hhp


James Puckett
5.May.2007 11.20am
James Puckett's picture

I would so love to see Adobe license this stuff for Illustrator CS 5.


sgh
5.May.2007 11.24am
sgh's picture

Congratulations on your release, Raph! Good luck with writing your dissertation---I look forward to reading the math behind these curves.

You might also want to mention on your web page that ppedit compiles on Linux (and from looking at the Makefile, probably Windows, too). For those who don't want to compile ppedit to try it themselves, let me describe the basics:

Curves are drawn with curve, corner, and tangent points as normal, but there are only on-curve points---no off-curve points. The shape of the interpolated spline can be changed by adding more points to the curve and then moving them. Moving a point added to a Bezier curve is a pain, because then all of the off-curve control points have to be recalculated to make the curve smooth. However, Raph's program recalculates the spline to be smooth as you move the point (this is made easier by using the Cornu spirals, from my understanding), so that you always have a smooth curve. It's actually more intuitive than I thought it would be, but it still takes some getting used to.


raph
5.May.2007 11.57am
raph's picture

Thanks for all the positive feedback!

@guifa: if you want to try your hand at adding open/save dialogs, that would be appreciated (currently, Apple-S just saves into a file called "plate"). Just make sure any Mac-specific code is bracketed by #ifdef X3_CARBON, so it doesn't break the Linux build.

The solver is known not to be numerically stable when the angles get big. If you stick with small angles, those pretty but unuseful spirals won't happen. I'm working on a more stable solver, but it's not ready yet. This stuff is rocket science, literally - the math I'm using is based on the calculus of variations, which has applications in computing optimal trajectories for spacecraft.

@hrant: Inconsolata was designed entirely using these spirals, as was Christian Gothic and pretty much all of my work-in-progress for the last year or so. The .plate files for Inconsolata are all posted.

On the Mac, you can open a .plate file by going to the directory containing ppedit.app, and typing "./ppedit.app/Contents/MacOS/ppedit u.plate". Obviously, a real Open dialog would be much more useful.

@sgh: the Windows port is started, but far from complete. I probably won't finish it myself, because I've lately become more interested in porting the code to a web app.

@clauses: I'm not able (due to time constraints) to do any of that kind of integration work myself, but would be happy to help others do so. In the case of Fontlab compatibility, for you to be able to edit interactively inside the app, they'd probably need to license the technology. A plug-in or a batch-mode converter could probably be done as a separate module, though, which would be compatible with the free GPL licensing terms.

And there's been talk of using the UFO format as a container for the curves, similar to the .plate file but in XML. (It's said that XML is for people who feel that Lisp doesn't have enough parentheses).

@jpad: I would love that, of course.

Because I'm starting at Google in a couple weeks, I won't be beating the bushes myself to push this technology out into the world. To a large extent, I'm "throwing the technology over the fence." It's an opportunity to see what the community can do with it, both in the free software world (it's being demoed today at LGM in Montreal), and whether users can generate enough interest and excitement to spur proprietary vendors to pony up for a license. It is my experience that companies tend to be extremely reluctant to do such things. I'd like to be proven wrong, but that's the main reason I'm taking a job in the advertising industry rather than trying to make a go on my own with technology licensing.


James Puckett
5.May.2007 12.28pm
James Puckett's picture

Well, I hope the people at inkscape see your work and consider adding it to theirs. Good luck at Google.


guifa
5.May.2007 2.14pm
guifa's picture

I could see a lot of nice things that could be in an OS X specific build. I'll take a look at the code when I get a chance and see if there's a way I can convert (or maybe it's already being done) the drawing view into an NSView. Once that's done, it seems you basically have everything you need to make a really sharp looking Mac app.

And hrant: those are too letters ... for my ... uh... dingbat font.

«El futuro es una línea tan fina que apenas nos damos cuenta de pintarla nosotros mismos». (La Luz Oscura, por Javier Guerrero)


clauses
5.May.2007 3.59pm
clauses's picture

Oh God I'd wish I could program. These new kinds of approaches to designing digital type on the terms of a digital process are needed. The way the hand could draw the 'right' curves on paper is lost in the Bézier approach. Combine what you are doing with something like Metafont and we would have something truly mindblowing. Ahh dreams.


abattis
6.May.2007 12.49am
abattis's picture

@clauses: It is compatible with FontForge's SFD, and as Fontforge recently added python scripting and native UFO support, you should be able to pipe it through FontForge to UFO and to FontLab. Why you'd want FontLab at all is a mystery to me, though, since Spiro and FontForge is more than capable - just look at Inconsolata :-) Also, regarding MetaFont, I figure the way it goes directly from code to bitmaps is its biggest problem. If it went to (Spiro) outlines, that would allow a "dreamweaver" code/design view and workflow.

@guifa: Mac OS X only features would be a shame - I hope it will remain as cross platform as possible

@jpad: I was discussing Inkscape integration with the Inkscape developers at the LGM today and its definitely going in, although on a medium time frame - as part of the existing lib2geom efforts.


guifa
6.May.2007 1.03am
guifa's picture

I didn't mean OS X only features per se. Only that I think it would be possible to encapsulate the spiral view into an NSView, thus making it no different to Interface Builder than an NSTextField. Again, I've not had a look at the source yet (I do plan on it tho) and so I'm not sure how separate you've got the different parts of the app, although if you're heading off to Google I'd imagine it's nicely modularised.

There are menu options for changing betwixt corner and curve points, etc. With those hooks, it could definitely open up some interesting possibilities if it can be made into a framework, which would still (I'd think) remain quite platform independent as well as make it more accessible to other developers for any number of other applications besides just font-design. If I'm rambling a bit excuse me, it is cinco de mayo (well, now it's seis de mayo).

«El futuro es una línea tan fina que apenas nos damos cuenta de pintarla nosotros mismos». (La Luz Oscura, por Javier Guerrero)


hrant
6.May.2007 6.24am
hrant's picture

> Why you’d want FontLab at all is a mystery to me

Come on.

> regarding MetaFont, I figure the way it goes directly
> from code to bitmaps is its biggest problem.

It's not a problem if you see it for what it is: a combination of glyph descriptor and RIP. But a very real -and somewhat related- problem of Metafont is its foundation on the theory that letters should have skeletons. This is a naive, primitive and fatal fallacy, and one at the heart of chirography as well. It's the reason Computer Modern looks so crappy.

hhp


raph
6.May.2007 8.29am
raph's picture

@guifa: It's an HIView, which is almost the same thing as an NSView.

You'll find that the code is factored to be quite modular, but perhaps not quite in the way that you'd expect. Writing truly cross-platform apps is hard. If I didn't care about that, I'd have done this as a Cocoa app, in Objective C, using NIB's. As it is, the UI is built procedurally, and there's a layer (x3) which translates that into the code for Carbon or Gtk+2. (it could do Windows too; that's a Small Matter of Programming).

So, for example, the menu item for "delete point" is created thus:

x3menuitem(menu, "Delete Point", "delp", "<cmd>d");

The point is that you don't have to do redo all the UI work for each platform. An earlier version (see carbon_main.c) did load a NIB, and that was ok, but I like it better the way it is now.

@abattis: It is compatible with FontForge’s SFD

Not really. There's a batch-mode converter that spits out .sfd files. It's certainly doable to write a batch-mode converter for (cubic Bezier flavor) UFO's, or whatever FontLab accepts most natively. Given that FontLab is Python-scriptable, it should also be quite feasible to write a non-interactive import plugin that can be selected from the UI. In other words, an "import spiro plate" menu item.

There are different levels of compatibility. Batch-mode conversion is the lowest, interactive editing with lossless round-trip is the highest. If people seriously want to use these tools in production, anything less than that is a time-waster.

And as for FontForge, it kinda works for me, but there are lots of features of FontLab I miss, like stroke offset that isn't horribly buggy, Python scripting, a sane UI for OpenType contextual programming, etc. I've also had to fix a few bugs in it. Fortunately, because I am a rocket scientist, I can do that, but for most type designers, I think the experience will be less than fulfilling.

@hrant: problem of Metafont is its foundation on the theory that letters should have skeletons.

Metafont doesn't force you into that mode. The Computer Modern fonts are all defined as strokes, but AMS Euler is done more or less using the same technology as Adobe Type 1. Of course, Euler doesn't have any of the optical scaling or variation features either.

@clauses: The real power of Spiro comes out when you combine the spline fitter with techniques for variation. I have some ideas on this, which I will write up soon. My experiments thus far have been very encouraging, suggesting that it will be much easier to use than Multiple Master technology. Here's an experiment I did with linear interpolation of the control points to blend a weight axis:

The advantage of this technique is that all of the blends are guaranteed to have smooth curvature too. Using Beziers, in the general case, there's no guarantee of smoothness of any kind.


hrant
6.May.2007 8.52am
hrant's picture

Metafont does support outlining and not just expanded strokes, but the only real reason to use Metafont is its parametric abilities, and (please correct me if I'm wrong) these only work with strokes. What would be amazing is if somehow we could use parametrics with outlines; even more amazing would be a GUI for that!

The variation angle you mention seems very interesting, although
I don't get exactly why spirals would be better at it than beziers.

> lossless round-trip

Do you really mean that?
1) I thought it can't be lossless.
2) It really only has to be one-way to be sufficiently useful.

hhp


sgh
6.May.2007 11.38am
sgh's picture

@hrant: Metafont does support outlining and not just expanded strokes, but the only real reason to use Metafont is its parametric abilities, and (please correct me if I’m wrong) these only work with strokes.

MetaPost (essentially MetaFont for Postscript) supports outlines, and of course since everything is scriptable, parametric abilities are available to work with strokes. MetaType1 is a set of MetaPost macros that makes it easy to make a CFF-based font (Type1 or CFF-flavored OTF). My font Aurulent Sans is being developed using MetaType1. The use of a weight parameter can be seen when comparing the regular and bold weights.

What would be amazing is if somehow we could use parametrics with outlines; even more amazing would be a GUI for that!

The ability to script is much more powerful than just the parametrics, and GUIs aren't very good for representing scripts. If you're just interested in the parametrics, then it might be possible to represent them graphically, but here the main problem is that the dimension of the parameter space is probably too high to represent visually in a meaningful form.


hrant
6.May.2007 6.01pm
hrant's picture

> parametric abilities are available to work with strokes.

So has anybody designed a MetaPost outline font where the x-height is parametric?

> Aurulent Sans ... weight parameter

It's nice to see such an effort. The question is (and this might be difficult to answer) was it worth the effort, compared to a "plain" interpolation setup in FontLab?

> the dimension of the parameter space is probably too high to represent visually

Maybe I'm not getting you, but for a font that's meant
to be read the parameters can't really stray too far...

> The ability to script is much more powerful than just the parametrics

But FontLab has the former, but not the latter,
so the valuable sort of power is in the latter.

hhp


rosaiani
6.May.2007 8.45pm
rosaiani's picture

I like this a lot, this should be a great option to Bezier editing, hopefully it will make my s (no pun intended) look better!
Congratulations, and I think we are in front of the next Pierre Bezier right here...
Very honored cheers
Rodrigo


abattis
6.May.2007 10.31pm
abattis's picture

@Raph: And as for FontForge, it kinda works for me, but there are lots of features of FontLab I miss, like stroke offset that isn’t horribly buggy, Python scripting, a sane UI for OpenType contextual programming

Python scripting got added to FontForge last week, along with a total rework of OpenType features and lookups.


raph
6.May.2007 11.41pm
raph's picture

@abattis: Python scripting got added to FontForge last week

That's seriously cool news. I can still imagine that most professional type designers would rather use FontLab though.

@hrant: > the dimension of the parameter space is probably too high to represent visually

Computer Modern has something on the order of 60 parameters for things ranging from the obvious ascender/descender height to more subtle things like the parameters for the serifs. That's a very high dimensionality of the parameter space, even if the amount of the change is subtle.

The key to making variation work for people who don't have advanced computer science degrees is to keep the number of dimensions down. Here's an outline of my ideas for that:

1. For optical scaling, use stroke offset for the bulk of the effect, with a little optional squooshing.

2. For things like ascender and descender lengths, allow points to be put on frames which can move independently of the main em. So, then, to lengthen descenders, pull the descender frame (global to the font) down.

3. For everything else, do interpolation. My gut feeling is that 2-dimensional interpolation (the corners of a quadrilateral) is the most that is intuitive to work with, and, if you can keep it to one, that's even better.

The number of active frames in any one glyph should be no more than three or so. The main thing interpolation is used for is weight (like the above image).

Also note that one of the most important aspects of optical scaling is the spacing and kerning. That can probably be done using simple interpolation between a "big" and a "little" size.

@rosaini: Thanks! Nice spirals in your avatar.


sgh
7.May.2007 1.21am
sgh's picture

@hrant: So has anybody designed a MetaPost outline font where the x-height is parametric?

x-height is a parameter in Aurulent Sans, and I imagine it is as well in other MetaType1-designed fonts, such as Antykwa Toruńska, Antykwa Półtawskiego, Kurier, and Iwona.

The question is (and this might be difficult to answer) was it worth the effort, compared to a “plain” interpolation setup in FontLab?

To me, scripting the outline of a glyph is MUCH easier than drawing it graphically. I find it much easier to say "Put point A here. Put point B here. Put point C here. Put point D 1/3 of the way between B and C. Draw a smooth curve from A to D to E, etc". That way I don't have to worry about whether the curve is smooth or not, where to put control points, etc. (Well, that's a bit of lie, often I need to give MetaType1 a little bit more help, but not too often.) And if the width changes, or the x-height changes, then the position of point A, etc is automatically recalculated when the scripts are run again.

The ability to script is much more powerful than just the parametrics

But FontLab has the former, but not the latter,
so the valuable sort of power is in the latter.

I have never used FontLab, so I don't know its scripting language. However, based on your comment, it sounds like it is not as powerful as MetaType1. Can you do the type of outline construction I described above? The parametric power comes from using the parameters in the construction. Of course, it is also (somewhat) difficult to create construction scripts that capture parameters. See this discussion and this discussion for thoughts on why a more parametric approach has not been more frequently used.


hrant
7.May.2007 7.22am
hrant's picture

> That’s a very high dimensionality of the parameter space

OK. Was that what Stephen was talking about? Also: assuming
the parameters don't interact (too much) couldn't one decide
to display/manipulate one or two at a time?

> x-height is a parameter in Aurulent Sans

Could we see how [well] it works out?

> based on your comment, it sounds like it is not as powerful as MetaType1.

What comment?
FontLab's scripting is Python, and everybody says it's plenty powerful.

What would be nice is to fold in parametric design.

> See this discussion and this discussion

The two links are the same.

hhp


sgh
7.May.2007 7.53am
sgh's picture

@hrant: Was that what Stephen was talking about? (regarding high dimensionality)

Yes.

sgh> based on your comment, it sounds like it is not as powerful as MetaType1.

hrant> What comment?
FontLab’s scripting is Python, and everybody says it’s plenty powerful.

The comment I was referring to was:

sgh> The ability to script is much more powerful than just the parametrics

hrant> But FontLab has the former, but not the latter,
so the valuable sort of power is in the latter.

You seem to be saying that parametric design cannot be done with FontLab's scripting tools. As I mentioned, I have never used FontLab, so I have no idea what the actual capability is. Just because FontLab uses Python, though, does not mean that the FontLab Python interface allows the needed operations. Possibly more importantly, is whether the interface makes it easy to design glyphs parametrically.

Here's an easy test for someone who knows Python scripting in FontLab: given the parameters of width, cap height, left and right side-bearing, vertical stroke width, and horizontal stroke width, draw a sans serif uppercase H. Then draw an uppercase O. If this can be done easily, then FontLab scripting has the potential for parametric design.

The two links are the same.

Oops. The two links should have been this discussion and this discussion.


sgh
7.May.2007 7.56am
sgh's picture

sgh> x-height is a parameter in Aurulent Sans

hrant> Could we see how [well] it works out?

What would you like to see?


clauses
7.May.2007 10.40am
clauses's picture

Did anyone ever get to play around with FontChameleon Pro before it was pulled from public consumption? Voices seem to rave about how fantastic it was. I guess it was not fully parametric, but relied to some extent on some predesigned endpoint to interpolate from? The reason I'm thinking about it is the fact that a number of parametric type engines have come and gone through the years. There is Metafont, FontChameleon, Incubator(?), LiveType and some HP stuff i forgot the name of. Why where they never successful? I can certainly understand why Metafont never went of the ground as it's made for the programmer and not for the designer (correct me if I'm wrong here). Is this parametric approach simply too complicated for the designer to take anywhere, or was it just the lack of GUI that kept it off? FontChamelon seemed to go all the way to the user, skipping the designer, which was it's point I guess.

@Raph: That interpolation you showed is exactly what I want.


hrant
7.May.2007 11.57am
hrant's picture

> You seem to be saying that parametric design
> cannot be done with FontLab’s scripting tools.

No, I don't know enough to say either way (and I don't see how I implied otherwise). On the other hand Python being a fully capable language shouldn't have a problem. The real problem is that there's not enough money in type for something that hard to happen, at least not quickly.

> whether the interface makes it easy to design glyphs parametrically.

To most people that means a GUI, and the answer is definitely
No in the case of FontLab... but really just as No for anything else.

> What would you like to see?

Let's say "skagy" varying from a pretty small to a pretty large x-height.

FontChameleon: I think I had a copy once, didn't get to really use it, and
then something quite mysterious happened and we've become deprived.

hhp


Christian Robertson
7.May.2007 5.16pm
Christian Robertson's picture

Wow. This is really nice. Kudos for sharing the code. I'm hoping that we'll see more in the future.

Any thoughts on releasing the code under a more permissive license so it can be used in a certain well known commercial app? I realize that there is the remote potential that you might be able to license it, but it would be a real shame if the stuff never got picked up.


Christian Robertson
7.May.2007 5.52pm
Christian Robertson's picture

If you need any convincing about the value of this technology, sit down and try to draw an s. It's fantastic. What took me forever to figure out with beziers happened almost automatically here.


raph
7.May.2007 9.33pm
raph's picture

Christian: suffice it to say that I've put a lot of thought into my licensing strategy, and am pretty happy with it.

Basically, if you're a type designer and want to have this kind of curve drawing tool in a production environment, you have four choices:

1. Learn to code and do it yourself.

2. Show some love to the free software community, and encourage them to integrate it into their leading design apps (Inkscape, FontForge).

3. Lobby the proprietary app vendors to license it.

4. Sit on your @ss and hope somebody else does 1-3.

Glad you like it!


rosaiani
7.May.2007 9.36pm
rosaiani's picture

This makes my self esteem rise a million percent. It was done in 10 minutes.

Wish I could export it to illutrator and to hell with the pen tool ;)


William Berkson
8.May.2007 4.53am
William Berkson's picture

>Million percent

Hate to burst your bubble, but your S doesn't have the curves of Christian Robertson's S--and it isn't as good. You can debate how much it is Christian and how much the spiral tools. But here Christian says it was natural and easy for him to get a result with the spiral tools that would have been difficult and laborious with Bezier curves.


dberlow
8.May.2007 5.58am
dberlow's picture

This is extremely interesting and I'm sure useful. The "traditional" S test, however, is of a specific S. And even before that, the "traditional" contour format test is to scan and digitize an FC-339 8 1/4" French Curve. e.g. http://www.steinlaufandstoller.com/French%20Curves%20Plastic.htm, and then, in this case, do post digitization traslations to CB and QB, so you can see it filled to black in output, or on the screen as the case may be.


William Berkson
8.May.2007 6.37am
William Berkson's picture

>French Curve

Looking at some internet sites, it seems that the most widely used French Curves are composed of sections of parabolas, hyperbolas, and elipses. These are all conic sections, can be described by quadratic equations, and hence can be drawn perfectly by quadratic bezier curves.

The Cornu spirals here are different. If I understand it rightly, sections between knots cannot be drawn accurately with either a *single* quadratic or cubic curve, though of course they can be approximated with multiple curves of either type.

I don't know if the Cornu spiral is on any French Curves.


raph
8.May.2007 8.37am
raph's picture

@dberlow: The fact of a standardized test for drawing ability is most interesting. Do you have a cite in a book or journal for that test? If not, I can always do "personal communication".

I took your challenge, starting with an image of the FC-339 from the C-thru site. The drawing took about 8 minutes, and there are a total of 50 points.

And the conversion to Beziers (43 segments, each of which has 3 control points):

And here it is filled (PDF here if you want to print it out).

How'd I do?

@William: I believe it is used on some real french curves, because it's one of the relatively few analytical curves that has a nice inflection point in it. But I don't have a good cite. Again, one would be useful.


hrant
8.May.2007 9.39am
hrant's picture

William, as I explained in the other thread, it's not about evaluating the results out of context, it's about how much effort Raph's method saves. Whether Rodrigo's "S" is better or worse than Christian's is irrelevant; the point is to consider how much effort each of them saved in getting to that in-some-way satisfactory result.

> the “traditional” contour format test is to scan and digitize ...
> http://www.steinlaufandstoller.com/French%20Curves%20Plastic.htm

Why does one have to wait 9+ years to be told something this relevant! :-/
When you think about it though I guess it's common sense. Aaah, hindsight!

BTW, what exactly is the traditional "S" test?

> ... can be drawn perfectly by quadratic bezier curves.

Yet once more: it's not about this being possible
or not, it's about this being worth doing or not.
"Perfectly" should not come into the discussion.

It's possible to go to the grocery store crawling on
your back, naked. This does not make it worth doing.
And the "imperfection" of using a car, a bicycle or
your feet does not make any of those a bad idea.

> The drawing took about 8 minutes, and there are a total of 50 points.

Now this is getting relevant. How much time would it take you to do it with beziers? It would be useful here to ask David to time himself with both methods too, since you'd like to get the view form both ends: somebody used to drawing with cornus more and somebody used to drawing with beziers more.

Also, some overlays would be very useful, since your "thresh" and "optim" settings don't mean anything to us. An overlay of the spiral original over the converted bezier, and one of the end result black shape over the original piece of plastic. Please? :-)

hhp


hrant
8.May.2007 9.50am
hrant's picture

Christian:
> What took me forever to figure out with
> beziers happened almost automatically here.

That implies cornus are better when you're starting out in type design; but an equally important issue is: for somebody with experience with beziers, would you say they're about the same in the end, or do cornus have an advantage there too?

> 3. Lobby the proprietary app vendors to license it.

To me adding cornu support seems like just the ticket to encourage upgrades to FontLab 6... In fact right this minute they might be desperately trying to figure out how to add value to their product to keep the upgrade money coming! That said, an email campaign by users can only help.

BTW Raph: what term should we be using for this - cornus, spirals, or what?
Something short would be great.

hhp


kentlew
8.May.2007 11.15am
kentlew's picture

Hrant: BTW, what exactly is the traditional “S” test?

David will correct me if I'm wrong, but from what I understand from a conversation with Mike Parker, the traditional test administered to someone applying for employment in the Linotype drawing office, in the "good ol' days," was the task of reproducing freehand (I'm talking about drawing here -- pencils and paper, you know) a specific 'S' from a given model typeface, in order to gauge their innate talent and skill.

I don't know if it was the same 'S' each time, or if there was a time limit.

-- K.


hrant
8.May.2007 11.26am
hrant's picture

Maybe not a strict time-limit, but I'm sure at least an
internal biological stopwatch would've been running! :-)

BTW, isn't today's "freehand" direct-digital?

hhp


raph
8.May.2007 12.07pm
raph's picture

@hrant: An overlay of the spiral original over the converted bezier

The Bezier version is a 1px red stroke, and the spiral version is on top in black. You can see a teeny difference on the left hand of the top curve. If you tweak the "thresh" parameter, it'll add more Beziers to make the error go as small as you like. I picked the .01 number as the default for my work because the error is just below the threshold of what you can see when you look at the shapes side-by-side. Setting it to .001 adds nine beziers (for a total of 52), and the visual difference becomes undetectable even when zoomed. Btw, if you want to zoom in on the above comparison, I put up a PDF.

I tried overlaying the black-filled version over the original photo, but I couldn't get anything that seemed as clear as the first image above, partly because of the low contrast of the original. I have done the same thing with letters - maybe I should post some images from that?

what term should we be using for this - cornus, spirals, or what?

I kinda like "spirals". Cornu spirals are actually only one case. The most general case is a third order polynomial spiral, which I sometimes abbreviate "spiro". Incidentally, Cornu didn't invent the spiral bearing his name, Euler did, so they should really be called "Euler spirals".

How much time would it take you to do it with beziers?

Well, for me to do it wouldn't exactly be fair, because I want my tools to win. But I'd be very interested to learn how long it takes you, Hrant, and whether you're as satisfied with the technical quality.

Actually, what I think I'd like to do is pose a real challenge. Maybe a neutral Typophile person (Tiff? Stephen?) could serve as moderator. It would go something like this: the moderator selects a high quality image of a predigital glyph, something like 1000px square, and posts it at a pre-arranged time. Then, people post followups to that thread containing their best shot, using the tools of their choice - Spiro, Illustrator, FontLab, QB's, CB's, IkarusMaster, whatever. Reports of drawing time can be verified by the post timestamp, and then the moderator would judge the quality.

Sound like fun? I would write up the results in a section of my thesis, as part of the case I'm trying to make is that spirals are more intuitive, more productive, and more conducive to high-quality results. Going up against the best skills of Typophiles would be a real way to falsifiably test those claims.


cuttlefish
8.May.2007 12.20pm
cuttlefish's picture

Raph:
I managed to make your test program crash.

PID: 901
Thread: 0

Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_INVALID_ADDRESS (0x0001) at 0xc0000000

Should I send you the full report?


hrant
8.May.2007 12.35pm
hrant's picture

> The Bezier version is a 1px red stroke, and the spiral version is on top in black.

Oh.
Well goldangit then that's plenty close enough!

It's nice to see that such a close approximation
doesn't result in an infestation of vertices.

What does the "optim" setting do?

Concerning an overlay of the physical French curve and your end-result, we don't really need the former, we just need the original (1-bit) shape you started with. But if you think the threshold for that is as tight as the first overlay, don't bother.

> Cornu didn’t invent the spiral bearing his name, Euler did

Well, and apparently Pierre didn't invent beziers, Paul de Casteljau did, but these things can stick and trying to unstick them distracts from true work! On the other hand Euler was da man (as Laplace* found out the hard way) and it's early days so maybe we can do something.

* Or was it somebody else? I'm vaguely it might have been an Englishman instead. Whoever it was invented some polynomial math, and then found out it was merely a special case of something Euler had done long before!

> I’d be very interested to learn how long it takes you, Hrant

Yeah, me too. Windows version please!

Your broader challenge sounds fun and relevant.
But no need to bother with formal timekeeping - we can trust us.

hhp


raph
8.May.2007 1.02pm
raph's picture

What does the “optim” setting do?

It's a speed/optimization tradeoff. At zero, it's interactively fast but generates about three times as many Beziers as is needed. At three, it (currently) takes about a minute, but generates something like the absolute most optimized cubic Bezier representation possible for the curve. The main thing it's doing at level 3 is exhaustively searching all points along the curve to find the best points to break - at the lower levels, it just splits the curve in half whenever a single Bezier is not sufficient. There'll be more detail in my thesis, of course.

But no need to bother with formal timekeeping - we can trust us.

I think we can too, but I'd like to remove as many variables that could spoil the results as I can.


rosaiani
8.May.2007 2.28pm
rosaiani's picture

Not trying to compare to his at all William (his S sure is a very nice S), it'll probably take a million years till a get the letter s to look like I want it to... It may not look perfect, but it certain took 1/millionth of the time to get done. If the tool is useful only to know that I suck at drawing "s" in less time, it's fair enough for me.


hrant
8.May.2007 2.34pm
hrant's picture

I'm surprised the conversion is so computationally intensive.
Must be a good sign. :-)

hhp


G T
8.May.2007 4.27pm
G T's picture

raph,

May I ask how you converted to beziers?

I am unable to export my doodlings in any way, and the save option doesn't appear to do anything.

I do find spiro a much quicker and intuitive way of drawing. I have used the bezier tool for many years and feel that I am quite proficient, but this is so quick. It seems more natural.

Thanks,

G


biddy
8.May.2007 4.46pm
biddy's picture

This looks like some amazing stuff. I'm surprised more type designers haven't chimed in on this conversation. Where are you all?


raph
8.May.2007 4.58pm
raph's picture

@Graham_Taylor: May I ask how you converted to beziers?

This part of the code is very rough and unfinished. When you press Apple-S, it saves the file "plate" into the file system, into the current directory, not sure exactly where that is by default on a mac. (a quick test reveals that it seems to go into / , which is not friendly behavior). Similarly, when you press Apple-P, it saves a PostScript file to /tmp/foo.ps. I then use some command-line scripts (mostly written in Python) to optimize the Beziers, etc. These scripts ship in the spiro tarball, but not in the ppedit.dmg disk image.

Dave Crossland (abattis) is planning on writing better documentation soon, which I think will be very helpful.

@biddy: thanks!


crossgrove
8.May.2007 5.21pm
crossgrove's picture

Didn't have time until now to test it. I learned to digitize type with Ikarus, so it's not completely unfamiliar. It seems to be flexible enough to allow the fine tuning I want, but right now, I'm so acclimated to beziers that I'd need more time to get used to the different behavior. I couldn't necessarily compare my drawing speed between Beziers and spirals because most of my actual design work is spent adjusting existing outlines. I don't do a lot of revivals, and I don't do big finished drawings anymore, so the speed at which I can digitize an outline isn't a big factor. Major editing happens after the first round of proofs. I can already slap an outline together in bezier format in record time. It's not finished no matter how much I fuss over it initially.

Raph, I don't want to rain on your challenge, but this means I can't gauge quality or speed based on immediate digitization results; it's very iterative, and "accuracy" isn't my concern, rightness of design is, which is revealed with testing and use.


raph
8.May.2007 6.10pm
raph's picture

crossgrove: You make a very good point. Making good, quick digitizations isn't the only way to evaluate curve-drawing techniques.

My subjective experience is that Spiro is extremely good for making fine edits. You can tweak points around without having to worry about technical details like extremal points, and, in general, the changes "make sense". I've done quite a bit of this with both my revivals and my original designs (Inconsolata and Cecco). The warm, fuzzy feeling that I get when drawing has done a lot to motivate me to go more deeply into the math behind the curves, so that I know at multiple levels that the curves are "right."

At some point, you go beyond what can be quantified, and into the realm of what it feels like to use the tool. I'm hoping that enough people spend enough time playing with it that I can start to get more insight into that, in addition to my own personal experience.


hrant
8.May.2007 6.21pm
hrant's picture

> You can tweak points around without having to
> worry about technical details like extremal points

This I don't get. You don't have to worry about extrema when you're doing bezier drawing either - you can add those in later, which furthermore is something you'd have to do with/after spiral-to-bezier conversion anyway.

> into the realm of what it feels like to use the tool.

Yyyup.

hhp


clauses
8.May.2007 6.21pm
clauses's picture

Raph, I don’t want to rain on your challenge, but this means I can’t gauge quality or speed based on immediate digitization results; it’s very iterative, and “accuracy” isn’t my concern, rightness of design is, which is revealed with testing and use.

Carl I tend to agree. The S-test is not quantitative enough, I mean, what will it show? That some people drew the outline to be the 'right' design, so that it looked right independently from the scan. While others tried to make it very close to the scan, while again others tried to make the curves look very smooth?

The proof is in the making of great looking type – fast. With all the complications of automatized interpolation, with all it's stretching, squeezing, tilting and embolding. I have the feeling that the true value of designing in spirals lies in the automatization of these things, which leads me back to my earlier fantasies about Metafont. So Hrant, when you say that the idea that letters should have skeletons is fatal, what do you mean? Others are welcome to enlighten me on this as well.


hrant
8.May.2007 6.29pm
hrant's picture

What I mean is that when you look at glyphs as being built up from "fattened" skeletons (for example if you see an "A" as being made up of a right thick diagonal, a left thin diagonal and a thin horizontal) you're not designing what people read, hence you're designing the wrong thing; and the "reality" of serifs for example intimately fits in to this issue. I know it's hard (I mean I personally know!) to not think in this way, but you simply cannot arrive at "ideal" (which does not remotely mean "perfect") text type by thinking in terms of skeletons.

hhp


William Berkson
8.May.2007 6.40pm
William Berkson's picture

Carl "I can’t gauge quality or speed based on immediate digitization results; it’s very iterative, and “accuracy” isn’t my concern, rightness of design is, which is revealed with testing and use."

I feel the same way. It's not getting it, it's getting it right. At least for me, I have to do this by trial and error, both to see how the glyph works with the rest of the face, to find a 'sweet' curve, and to see how it works at intended size. What would be great is if you get to 'sweet' quicker or more naturally with the spirals. I suspect this is so, at least for some situations, but of course I don't know.

By the way, I remember reading that Matthew Carter said something like "Watching me design a typeface would be like watching a freezer freeze ice cubes." That is, the process involves so much incremental change, much of which might not mean much to someone else, but it is intense and dramatic to the designer.


hrant
8.May.2007 6.50pm
hrant's picture

I'm not seeing how the intensity/speed with which a person works has make-or-break relevance here. Sure, some people will find spirals less intuitive, but among those who find them more intuitive the practical benefits will come, either when you're digitizing, or when you're tweaking. Yes, some people do more observation/thought in between the design iterations, but you still have to tweak the outlines in the end! And if a new tool makes creation and/or tweaking more "natural" then it's nominally worth using.

The practical question really is, lacking full integration
into something like FontLab, would it still be worth it?

hhp


Christian Robertson
8.May.2007 8.15pm
Christian Robertson's picture

There's another factor, beyond which is faster or more intuitive. Any time you allow an algorithm to determine a curve for you, it will influence what the design looks like. Bezier curves can describe almost any shape, if you add enough anchor/control points, but they become difficult to manage very quickly once you start adding points beyond the extremes.

As a result most type designers don't add that many points resulting in predictable curves. What percentage of type these days use control points *only* at the extremes of the curves? A lot. How many designs born in the bezier age have slightly tapered stems? Not many. Why? Because it's harder to draw that way. Here the medium influences the message.

From my short experience with these curves, it is much easier to manage additional knots, which means that lazy type designers like me will likely add more. The resulting designs will look at least different from the current batch if not more creative.

If it doesn't go into FontLab, though, I'm unlikely to use it :( I might give FontForge another try if it goes in there, though, even though X11 on OS X is gross.


William Berkson
9.May.2007 10.16am
William Berkson's picture

An interesting side point, Raph, is that in the Underware 'Type Basics' they explicitly compare good straight-to-curve outlines as a path like driving around a curve in a car.

According to the wikipedia article on Cornu spirals, the Cornu spiral is actually used to lay railroad tracks going from straight to curve, because it is in one way the 'ideal' for this purpose. Apparently it is the only curve in which the rate of change in radius is constant. This means that there is a continuous linear increase in the centrifugal force of the train laterally against the tracks. This linearity helps preserve the track, as well as jostle the passengers around less.

Anyway I found it interesting that this analogy of moving around a bend is already discussed in type design, and relates to the Cornu spiral.


hrant
9.May.2007 10.33am
hrant's picture

I also read about the relevance of cornus to transportation in the wiki, and I guess it makes sense that that would ensure smooth transitions! The Underware stuff though is corny (pardon the pun :-) because beziers don't have that attribute and they're basically just having fun.

Another interesting angle is that Renault (where P Bezier worked) apparently chose beziers over cornus. Now, that was for the design of bodywork and not test track design or something, but I wonder what their reason was for not going with such an industry precedent. Maybe beziers are computationally much lighter, or maybe they wanted to "invent" something New, as managers too often want to.

hhp


crossgrove
9.May.2007 10.34am
crossgrove's picture

"Any time you allow an algorithm to determine a curve for you, it will influence what the design looks like."

I think this is an excellent point. It ought to be discussed more often generally. It's hard enough to get full control of Beziers, and unfortunately too many type designers can't separate their design choices from their digital construction choices. Many of Emigre's types, even the recent classic revivals or homages, have this 'digital' gloss.

I do indeed welcome an outline format that doesn't seem to favor grid-based alignment. I know very intimately why rasterization is a major concern in imaging type, but I do think, as Christian says, this kind of thing should not have the influence that it currently has on the design process. Unless a design is being made specifically for low-res use, I'd rather focus on truly ideal node placement and efficient, precise editing, rather than accommodating extrema.

I will need to spend more time drawing with this tool in order to get used to the way the curves work and feel. Therefore, I need to have the tool built into, or accessible in, my current workflow (I don't have time to experiment in a separate environment). Raph, I would prefer to find this drawing environment as an option in FL, FOG, DTL FontMaster or other commercial product.


hrant
9.May.2007 10.45am
hrant's picture

Well, a digital gloss is still less bad than a chirographic gloss.
But I agree, we should design what we really want as much as possible.

> I would prefer to find this drawing environment
> as an option in FL, FOG, DTL FontMaster or other
> commercial product.

Me too. But we need to tell them, not Raph! :-)

hhp


crossgrove
9.May.2007 11.11am
crossgrove's picture

"Well, a digital gloss is still less bad than a chirographic gloss."

Matter of opinion. I think you should consider this carefully. Since type is evolved from written language, it's a lot easier to use chirographic type than type made from geometric modules. When I say "digital gloss" it refers not only to the finish but the structure and the approach to letter- and type-building. Losing every element of chirography that has led to printed language (which is indeed very much a concern, look around) is much less preferable than losing technological constraints. When the tools have no influence, you can still make any kind of typeface, from radically reformist to traditional (or some combination thereof?...).


Randy
9.May.2007 11.32am
Randy's picture

I wonder what would be required to add a third curve space to FL. Fontlab is really the only option to make this mainstream. My impression is that they have the major market share, and given all the Fontographer pining that goes on here, transitioning to another program is something type designers are pretty resistant too, even if cornu's are better.

I agree with Christian's interest in designing without the bezier propesity to become more unrully the more points you add. We've both talked about this in other threads before. (That said, using the FL interpolate tool instead of simply moving points is a decent work around for curves with many points).

R


enne_son
9.May.2007 12.47pm
enne_son's picture

…but can spiro find a frontal logic?

translation:

translation in the downstrokes; rotation in the upstrokes:


G T
9.May.2007 1.23pm
G T's picture

raph,

Thanks, although i only get the part about where it saves (and although I get it, am unable to find these directories), rather than the 'command-line scripts' bit as i'm fairly (completely) ignorant when it comes to whatever that entails.

I guess i'll just have to wait until some bright spark puts it in some software I can utilise.

I wish I were more patient.

Thanks for sharing all this though.

G


hrant
9.May.2007 5.06pm
hrant's picture

> can spiro find a frontal logic?

I certainly hope not.

hhp


biddy
9.May.2007 6.36pm
biddy's picture

Some interesting points here. As a newbie to type design, I recall how much Font Audit controlled my design choices.

Carl and Hrant: the chirography issue is actually something I struggle with, as I want the computer to do exactly what my hand does. Although type design has made me pretty comfortable with Bezier drawing, I still am most comfortable with ink and a brush. My latest type experiments have been trying to find the happy medium by taking my actual vectors from ink on paper. Still trying to find the right balance.

Raph: Matthew mentioned this earlier—but I'm having the same control issues with the Mac.

I am really excited about the possibilities of this, because this actually starts to feel like drawing or painting on screen.


hrant
9.May.2007 6.41pm
hrant's picture

> I still am most comfortable with ink and a brush.

Users don't need your comfort, you need theirs.

hhp


DanGayle
9.May.2007 7.51pm
DanGayle's picture

"Fortunately, because I am a rocket scientist, I can do that."
–Raph Levien

This has got to be the greatest quote, ever.

This sounds really cool, but can anyone inform me how unique and/or important this is? On a scale from the invention of the spork to the invention of beer, where does it stand in relative terms of type and type design stuff?


Mark Simonson
9.May.2007 8.10pm
Mark Simonson's picture

Thanks, although i only get the part about where it saves (and although I get it, am unable to find these directories)

I can't figure out where comman-S saves the "plate" file, but the PostScipt file is pretty easy to find: Choose "Go to a folder..." from the Go menu in the Finder. Type "/tmp/ and hit return. The file called "foo.ps" is the PostScript file that is created when you hit command-P. Rename this before you generate a new one. It can be opened in Illustrator (or whatever).

Note: Don't mess with any of the other files in /tmp/ or you could be sorry. I would also recommend moving the PS file(s) to somewhere more convenient.


Toby
10.May.2007 12.46am
Toby's picture

I can’t figure out where comman-S saves the “plate” file
It goes straight into your system root directory, at least here it does..


dberlow
10.May.2007 4.34am
dberlow's picture

Ralph: "How’d I do?"
Extremely well. In fact, I could only be caught quibbling with your spiral point positions on my laziest day, and I would not spend any time to argue with the output quality of the cubics.

The next thing I'd like to do is see how easy it is to pull contours apart and reconstitute them as new letters, new weights and new widths.Really well done and I look forward to any sort of progress this can make.

Cheers!


enne_son
10.May.2007 4.41am
enne_son's picture

[Hrant] I certainly hope not.

It stands to reason that where a curve-fitting routine finds inflection points might be diagnostic of contrast type. And it seems to me that one of the things we ought to want to get a handle on is the logic of contrast in a co-ordinated glyph set. (But this might be where points of view diverge: that following such a logic is contributory to readability.)

My visual argument suggested perhaps spiro has an advantage over beziers in providing this. But even in the bezier environment finding extermata can be revelatory of stress axis and diagnostic of it's consistency or pattern of departures.


G T
10.May.2007 5.19am
G T's picture

@mark/Toby: cheers guys, found the folders, however still can't find the files. I've searched the whole of the computer for "foo.ps"using spotlight and can't find it so who knows, but it don't matter it was just a doodle to test, I'm just impatient to be able to utilize this new tool.

Thanks

Graham


patternmaker
10.May.2007 7.52am
patternmaker's picture

Graham

Spotlight doesn't search invisibles. In the Finder, use Go to Folder (command-shift-G), type in "/private/tmp/", click the Go button and the window that opens should contain the foo.ps file.


crossgrove
10.May.2007 7.57am
crossgrove's picture

"And it seems to me that one of the things we ought to want to get a handle on is the logic of contrast in a co-ordinated glyph set."

Peter, I would say not. The "logic" of almost anything in type design tends to be very occasional, inconsistent, and useless if followed too completely. From serif length to contrast to bowl shape to stress angle, these things tend to look bad and function badly when systematized too completely. Greek and Arabic types especially would not take well to this logical approach or analysis.

"Users don’t need your comfort, you need theirs."

Hrant, Terry said ink and brush. It doesn't sound like he's working on a dictionary typeface.


enne_son
10.May.2007 9.35am
enne_son's picture

[Carl] "[…] useless if followed / systematized too completely."

I agree, but a consistent contrast scheme will be in evidence I should think, and this has an overall impact on the root mathametical structure of the curves, which then becomes unique--in a deep-structure sense--to that typeface.


hrant
10.May.2007 10.06am
hrant's picture

> where a curve-fitting routine finds inflection
> points might be diagnostic of contrast type.

I don't get how, but/so it sounds interesting.

> one of the things we ought to want to get a handle on
> is the logic of contrast in a co-ordinated glyph set.

My view is opposed even here, even before you get to the part about readability. To me we need all the help we can get to ween ourselves off of chirography, and a tool that's poorly coordinated with chirography is preferable to the opposite.

> My visual argument suggested perhaps spiro has an advantage
> over beziers in providing this. But even in the bezier environment
> finding extermata can be revelatory of stress axis and diagnostic
> of it’s consistency or pattern of departures.

I'm seeing the opposite, since spirals apparently have less of a dependency on extrema. There's also another potential way spirals might help us grow up: if for some reason it's harder to do an "expand stroke" on a spiral compared to a bezier, making "skeleton-based" type design becomes less attractive.

> Terry said ink and brush. It doesn’t sound
> like he’s working on a dictionary typeface.

What I meant applies to any type, in fact to any act of Design.
As opposed to Art. Users don't care about Terry, and they shouldn't.

> a consistent contrast scheme

Formal consistency is often dysfunctional when it comes to what humans need.

hhp


crossgrove
10.May.2007 10.55am
crossgrove's picture

Raph, I'm having a hard time mentally linking an outline description format and any particular set of shapes made with it. This idea seems very tenuous and hopeful. What do you think it will lead to that is of interest to type designers? I can imagine all kinds of outcomes of interest to mathematicians.....

"Users don’t care about Terry, and they shouldn’t."

These two statements might also be a matter of opinion. We do tend to admire people who make things we love to see/use, and I suspect Terry is one of those. Ignoring esthetics is foolish. It's a meaningful ingredient of any design effort.

Hrant, I fully agree that chirography, or fashion, or convention, or any other isolated factor is unhealthy to fixate on. But condemning them as causal of some sort of degradation, disintegration or arrest of progress seems also nearsighted. I'm interested in a balance of ideal function and esthetic appeal (physically as well as visually), and in all areas of design. It is amusing sometimes to see a chair that looks painful and dangerous, which turns out to be rapturous to sit in, but you then have to trick people to sit in it the first time. And I don't see these ingredients/concerns as so opposed as you seem to. Yes, of course it's misleading to fixate on chirography, or "logic" or rules or ink traps, to the detriment of everything else. But I don't think Terry is at that point. We all converge in the type world from very different paths. Bitmaps for example. Or math.

Central to this thread is how to get tools (like Raph's) into our hands so we can stop noticing or being influenced by them, which relates to Terry's comment. Raph might actually like to know how people prefer to work. Whatever method or technique people start out with, you have to agree it's the results that matter.

Now I'm plagued by mental images of text type drawn with ink and brush..... 8D


hrant
10.May.2007 11.05am
hrant's picture

> Ignoring esthetics is foolish.

Agreed, especially since: it can be enjoyable; and there's no avoiding it anyway. But, as I've stated before, to me the difference between Art and Design (neither of which exists in a pure state) is the intent of the creator in terms of expression.

> you then have to trick people to sit in it the first time.

This is the sort of thing I believe in too.
Hence Paphos (far right): http://www.themicrofoundry.com/s_latin.html

hhp


biddy
10.May.2007 5.36pm
biddy's picture

Users don’t care about Terry, and they shouldn’t.

Talk about a massive overstatement! You've missed the point entirely. This isn't about any individual person. It's about making a useful tool for people to use. Nothing more. There's no such thing as a fool-proof, universally accepted method. In fact— FontLab and Illustrator handle Beziers very differently and because of that "users" prefer different methods. Some type designers use Illustrator and import into FontLab—some use FontLab only, and some still even use Fontographer. So your statement is a complete oversimplification. I often find the critical flaw in many of your opinions is that they're based too much on the idea of "absolutism." Life is not all black and white.

Hrant, you're too smart of a guy to make outrageous statements like this. Your fixation on chirography is very apparent to most frequenters of Typophile I'm sure, so it's no surprise that you've twisted words to make your point.

I find it amusing that this is the very thing I've seen you criticize William Berkson about time and time again— you're too literal. Try reading and understanding a person's intent before reacting. And if something is not stated clear enough for you...you can always ask a question. I would have been happy to explain myself more clearly. But I'm sure just reacting is a lot more fun.

Carl: thanks for clarifying things. That is exactly what I meant.


hrant
10.May.2007 6.21pm
hrant's picture

I'm as gray as they come.

It's about balance. When I seem too radical it's because the situation is desperately lopsided, and the balance needs a firm kick to right itself. Gentle, gradual cajoling will not work, at least not in one person's lifetime, and I'm not going to get my offspring to pursue my own ideals - I have to do it myself. When a person is hysterically out of control, you deliver a well-meaning slap in the face. (I don't mean you, I mean the field of type design.)

But I really don't want to derail this thread, which is why I didn't reply much more fully to Carl's post. But you went a hair too far, so I felt compelled to write the above, sorry.

hhp


crossgrove
10.May.2007 9.18pm
crossgrove's picture

Hrant, I have never seen any more of Paphos than this j. Is there a secret link to more of it? it sounds good... ;)

On topic: I imagine that I could get used to using this drawing method, and the possibility of ignoring the eventual pixel grid is attractive. David Berlow raises an interesting question: How easy to cut and paste, how easy to grab and stretch large segments, how easy to interpolate? All figure into my production flow. I also don't like the idea that the outlines I draw carefully must necessarily go through a conversion process unless I am very very confident of the conversion algorithm, and I'm really picky in that area. PS outline drawing has the advantage that the exact shapes I draw are what the user will receive and use.


hrant
10.May.2007 9.37pm
hrant's picture

The Paphos alphanumerics are all roughly drawn (on paper). But I've stopped working on it mostly because I'm intellectually not ready to finish it.

Here's something of it I've shown on Typophile before:

> unless I am very very confident of the conversion algorithm

Did you miss the French curve challenge on page 1 of this thread? It looks like the conversion algorithm (although apparently not too fast) produces very fine results, without causing an infestation of bezier nodes.

hhp


crossgrove
10.May.2007 10.05pm
crossgrove's picture

I did see the conversion; I've actually seen/used better. That's why I say I'm picky. Also it's not enough for me to assess this low-res image onscreen. I do suspect, though, that the results are likely to be very very good. I just don't want to lose the newly-won ability to have designs reproduced exactly, without interpretation. The new tool should provide benefits that override that issue, or there should be a conversion method that obviates it.


G T
11.May.2007 3.20am
G T's picture

Ah, nice one patternmaker. Cheers.

G


abattis
11.May.2007 4.15pm
abattis's picture

@Christian: I might give FontForge another try if it goes in there, though, even though X11 on OS X is gross. X11 on OS X is gross, so why not try out a GNU+Linux distribution and see what free software has to offer all round? :-)


Christian Robertson
11.May.2007 5.35pm
Christian Robertson's picture

I've tried a bunch of linux distros, and there is some exciting stuff going on, but unfortunately x11 is pretty gross there too ;) Otherwise, I use a ton of free software, and love it (everyone should try Blender for 3d stuff). Someday I'll be smart enough to contribute code to some of my favorites. In the mean time, I drew some cleaned up characters for the Ubuntu title font, but I haven't figured out how to submit it back to the project.


glyphobet
12.May.2007 1.19am
glyphobet's picture

These curves are great to work with. I strongly encourage everyone who hasn't yet downloaded and tried Spiro to do so. Raph, when I first read about your idea to use Cornu spirals to lay out curves a few years back, I was skeptical, but Spiro lives up to your promises. It is easier, quicker, and feels more natural.

Here's something I did in ten minutes. It's not production-ready or anything, but I've been working with Beziers for at least twelve years, and I don't think I could do something that looks this good in ten minutes in FontForge, Inkscape, or any other Bezier program.


dberlow
12.May.2007 3.58am
dberlow's picture

"I just don’t want to lose the newly-won ability to have designs reproduced exactly, without interpretation."
So, do you make one-size-fits-one fonts too!? That's so exciting!

"The new tool should provide benefits that override that issue, or there should be a conversion method that obviates it."
That is my basic point here. I want to make containers, not vontainers for containers, or like this containers for containers for continers, unless the content remains precise through the first two container transfers at least.


Tim Ahrens
13.May.2007 5.02pm
Tim Ahrens's picture

Raph, that tool is very exiting, I think it solves some major problems with Bezier curves. I have a few comments and questions:

1. As far as I can see, Spiro is essentially a tool that takes on-curve points as input and outputs Bezier curves. Could you explain the benefit of using spirals as an intermediate step? Wouldn't it be possible to find Bezier splines that run through the given points with G2 continuity? Doesn't the problem of G2 continuity still remain when two spirals are connected?

2. It seems that the main differences to direct Bezier editing are:
a. built-in G2 continuity, which is great but G2 continuity can also be enforced automatically for Bezier splines (as I have shown in Lisbon last year)
b. no off-curve points, which is great
c. no need to specify tangents for on-curve points, which is great
d. no possibility to specify tangents for on-curve points, which is very odd

I think for practical type design application it is very important to be able to specify tangents for your on-curve points, which Bezier splines allow but not Spiro. Would it be possible to add support for tangents? Then we would actually have the best of both worlds. Also, I think an option to specify tangents without the position of the on-curve points would be a very handy in everyday type design

3. What about rounding errors? The restriction to 1000 units seems to be built into T1/CFF, isn't also the use of integer coordinates a requirement of Postscript fonts? Or is this just an FL-internal restriction? If not, looking at the (un-rounded) Postscript output is irrelevant - we need to see the final shape in fonts with coordinates rounded to integer numbers and 1000 UPM.

4. You say that Multiple Master technology does not preserve G2 continuity. It is my experience, however (in hundreds of cases), that G2 continuity is in fact preserved when interpolating Bezier curves with MM. I don't know whether it could be proven that this is the case under certain conditions (or under which conditions, to be more exact).

Thanks,
Tim


sgh
13.May.2007 5.30pm
sgh's picture

@Tim: but G2 continuity can also be enforced automatically for Bezier splines (as I have shown in Lisbon last year)

Could you please explain more about how to enforce G2 continuity for Bezier splines? (or provide a reference) Thanks!