 Okay, so my talk is mesh conceptions, not about fonts. Is this on? Like I said, not about fonts. I'm going to focus on a couple of tools that I've been working on the last six months or so. There are tools that are complex enough that they take a long time to work out bugs in. I want to have it as part of a larger goal of tool sharing where you can use the same interface. Is it this or this? Or maybe I can put it up. Testing, testing, testing. Hello? Can you hear me? Hello? Hello? In back. I see you. They're saying yes in back, so I'm assuming. I think that's what they're saying in back. Okay, so I have a broader goal of tool sharing where you can use different interfaces in different applications. Kind of a great example so far is libmypaint, which is for like pixel brushes. And there's another like gimmick is for filters that can be used as a plugin in all kinds of places. But there's not any equivalent one for using interfaces for. Maybe you also try this one. Okay. This one should also work. Microphone number two. Hello? Hello? Is this one working? No. Go on with this one. Try it afterwards. Microphone number three. Is this one working? Can people hear? No. Hello? Can you speak up a little bit? Can you speak up a little bit? Okay. Can you hear me? Take number 57. So vector tools, blah, blah, blah. So let's see. You have a certain set of tools. You have a particular goal in mind. You feel like you should be able to do something with your current tools, but you might not be able to in one situation. So you might work with your current tools to figure out, like hack together some combination of your current tools within one application that gets the job done almost. So you might get part way, but not quite all the way. So you might just end up getting frustrated with using the just the set of stuff that's in one particular program. But let's say you're familiar with this other program, and you know that other tool would be absolutely great to use in this other situation. It would be great to use a completely different approach in this other program. So this glue method is, of course, much better than the nail, like a single nail. I mean, that could come lose, who knows, docile it around, but glue much better. Anyway, so one of the tools I want to specifically focus on that could benefit from sharing are meshes. Meshes have become more popular in the last few years. Scribus, for instance, has point warping where you can manipulate a mesh and warp points. It can do mesh gradients, but I have to say they're quite difficult to figure out that they are actually in Scribus or how to use them. It's very difficult to get to. You can't really subdivide meshes very well. So Scribus could use much improvement in that area. Meshes have been in the PDF specification for a long time, so the technology has been around for quite a while. So like all the math has been worked out, there's not huge barriers to getting these things implemented. It's more just a matter of being able to use things. There's also been meshes developed for Inkscape. We might hear more about that later, I'm sure. One great thing about that is that you start a mesh in the mesh branch of Inkscape and it adapts to the shape. That's great. The controls for it is I think it's still kind of being worked out. Meshes can be quite complicated tools. If you're able to share interfaces, it would be quite useful. GIMP sort of has mesh, kind of, I guess. You can bend just a curved bend. It's extremely difficult to use. It only goes in one direction. If GIMP were able to use something like a mesh transformation, that would be great. Can I do this with just one hand? No. I'll show you a couple of applications for meshes. One is, of course, the color mesh. With this particular tool, it's pretty easy to subdivide. You can change different levels of types of meshes. I guess the main push at the moment for SVG meshes is to have 12 points around each mesh patch. I personally prefer the 16-point version. It just gives a little more flexibility for not very much more complication really, mathematically anyway. You can kind of get lost in the points, but to me that's more of an interface problem. Color meshes are pretty common. What other kinds of stuff can you do with meshes? One thing that I've been working on is an experimental feature, which I have to enable with that. Mesh along path. You can do something like that and have a mesh automatically map along the path. I was hoping to have an inkscape plugin that does the same thing by now, but it's like many things that I didn't quite get done. That's unfortunately one of them before now. But I'm working on it. It would operate as an effect in inkscape, not necessarily as a tool at this point. There's other kinds of ways to map the gradient to the mesh, either one gradient all the way along. You see these caps are pretty ugly on the ends. That kind of needs work. You just want the basic outline, same sort of thing. With these, you can go back with the mesh tool and modify the mesh. You see all these millions of points there? That's kind of annoying, but you at least have the ability to do it. One problem with tool sharing is that you have to remember that it's best if you are able to remember what kind of object it came from, so you can go back and use that same tool. I kind of envisioned it as a list of tool plugins. It might become difficult to manage the tools. In inkscape, if you're able to group a bunch of tools and hide or show different tools that you want to use, that would be great. Most programs like GIMP Scribes or whatever, it's just a static list. I'm not really aware of how to configure it, so you can use it all that easily. The last mesh application I want to demonstrate is an engraver filling tool. It's very difficult to do with one hand. With this, you can use exactly the same mesh control points that manipulate your mesh. You have all these lines. You can change the rotation of the lines however you want and the spacing of the lines. You can also, once you have the orientation of the lines like you want, you can change brush size by dragging around kind of like in Greta almost, and then go back and make things thicker or thinner. I have many plans for this sort of engraving fill. I like to make drawings that have millions of little lines in them. If I had something like this, my concept is I would save millions of hours if I could automate it somewhere. This is a very simple application of lines. For my preferred method, there would be methods. My preferred method of using a tool like this would be to allow merging of lines. You have much more control over depth and spacing and all kinds of stuff like that. There is also a blockout in here so you can remove parts that you don't want. It's non-destructive so you can put it back. These are just some things you can do with meshes. There's all kinds of very precise distortions you can do. Meshes are great for mapping rectangles onto any other shape. Unlike, for instance, I personally find the cage warp in GIMP. It's great for just sort of like moving around a puppet, but if you have a specific area to transform, I personally find it difficult to use, but meshes can do it quite well. In this slide, this is supposed to demonstrate the difficulty of getting programmers to work. Here's the flapping coder flying along, flying through the treacherous realm of JavaScript prototypes and object-oriented C code and stuff like that. If you were able to share tools you would cut down on a lot of developer time integrating. You would just have to program a little bit of glue code to map stuff in the plug-in to objects in the software. The second tool that I've been working on is the symmetry tool. This is the dialogue in Inkscape for this clone Tyler, which is really quite hideous in my opinion. It's very powerful, but you have to have an IQ of a million to get it to do anything useful. There's been some attention to it. There is a Google Summer of Code kind of remapping it. Someone made a pretty detailed specification of things that you could do with it. So tile repeatedly and then automatically cap lines around it. This would be an outstanding addition to the clone Tyler. I've implemented something that's a little bit different than that. The clone Tyler, as it exists in Inkscape, only does pretty much the wallpaper groups they're called and radial. Which basically only takes one shape and then repeats it in various transformations to other shapes, like rotates it around, flips it around. But in many cases of symmetric decoration, you usually have two or three or more different color tiles. So there might be a lizard here and a person here or something. So you need the different tiles to be able to be mapped. So if the magic works, then I will show that. I'll stand here. Such service. This is great. Well, a brown dwarf perhaps. All right, so... Here's my tiling tool. Each tiling pattern has a base tile set. So this is the simplest one that called the P1 tile. If you resize that, if you activate it, it renders in this kind of green area. This is just a boundary. Ultimately, that'll be an arbitrarily shaped boundary. But it's sort of loosely, if something is inside there, it gets rendered and it repeats based on the position of your base tile. Now you can take other images, for instance, this dashing anteater, giant anteater. You place it in the cell and it can just repeat like that. Click. Click damn you. All right. Backup mouse. All right, so if you select another tiling pattern, take your image and put it down, then remap and it magically transforms everything and sort of a neat pattern in the image anyway. But you can do stuff like that. Let's see. Let's take another case where... Let's do this one. So this one's a much larger pattern. It has three different cells. Oops. So if you place images in each of those cells, it'll map into it. The interface is still kind of clunky, so don't hate me. Oops. Then select the blue one. Now you can do something else. There's the monument to Franz Kafka and rocks in the Czech Republic. Oh, I forgot to select the next tile blue. So now if you place your images all in the base pattern, it magically maps them all into a specific pattern. Using a base tile system like this allows you to use the same interface for kind of recursive patterns also. For instance, this spiral one. So if you take your anteater you don't have to use an anteater. It's preferred if you have one. So if you place it in there, this is a recursive pattern, so it rotates it slightly and zooms it back in. So it's very adaptable. You can have different repetitive paths, so you can have trees kind of branching out. I do not have a specific example for that right now, but it is possible. So that's kind of where I'm coming from. I would love to use these tools in other programs. The screen renderer and layout is really crappy. I don't know who programmed this crap, but in other programs it might be better. So it's good to focus my energies on stuff that I like to do and then just use it in things that have a lot of expertise and like Inkscape or other renderers to get things done. So here's a slightly more work-depth version of using the Tyler. So this is two tiles patterned on top of each other. The nest is sort of one group of stuff patterned around and that's the spiral just going all the way down. So if a project is out there and that wants to implement some kind of tool sharing, please let me know. I would love to talk to you. So we can share microphones again, maybe. There are questions. Yeah, I wonder if you would like to use it in Inkscape. Why do you develop it for your own tool? Mainly because I am intimately familiar with all the innards of layout. It's much faster for me to do something in layout. I've been trying to rehabilitate the summer of code stuff in Inkscape just to learn the internals, but it's very slow going. It would be worthwhile for me to know that stuff, but it's a huge code base in itself. Mainly it's just easier to develop it there. I'm not tied to very many dependencies. If I have some other artistic need that comes up, I can just focus on that. Since I don't have a lot of users that complain about every single change in the interface, it allows a lot of freedom, I guess. Next question. Over there. Do you have file export and layout? What type of file format could I get? If I wanted to design from you, how could I expect it? What sort of format do you use? It can export as PDF, as PostScript, as CPS, SVG, PNGs, a variety of stuff for the engraving tool. I'm going to have it be able to export to the Powerstroke version of Inkscape. That's a pretty powerful thing. You can do lots of wacky stuff with it. That's almost done. One of the things I didn't quite get done before today. Last question. If there is any, otherwise you're gone. We have a bit delay, but we also have one talk less. I think we are a bit flexible there. Can you try the microphone? Yeah.