Inkscape tiling interface redesign proposal
Ah well, I have no idea if the wiki image upload issue will be fixed, so I just made everything into an image and uploaded it somewhere else:
http://postimage.org/image/7f9ms5kw3/
As you can see, central concepts include: 1. Transformations separated into groups that people other than tile mathematicians understand 2. And moved to a dedicated dialogue. Basically: - One-time filters -> floating boxes - Properties that may need future editing -> side-dialogues By the way, radial transformations to use polar coordinates. 3. Top level interface to address most common use cases, while more advanced options (clutter) are moved to an extra button that you can access. 4. Guides can be edited on canvas... 5. ...and locked or unlocked to objects, so you can create half a vase, stick a symmetry on it, then move the whole thing around as though it were one object. 6. Stacking symmetries or tilings as you would LPEs
I'm probably missing a lot of things, but it doesn't hurt to make a few proposals to see what people's thoughts are. :) So what do the rest of you think? Is this a direction you think can lead somewhere, or do you think the interface should be taken in a completely different direction?
2012/2/1 Valerie <valerie_vk@...36...>:
Ah well, I have no idea if the wiki image upload issue will be fixed, so I just made everything into an image and uploaded it somewhere else:
http://postimage.org/image/7f9ms5kw3/
As you can see, central concepts include:
- Transformations separated into groups that people other
than tile mathematicians understand 2. And moved to a dedicated dialogue. Basically: - One-time filters -> floating boxes - Properties that may need future editing -> side-dialogues By the way, radial transformations to use polar coordinates.
I was thinking about the tiling thing for some time and I came to a conclusion that usability-wise the tiling dialog is a cruel joke (adjusting numbers by trial and error? seriously?). Manipulating the tiling should be done on the canvas using control points. We need an additional tool, Tiling, that would have 2 modes: 1. In the first mode, it would work like the selector tool: you could move, rotate, skew, etc. objects, but it would only translate the centers of the objects rotating or scaling them. This tool would allow one to adjust the spacings in the tiling. 2. In the second mode, dedicated canvas points would appear that would allow one to expand / shrink the tiling. Alternatively, these could be two separate tools grouped under one button in the tool selector. The controls bar would contain a dropdown for the symmetry type with icons that illustrate what they mean.
I'm not sure whether symmetries should be lumped together with tilings. A lot of the time people want to apply symmetry to a single path, and they want a single path as a result, not 2 paths that are mirror images. I think that either the LPE mechanism should be improved to fix this case, or the symmetry functionality should be added directly to the node tool.
- Top level interface to address most common use cases,
while more advanced options (clutter) are moved to an extra button that you can access. 4. Guides can be edited on canvas... 5. ...and locked or unlocked to objects, so you can create half a vase, stick a symmetry on it, then move the whole thing around as though it were one object. 6. Stacking symmetries or tilings as you would LPEs
I think that LPE stacking is an awful hack that papers over the fact that you can't use an LPE result as a parameter to another LPE. This entire area needs a big redesign, which I once described in more detail on the list as a "new XML representation for LPEs", but my attempt at implementing this got nowhere as I would need to introduce incompatibilities with existing SVG files.
Regards, Krzysztof
Am Mittwoch, 1. Februar 2012 schrub Krzysztof Kosiński:
[...]
Manipulating the tiling should be done on the canvas using control points.
Please keep a possibility to specify precise numbers, too. Sometimes (especially with more technical drawings) I know exactly what the distances/angles/... have to be.
[...]
Tobias
2012/2/1 Tobias Ellinghaus <houz@...173...>:
Am Mittwoch, 1. Februar 2012 schrub Krzysztof Kosiński:
[...]
Manipulating the tiling should be done on the canvas using control points.
Please keep a possibility to specify precise numbers, too. Sometimes (especially with more technical drawings) I know exactly what the distances/angles/... have to be.
Here is my idea for numeric entry, which would make sense to introduce universally across all tools. The right click menu is not very useful at the moment. It should be replaced by a small pop-up toolbar (similar to OpenOffice's table toolbar) that would contain spinboxes for numeric entry, and apply / cancel buttons. Depending on the type of control point, the toolbar could contain different spinboxes, e.g. for a handle in addition to x/y coordinates it could contain the angle to its node and length. For the offset control point, it would contain the offset width. This way there would be no need for cluttered dialogs and a few things could be removed from the tool controls bar.
Regards, Krzysztof
Excellent! I totally forgot about technical drawing, which should be one of the major applications of "tiling."(I think this is what you had in mind when you mentioned symmetries? Because in the case of pattern design, you want a lot more than just one fused line)
So here's what I propose: - Independent mode: clones are separate objects. - Fuse mode: output is fused with the original.
Then there should be a command to convert the symmetry/tile group into paths (object to path?).
In fact, the reason I didn't make a tool out of it from the start is because of two things: - in the past some developers have said that one should avoid making too many new tools as it's starting to clutter the interface. - too many sub-options... (could still be moved to a separate dialogue though)
The first reason is actually the very reason I asked about the
toolbar interfaceright before, because if the clutter option
could be solved, then tile optionscould be a tool without cluttering anything.
I agree that tools with sub-tools could simply have a small arrow to pop up sub-tools for one to choose accordingly.
Anyway, I also agree that LPE stacking is awful, because the stacking isn't intuitive. Stacking symmetries is more intuitive though. That said, stacking should still be possible with the following sequence: - Adding a symmetry or tiling to an object automatically creates a group consisting of the object and its clones. You have to enter the group to edit the original, but this isn't necessarily a bad thing, it means if you are making patterns you can easily move the group around and also add extra objects to them.
- More symmetries or stacking can be added to this group
In any case, I'll think up a new interface proposal with a tool- based approach in mind.
----- Original Message ----- From: Krzysztof Kosiński <tweenk.pl@...400...> To: Valerie <valerie_vk@...36...> Cc: Inkscape-devel inkscape-devel@lists.sourceforge.net Sent: Thursday, February 2, 2012 2:00 AM Subject: Re: [Inkscape-devel] Inkscape tiling interface redesign proposal
2012/2/1 Valerie <valerie_vk@...36...>:
Ah well, I have no idea if the wiki image upload issue will be fixed, so I just made everything into an image and uploaded it somewhere else:
http://postimage.org/image/7f9ms5kw3/
As you can see, central concepts include:
- Transformations separated into groups that people other
than tile mathematicians understand 2. And moved to a dedicated dialogue. Basically: - One-time filters -> floating boxes - Properties that may need future editing -> side-dialogues By the way, radial transformations to use polar coordinates.
I was thinking about the tiling thing for some time and I came to a conclusion that usability-wise the tiling dialog is a cruel joke (adjusting numbers by trial and error? seriously?). Manipulating the tiling should be done on the canvas using control points. We need an additional tool, Tiling, that would have 2 modes: 1. In the first mode, it would work like the selector tool: you could move, rotate, skew, etc. objects, but it would only translate the centers of the objects rotating or scaling them. This tool would allow one to adjust the spacings in the tiling. 2. In the second mode, dedicated canvas points would appear that would allow one to expand / shrink the tiling. Alternatively, these could be two separate tools grouped under one button in the tool selector. The controls bar would contain a dropdown for the symmetry type with icons that illustrate what they mean.
I'm not sure whether symmetries should be lumped together with tilings. A lot of the time people want to apply symmetry to a single path, and they want a single path as a result, not 2 paths that are mirror images. I think that either the LPE mechanism should be improved to fix this case, or the symmetry functionality should be added directly to the node tool.
- Top level interface to address most common use cases,
while more advanced options (clutter) are moved to an extra button that you can access. 4. Guides can be edited on canvas... 5. ...and locked or unlocked to objects, so you can create half a vase, stick a symmetry on it, then move the whole thing around as though it were one object. 6. Stacking symmetries or tilings as you would LPEs
I think that LPE stacking is an awful hack that papers over the fact that you can't use an LPE result as a parameter to another LPE. This entire area needs a big redesign, which I once described in more detail on the list as a "new XML representation for LPEs", but my attempt at implementing this got nowhere as I would need to introduce incompatibilities with existing SVG files.
Regards, Krzysztof
On 01-02-12 19:00, Krzysztof Kosiński wrote:
... I was thinking about the tiling thing for some time and I came to a conclusion that usability-wise the tiling dialog is a cruel joke (adjusting numbers by trial and error? seriously?). Manipulating the tiling should be done on the canvas using control points. We need an additional tool, Tiling, that would have 2 modes:
Can't wait :)
... The controls bar would contain a dropdown for the symmetry type with icons that illustrate what they mean.
It would be great if the symmetries could also be chosen on-canvas, at least to some degree. You already have the "control points", if we could select a control point and say that it should be a center of rotation of order 2/3/4/6 and/or select an "axis" and specify that it should adhere to reflection or glide reflection, then I think it should be possible to generate all 17 wallpaper groups intuitively, without actually having to memorize them, consult a cheat sheet, or even knowing that they exist. Also, if you want to have paths with certain symmetries, then it becomes even more logical to be able to control symmetries through control points/lines on the canvas.
The main catch is that obviously not all combinations are possible, and that control points could not be placed at arbitrary positions. So this would likely require a fair amount of "guides" to be placed. If you're interested, I would be willing to help figure out what would be needed (what control points/line we would need to support, what combinations are possible, what positions they can have, etc., etc.), and possibly make some mockups.
It would be great if the symmetries could also be chosen on-canvas, at least to some degree.
[snip]
Although the idea is interesting, I'm a bit confused about it. That said, I'm not that familiar with the 17 transformations in the first place, so I have trouble visualizing your proposal on my own. So, if you do come up with a corresponding interface, it could be very interesting. :) Right now I am also discussing toolbar grouping options, so for the "tools" version of tiles and symmetries I'm going to assume that I can make a tool with sub-tools.
In this case, I'd be dividing into the following sub-tools: - Point symmetry - Symmetry - Rectangular tiling - Triangle tiling (P3 and P6 transformations) - Copies along path (maybe)
Within the sub-tools, you'd then have extra drop-downs, with visual previews of the transformation types. I'm thinking that it'd be a text drop-down but with a bigger image preview on the side.
Since "better guides" are on Inkscape's to-do list, I'm pondering between the following possible workflows: 1. Adding a symmetry or tiling generates a new guide. 2. To generate a symmetry or tiling, you need to select the object and an existing guide already on-canvas. The idea is that you'd have a guide made to position your starting object in the first place. 3. It could be both: if a guide is selected when applying tiling or symmetry, Inkscape uses it by default. If not, if generates a new one.
Lots of possibilities, many depending on features that don't seem like they will be implemented anytime soon, though I'm in no hurry so all's good.
2012/2/2 Valerie <valerie_vk@...36...>:
In this case, I'd be dividing into the following sub-tools:
- Point symmetry
- Symmetry
- Rectangular tiling
- Triangle tiling (P3 and P6 transformations)
- Copies along path (maybe)
Mathematically the best division would be into point symmetries and plane symmetries (aka tilings). For example, axes of symmetry and mirror planes are point symmetries, while P1 tiling is a plane symmetry. This is somewhat important, as for example you can have a sevenfold axis of symmetry as a point symmetry, but there is no plane symmetry that has such an axis.
http://en.wikipedia.org/wiki/Wallpaper_group http://en.wikipedia.org/wiki/Point_groups_in_two_dimensions
Regards, Krzysztof
Good point! I forgot to add radial tiling in there by the way. But what's a sevenfold axis of symmetry?
Now that I look at your links, I realize it's not as simple as that either. I should take a better look at the different types of transformations... (and ignore the coming headache)
Maybe the Tiling tool could still combine everything and work like this: - When you select a new object with the tiling tool, a drop-down in the tool control bar shows "none." The various types of transformations are listed. A larger preview with the cell structure shown in your first link is also shown (are those picture under CC license? Could we just grab
them?).
- When you select a tiling type and press "add", Inkscape make a group out of the object (suggested default behaviour so that users can add more items into it) and create a basic cell for that transformation as
guide. This cell can be edited on canvas. - Eventually Inkscape can toggle on an off a view of extra cell boundaries so users know what's going on. This gets dynamically updated as the basic cell border gets updated.
Under this proposal, the sub-tools become: - Symmetries - Radial clones - Tiling - Clone along path (maybe?)
I want to keep simple symmetries (point and axial) separate because they are very basic use cases. I'm among those who'd run for the hill if I had to deal with the whole tiling interface just to get half a vase. :S Also, simple symmetries are something technical drawers could use often for example, the tiling interface is more suited for pattern design.
----- Original Message ----- From: Krzysztof Kosiński <tweenk.pl@...400...> To: Valerie <valerie_vk@...36...> Cc: Inkscape-devel inkscape-devel@lists.sourceforge.net Sent: Friday, February 3, 2012 12:22 AM Subject: Re: [Inkscape-devel] Inkscape tiling interface redesign proposal
2012/2/2 Valerie <valerie_vk@...36...>:
In this case, I'd be dividing into the following sub-tools:
- Point symmetry
- Symmetry
- Rectangular tiling
- Triangle tiling (P3 and P6 transformations)
- Copies along path (maybe)
Mathematically the best division would be into point symmetries and plane symmetries (aka tilings). For example, axes of symmetry and mirror planes are point symmetries, while P1 tiling is a plane symmetry. This is somewhat important, as for example you can have a sevenfold axis of symmetry as a point symmetry, but there is no plane symmetry that has such an axis.
http://en.wikipedia.org/wiki/Wallpaper_group http://en.wikipedia.org/wiki/Point_groups_in_two_dimensions
Regards, Krzysztof
Hi!
I missed the start of this thread. In case it has been forgotten (I did): http://thorwil.wordpress.com/2010/08/30/inkscape-tiled-clones/
Breaking it down to the transformations instead of listing the wallpaper groups might shorten the path from a user's intention to result in some cases, but would hide the space of unique options. It's rather hard to assemble the groups from scratch ...
On 03-02-12 09:20, Thorsten Wilms wrote:
Hi!
I missed the start of this thread. In case it has been forgotten (I did): http://thorwil.wordpress.com/2010/08/30/inkscape-tiled-clones/
Those are indeed quite nice!
Breaking it down to the transformations instead of listing the wallpaper groups might shorten the path from a user's intention to result in some cases, but would hide the space of unique options. It's rather hard to assemble the groups from scratch ...
You might be right, but I'm not 100% convinced just yet :) At least some of the wallpaper groups are probably easier to think of in terms of "what they do", rather than the entire pattern at once. On the other hand, if you have nice pictograms... There are, after all, only 17 possibilities. However, if one looks not just at the wallpaper groups, but at symmetry in general, then it might make a lot more sense to think about it from the point of view of rotation centers and such.
In case it has been forgotten (I did): http://thorwil.wordpress.com/2010/08/30/inkscape-tiled-clones/
Actually, I Did remember it. But it's been so long that I don't even remember where I put the mock-ups -I- did back then. xD Thanks for linking them back! We'll just go with yours.
Anyway, here we go! Tiling tool:
http://postimage.org/image/o67xqo55v/
Now, looking more into the different tiling styles did convince me that it's just better to have them all together (the guides are too different).
On the other hand, I still insist to have separate Symmetries and Radial Clones sub-tools (and maybe clones along path). The reason is that Symmetries is something pattern designers will use for the patterns themselves, and technical drawers could just slap it on half their lines, but tiling serves for welll... making lots of tiles.
And Radial Clones remains separate because controlling radial clones with the current tiling interface feels like making babies cry. Polar coordinates please! Besides, the 17 transformations are meant to fill wallpaper pages, not create circular designs.
I still have to do the interface for Symmetries and Radial Clones, but it's a big start.
Oh by the way, I started the Toolbar tool grouping wiki page: http://wiki.inkscape.org/wiki/index.php/Tool_Grouping_and_Interface_suggesti...
It's a pity I can't just show images from outside the wiki. Anyway, I still have a bunch of mockups to do, so it will get updated in the coming days.
Hurrah! I managed to solve an interface issue that likely has all of you staying up at night (okay, probably not): how to easily create seamless tile patterns for all tiling types.
The solution involves allowing the creation of "Guide points" on the boundary guides. Whenever you create a guide point on one of the sides, copies appear on other corresponding sides, so you can just edit your original object for another path to link to the point.
Guide points can be moved around, and their copies get moved along with them.
What's more, if you shift-drag on a guide point, a segment appears on both the original guide points and its copies, so you can use them as angle guides to create smooth transitions.
It gets better: you can break the tiling with a "fuse path" method. When that happens, all the tiles are joined by the nodes located on the guide points! http://postimage.org/image/ae0dae6mh/
You can also create "guide point pairs" that allow fusing objects instead of paths instead, so the fills behave correctly. http://postimage.org/image/kqmnwh05l/
Now even I can easily create seamless P3 and P6 patterns!
Anyway, I now have everything in a dedicated wiki page: http://wiki.inkscape.org/wiki/index.php/Tiling_tool
It's a pity image upload still don't work. I have the toolbar designs available now too: http://postimage.org/image/9w57ujh1l/
The only big thing left for me to do is to figure out the work order for Clones Along Path. I want to integrate Pattern Along Path (Repeated and Repeated stretched) into this mode (Bend and Pattern Along Path: Single modes can be integrated into a sub-mode of Transform or Node instead via the ability to add a control spline to an object).
But the problem is, when a Pattern is applied to a path it's deformed, so editing the original unit becomes a bit problematic. I'll probably figure out an interface for that eventually though.
In the meantime, thanks for everyone's input, I welcome all further comments so that we can work towards a blueprint that we can post out there in hopes that someone on day will eventually get interested. Anyone wants to make Inkscape the most easy program to create seamless tiling for all 17 tiling options? :)
participants (5)
-
Jasper van de Gronde
-
Krzysztof Kosiński
-
Thorsten Wilms
-
Tobias Ellinghaus
-
Valerie