IRC log of svg on 2013-05-09

Timestamps are in UTC.

20:27:05 [RRSAgent]
RRSAgent has joined #svg
20:27:05 [RRSAgent]
logging to http://www.w3.org/2013/05/09-svg-irc
20:27:07 [trackbot]
RRSAgent, make logs public
20:27:07 [Zakim]
Zakim has joined #svg
20:27:09 [trackbot]
Zakim, this will be GA_SVGWG
20:27:09 [Zakim]
ok, trackbot; I see GA_SVGWG(SVG1)4:30PM scheduled to start in 3 minutes
20:27:10 [trackbot]
Meeting: SVG Working Group Teleconference
20:27:10 [trackbot]
Date: 09 May 2013
20:27:29 [Zakim]
GA_SVGWG(SVG1)4:30PM has now started
20:27:36 [Zakim]
+ +1.425.373.aaaa
20:28:53 [Zakim]
+[IPcaller]
20:29:02 [birtles]
Zakim, [ is me
20:29:02 [Zakim]
+birtles; got it
20:29:40 [Zakim]
+[IPcaller]
20:29:41 [heycam]
Zakim, Zakim [ is me
20:29:41 [Zakim]
I don't understand 'Zakim [ is me', heycam
20:29:52 [heycam]
Zakim, [ is me
20:29:52 [Zakim]
+heycam; got it
20:30:09 [heycam]
Zakim, who is on the call?
20:30:09 [Zakim]
On the phone I see +1.425.373.aaaa, birtles, heycam
20:32:28 [Zakim]
+ +61.2.980.5.aabb
20:32:42 [nikos]
Zakim, +61.2 is me
20:32:42 [Zakim]
+nikos; got it
20:32:50 [Zakim]
+Doug_Schepers
20:33:37 [heycam]
Chair: Cameron
20:33:39 [nikos]
scribenick: nikos
20:33:45 [heycam]
Agenda: http://lists.w3.org/Archives/Public/public-svg-wg/2013AprJun/0100.html
20:34:10 [nikos]
Topic: textLength tests
20:34:28 [Zakim]
+cabanier
20:34:31 [nikos]
Thomas_Smailus: the plan is to take the existing test (from 1.1) and tweak it to bring it up to speed and deploy
20:34:41 [nikos]
... looks like it will be one of the first tests for SVG 2
20:34:47 [nikos]
... might take me a couple of weeks
20:35:02 [nikos]
heycam: we still don't have the test harness that CSS WG uses set up yet
20:35:09 [nikos]
... so tests will just sit in the repository for the moment
20:35:27 [nikos]
heycam: we did agree on a template
20:35:30 [nikos]
... it's on the wiki
20:35:42 [nikos]
... the format is a bit different from the 1.1 tests
20:36:09 [nikos]
Thomas_Smailus: textLength was a feature that has tests but no one implemented
20:36:15 [nikos]
heycam: I'd try Opera, but don't know
20:36:41 [nikos]
Thomas_Smailus: there was something about if at least one browser supports then it's supported?
20:36:57 [nikos]
heycam: if we have two implementations we normally keep a feature when looking to remove
20:37:25 [nikos]
Topic: Variable Width Stroke
20:37:41 [nikos]
heycam: Brian could you summarise?
20:37:55 [nikos]
birtles: I posted to the list a particular use case I have
20:38:25 [nikos]
... which is related to manipulating a path when you want to bind the width to points on the path
20:38:34 [nikos]
... one example is a drawing application where the path is built from touch events
20:38:48 [Tav]
I am having trouble phoning in... says 26631 is restricted.
20:39:05 [nikos]
... another example is a shape and you want to set the width of the stroke at particular points and it sticks to the points when you resize the shape
20:39:21 [heycam]
heycam has changed the topic to: http://lists.w3.org/Archives/Public/public-svg-wg/2013JanMar/0064.html
20:39:44 [heycam]
heycam has changed the topic to: http://lists.w3.org/Archives/Public/public-svg-wg/2013AprJun/0100.html
20:41:04 [nikos]
birtles: for my two examples, it's useful to attach the stroke width to points in the path -details in the mail
20:41:24 [nikos]
... Rik replied with another use case which is where you want to reuse a particular stroke width profile
20:41:33 [nikos]
... on paths which have different number of points to widths
20:41:39 [Zakim]
+ +33.9.53.77.aacc
20:41:44 [nikos]
... his example is an illustrator tutorial
20:41:57 [Tav]
zakim, aacc is me
20:41:57 [Zakim]
+Tav; got it
20:42:23 [nikos]
nikos: that was always the use case I imagined when talking about variable stroke width
20:42:31 [nikos]
Thomas_Smailus: it would mimic writing with fountain pen right?
20:42:37 [nikos]
birtles: yes
20:42:57 [nikos]
cabanier: it's a poor mans version of that - it's simple to implement but doesn't mimic the pen exactly
20:43:26 [nikos]
birtles: the application I'm involved in is a variable on that theme, where if you push harder it gets thicker
20:43:53 [nikos]
cabanier: pressing harder need not match up to a point though
20:44:11 [nikos]
birtles: that's a detail, even if you bind stroke widths to points, you can have more widths than points
20:44:41 [nikos]
... so to summarise, we have two use cases, one where it's desirable to attach stroke widths to points, and one where you use percentages along the path
20:44:55 [nikos]
... in inkscape they are kind of tied to points, but you have offsets from the points
20:45:08 [nikos]
... I think we need to come up with a proposal to cover both approaches
20:45:18 [nikos]
... I'd like to make sure we don't make it difficult for applications like I describe
20:45:26 [nikos]
s/describe/described
20:45:37 [nikos]
... it would be unfortunate for my application if we only had percentages
20:46:03 [nikos]
cabanier: I don't think it would be that hard
20:46:47 [nikos]
... it feels like we are going to do the same thing twice
20:46:56 [nikos]
... and it depends how we apply the curve to the variable stroke width
20:47:02 [nikos]
... I'm not sure you can add points to Catmull-Rom
20:47:17 [nikos]
... beziers might be overkill
20:47:25 [nikos]
... what does InkScape do?
20:47:35 [nikos]
Tav: there are 4 different types of interpolation
20:47:48 [nikos]
... cubic bezier, cubic bezier johan, linear, and spiral interpolator
20:48:24 [nikos]
... spiral path is complicated, it uses parts of spirals, hard to explain quickly
20:48:33 [nikos]
... font forge has an implementation
20:48:43 [nikos]
... it gives nice smooth paths but can go crazy sometimes
20:49:14 [nikos]
heycam: Brian, what do you think we should do initially?
20:49:22 [nikos]
cabanier: we definitely don't want straight line interpolation
20:49:29 [nikos]
shepazu: what do you mean by straight line interpolation?
20:49:33 [nikos]
heycam: I mean just linear
20:49:36 [birtles]
s/Brian,/Brian, Rik,/
20:50:00 [nikos]
shepazu: I experimented a lot in the past on how to do variable stroke width
20:50:04 [nikos]
... the syntax is the hard part
20:50:24 [nikos]
... tying it to particular nodes is extremely unintuitive, percentages is probably more intuitive
20:50:37 [nikos]
Tav: when editing in InkScape, I think you want to tie it to the nodes somewhat
20:50:45 [nikos]
cabanier: do you really think about the nodes when editing?
20:51:00 [nikos]
Tav: suppose you want to modify the existing curve and you want the changes to follow that
20:51:04 [nikos]
shepazu: percentages would do that
20:51:18 [nikos]
cabanier: you can just calculate where the percentages are, and adjust those
20:51:43 [nikos]
... you have all the information in the application so you can recalculate the percentages
20:51:50 [nikos]
shepazu: thats an authoring tool implementation detail
20:52:12 [nikos]
... suppose you have a percentage, in one mode of your tool, if you change the length of the path the percentages stay the same
20:52:23 [nikos]
... stroke width changes remain at the same percentages
20:52:33 [nikos]
... in another mode when you make the path longer, the percentages change
20:52:50 [nikos]
... I'm trying to avoid tying it to modes
20:52:59 [nikos]
Tav: try live path effects on InkScape
20:53:20 [nikos]
... it's not tied exactly, if you drag a width point along, it moves to the next node
20:53:35 [nikos]
shepazu: Here's another possibility; we could allow units
20:53:46 [nikos]
... if we had a property that had a list of links at which it changes
20:54:06 [nikos]
... we could have units and allow em, percentages, pixels
20:54:31 [nikos]
birtles: I think that's good
20:54:53 [nikos]
shepazu: we have two scenarios
20:54:57 [nikos]
... fixed positions of the width node
20:55:02 [nikos]
... and variable positions of the width node
20:55:16 [nikos]
... and both these are supported by using different units
20:56:05 [nikos]
shepazu: by pixels I mean unit less device co-ordinate
20:56:12 [nikos]
s/co-ordinate/co-ordinates
20:56:53 [nikos]
shepazu: I have to give a caveat - I have never tried this, it's my intuition
20:57:16 [nikos]
... I have a third option, if we say widths are tied to percentages or pixels
20:57:27 [nikos]
... there could be a third thing where we have a keyword or something where we tie it to particular nodes
20:57:34 [nikos]
birtles: that was my suggestion originally
20:57:55 [birtles]
s/that was my suggestion originally/I thought that was what you were suggesting/
20:58:21 [nikos]
shepazu: we have different kinds of segments, and they have a differing number of nodes, and the nodes may not be on the line
20:58:24 [nikos]
... e.g. a bezier
20:58:52 [nikos]
... if we are talking Catmul-Rom, I can see a lot of value in attaching to the nodes
20:59:17 [nikos]
cabanier: the control points of the bezier are not useful for attaching widths to
20:59:29 [nikos]
shepazu: so we have a third option - put it at a node on the path
20:59:42 [nikos]
... so for beziers control points would not be included
21:00:01 [nikos]
... I don't know how much complexity that would include, but I think those three options will provide real flexibility
21:00:20 [nikos]
heycam: when Brian was talking about the nodes, I thought he was talking about the endpoint of each segment
21:00:23 [nikos]
... perhaps with an offset
21:00:42 [nikos]
shepazu: I think that gets very complex syntactically
21:00:53 [nikos]
Tav: that's what InkScape does
21:00:59 [nikos]
cabanier: an author would never think like that
21:01:19 [nikos]
shepazu: and for hand editing it seems unintuitive
21:01:34 [nikos]
birtles: I suggested an example on the list, where you are resizing a box
21:01:41 [nikos]
cabanier: do you need to know that in the markup?
21:03:02 [nikos]
heycam: boxes are simple, I'd be interested to know if it applies to other more complex shapes?
21:03:45 [nikos]
nikos: the box is a simple example but it shoes that it can get complicated to keep stroke width profiles attached to segments without Brians idea of attaching widths to indexes
21:04:04 [nikos]
birtles: perhaps we need to consider different syntax proposals on the list
21:04:24 [nikos]
Tav: it would be interesting to look at what we are trying to do and craft syntaxes for them
21:05:04 [nikos]
shepazu: do we agree that we would want to have different stroke widths for inner and outer stroke?
21:05:13 [nikos]
cabanier: no
21:05:41 [nikos]
.. we discussed in Sydney
21:05:57 [nikos]
shepazu: I think that will frustrate people, I think they would want asymmetry more
21:06:11 [nikos]
birtles: would you be able to show some examples?
21:06:31 [nikos]
... I think we discussed it may be nice to have but for SVG 2 we could add later
21:07:29 [nikos]
shepazu: Let's say we have a property, it lets you do pixels or percentages and it's a list
21:07:53 [nikos]
... we say that's good enough for version 1 - symmetrical stroke width
21:08:20 [nikos]
... it makes it harder to do the syntax later on if we want to add asymmetrical stroke widthds
21:09:00 [nikos]
birtles: when we make proposals perhaps we can include ways we could extend
21:09:20 [nikos]
cabanier: I think there's a lot of complexity with asymmetrical variable stroke
21:09:27 [nikos]
heycam: I don't think it would be too complex unless they overlap
21:10:05 [nikos]
birtles: once you have asymmetrical strokes, does it suggest you want negative widths?
21:11:07 [nikos]
shepazu: what is the proposed syntax?
21:11:28 [nikos]
... for asymmetrical strokes, you have a stroke width and you want the stroke width to be applied at ...
21:11:46 [nikos]
... you have three values for asymmetrical and two for symmetrical
21:11:54 [nikos]
... width along the path, and how wide you want it at that point
21:12:01 [nikos]
... 100% is 100% of the overall stroke width?
21:12:37 [nikos]
... e.g. stroke width = 15, 100% at 10 pixels means 100% at 10 pixels, and you could say 120% or whatever
21:12:45 [nikos]
... and that modifies the stroke width at that point
21:13:34 [nikos]
Tav: InkScape does absolute length. I don't see an advantage to using percentages
21:13:57 [nikos]
cabanier: You can reuse profiles
21:14:49 [nikos]
shepazu: I was thinking the width would be specified as a length for each point, but I like the idea of it being a percentage of the stroke width
21:15:16 [nikos]
... one of the things we were talking about was the interpolation
21:15:26 [nikos]
... how would we control that, would it also be a list?
21:15:47 [nikos]
... e.g. at some point it's one type of interpolation and at another use another type
21:15:57 [nikos]
Tav: you could always put nodes close together if you want sharp edges
21:16:06 [nikos]
shepazu: so we'd have a third property?
21:16:38 [nikos]
... stroke width, variable stroke width, and the third is the variable stroke width interpolation - it's a keyword to select the interpolation
21:17:19 [nikos]
cabanier: You can use Catmull-Rom as it does not need extra control points
21:18:06 [nikos]
shepazu: let's say we might have asymmetrical stroke width and I go from 0 - 100% and I want it nicely curved - shaped like a C
21:18:25 [nikos]
... somewhere along the curve we would want it to be a certain width
21:18:37 [nikos]
... are we talking about widths being defined along the normals? or is it always flat
21:18:46 [nikos]
cabanier: what do you mean by normals?
21:19:03 [nikos]
shepazu: if you draw a line that is the tangent
21:19:11 [nikos]
cabanier: yes it should be the nomral
21:19:14 [nikos]
s/nomral/normal
21:19:42 [nikos]
Tav: there's something else to think about - how do we handle end caps and line joins?
21:20:06 [nikos]
... this is where the arc line join in InkScape comes from
21:20:13 [nikos]
cabanier: Whats the deal with line joins?
21:20:29 [nikos]
... you would still cap it out - it would just be modified by the width
21:20:45 [nikos]
Tav: what does it mean to have a bevelled cap, or a square cap?
21:20:59 [nikos]
.. if your lines aren't coming in parallel anymore
21:21:10 [nikos]
... comes up in asymmetrical and symmetrical cases
21:21:32 [nikos]
Tav: suppose you specify the end of your path to be 2 pixels wide and away from the end it's 10 pixels wide
21:21:51 [nikos]
heycam: so at the point where the semicircle connects to the path, the path isn't continuous anymore
21:22:00 [nikos]
... for a normal stroke they would be going in parallel
21:22:40 [nikos]
cabanier: let me try in illustrator
21:23:28 [nikos]
... it seems like it's capping with respect to the angles of the edges of the stroke
21:24:00 [nikos]
birtles: I wonder what all the different topics are we need to follow up on
21:24:08 [nikos]
... first would be syntax - I'm happy to start discussion on the list
21:24:22 [nikos]
... other issues we can also follow up on the list
21:24:37 [nikos]
... just want to clarify - Doug you were talking about different interpolation modes
21:24:41 [nikos]
... is that something we want or not ?
21:25:02 [nikos]
shepazu: personally I feel we should have different modes - but perhaps only two at first - Catmull-Rom and straight
21:25:31 [nikos]
birtles: I wasn't sure if Tav and Rik were agreeing with that
21:25:57 [nikos]
nikos: I'd like to see some examples
21:26:13 [nikos]
Thomas_Smailus: yeh without seeing some graphical use cases I'm not sure how it would look
21:26:43 [nikos]
heycam: If we have curves, they at least degenerate nicely into straight lines
21:27:04 [nikos]
... that's not to say it might not be nice to have syntax to specify sharp changes
21:27:26 [nikos]
birtles: Doug do you want to produce some pictures and start a new thread?
21:27:48 [nikos]
... if we decide it's complex, we can only allow one to start with
21:27:56 [nikos]
shepazu: I think it's a minor use case to have anything other than a smooth interpolation
21:28:21 [nikos]
... so I'd be comfortable with only having a single interpolation now and later introduce an interpolation property if we see the need
21:28:30 [nikos]
... it should be a simple change to the syntax
21:29:02 [nikos]
heycam: I wonder if you had control over the interpolation, whether it would be per segment or overall
21:29:22 [nikos]
shepazu: I think for calligraphic writing you would want to control per segment
21:30:14 [nikos]
... would be great for fonts
21:30:31 [nikos]
... you could use weights
21:31:07 [nikos]
Tav: I've experimented with fonts and it was quite difficult
21:31:37 [nikos]
nikos: it seems like for calligraphy, tuning the variable stroke widths would be so complex that you might as well just use complex paths to start with
21:32:40 [nikos]
heycam: Brian do you want to gather up the proposals on the wiki page?
21:33:10 [nikos]
birtles: there's still a lot that's changing so for now I'll send some stuff to the list with a straw-man proposal
21:36:48 [Zakim]
-Tav
21:37:35 [Zakim]
- +1.425.373.aaaa
21:37:43 [Zakim]
-cabanier
21:37:48 [Zakim]
-Doug_Schepers
21:37:49 [Zakim]
-heycam
21:37:51 [Zakim]
-nikos
21:37:51 [Zakim]
GA_SVGWG(SVG1)4:30PM has ended
21:37:51 [Zakim]
Attendees were +1.425.373.aaaa, [IPcaller], birtles, heycam, +61.2.980.5.aabb, nikos, Doug_Schepers, cabanier, +33.9.53.77.aacc, Tav
21:37:59 [nikos]
RRSAgent, make minutes
21:37:59 [RRSAgent]
I have made the request to generate http://www.w3.org/2013/05/09-svg-minutes.html nikos
22:37:06 [glenn]
glenn has joined #svg
23:05:51 [birtles]
birtles has joined #svg
23:37:28 [Zakim]
Zakim has left #svg
23:58:59 [glenn]
glenn has joined #svg