⬆️ ⬇️

Interviews with the developers of Inkscape

It is completely unrealistic to talk to almost fifty people of each (out of 111 registered on SourceForge) who participated in the development of the new version of Inkscape, and this is not even counting those who just sent a patch. We bring to your attention interviews with several students who have participated in the Google Summer of Code 2007 program, as well as several key Inkscape developers.

Maximilian Albert

Dossier : Heidelberg, Germany. Prepares for the defense of a diploma in mathematics (just passes the final exams), sings in various choirs and vocal groups and writes Inkscape code. When you started working on the parallelepiped drawing tool, was this the ultimate goal of the project, or was it the first step for functionality like extrusion for you? Of course, I remembered the extrusion, as well as a couple of other useful things (in particular, it would be great if we could add more “geometric” functionality to the program, see the link below). Maybe you want to read the original proposal, in particular, the “Further ideas” section. http: //www.rzuser. uni-heidelberg .de / ~ malbert / But since we are all strong in hindsight, the plan turned out to be too ambitious: - / Unfortunately, the refactoring of the created tool, which had to be done at the end of the SoC, took the time I could spend on implementing new functions . And since now I am busy with final exams, it is unclear what will happen next and whether I can continue to work on the project (besides the improvements in the already written code). But hope dies last :) The good news is that the refactoring made extrusion fairly easy to implement. It was only after the end of the SoC that I was able to truly study lib2geom, and after playing a little with this library, just overnight I could create a dynamic contour effect that draws an arbitrary contour in a given perspective :) Nevertheless, integrating this code into Inkscape will still require some effort and labor (in particular, on the part of the graphical interface). But the first attempts look promising. Oh well. If extrusion is a logical next step, then what else can you do based on this code? The already mentioned outline drawing in perspective (generally speaking, closely related to extrusion) is something that can and should be realized. I think that the creation of grids based on parallelepipeds could also be implemented without much difficulty. Anything beyond this will require improving the infrastructure or interacting with other parts of the code, and I cannot say exactly what else could be the next natural step. Of course, the parallelepiped drawing tool itself also needs to be improved, improved functionality and convenience, so that in the near future it may not turn out to take on serious new tasks. ( nevertheless, Maximilian plans to participate in the Summer of Code again this year - approx. lane )

Johan Engelen

Dossier : Enschede, Holland. He is working on small electrical instruments for his doctorate, playing the guitar, drums and saxophone, working on Inkscape 1.0. Dynamic contour effects ( hereinafter - LPE ) take Inkscape to a new level of flexibility. Could you briefly describe how they work? Inkscape stores the original path in the "inkscape: original-d " attribute of the path. When the program finds such an attribute, it applies the effect to it, which is referenced in the “inkscape: path-effect ” attribute, and outputs the result to the usual “d” attribute from the SVG specification. Viewers and other editors will ignore these additional attributes and only display the resulting outline. Thus, LPE is a 100% valid SVG that will be shown the same everywhere. Schematically, this chain can be represented as: “inkscape: original-d ” => LPE calculation => “d” Since the original contour that is being processed is also stored in the document, you can change it in Inkscape and the program automatically recalculates the effect (and the result will be re-recorded in the attribute "d"). Most effects have a number of variable parameters. These options are stored in the SVG file section. It’s probably best to just run Inkscape, apply the effect and see what the SVG code looks like in the embedded XML editor! All mathematical calculations are performed using the library lib2geom (or, as we call it, 2geom). Despite its youth, this is already quite a powerful library, which greatly simplifies the programming of work with contours. She really helped me in my work on LPE, without her it would be much more difficult to cope with the task. We plan to rewrite most of Inkscape using 2geom functions. Is it possible to easily connect new dynamic contour effects? One of the goals of my work on the GSoC project was to create an infrastructure to write new LPEs, without knowing too much about the insides of Inkscape. And although all the effects in 0.46 were written only by me, three new effects written by another person have already been added to the code base of the next version of the program (I personally like most of them imitation of a pencil drawing). Now all LPEs are embedded in the Inkscape executable code, so, roughly speaking, it is still impossible to download a new effect from the Internet and connect it. But in the future I am going to create an extension architecture for LPE that will make this a reality. What other interesting effects can be done with LPE? Now there are some amusing effects that demonstrate the capabilities of LPE in Inkscape. I think that on the basis of LPE it would be possible to do dynamic boolean operations with contours. In addition, I lead a group of French students working on the dynamic effect of spatial distortion. When they finish with this, the next step may be distortion on the grid. ( These students also work on the LPE grouping, as now only one dynamic effect can be applied to the contour - note. )

Gail Carmichael

Dossier : working on a Master of Computer Sciences degree in Ottawa and kicking ass in taekwondo classes, and in between the first and second he tries to participate in the design of Inkscape. The text changes in version 0.46 that are the result of your GSoC2007 project are probably not very noticeable to users. Do they lay some foundation for future improvements? Indeed, most of the work done is not as noticeable as, say, a tool for drawing parallelepipeds. But precisely because the tool is so easy to neglect, and it is for this reason that I chose this project for the Summer of Code. Two tasks that I focused on in my project are the element support and the new font definition attribute in text elements. Thanks to the latest enhancement, users will no longer have to encounter duplicate fonts or non-selectable fonts in the dialog. In addition, the foundation has been laid for changing how we enumerate typefaces and patterns in the dialogue ( that is, we can now separate names from patterns in any arbitrary way). And it will be possible to support fonts that can not be described using CSS . I hope that sooner or later I will be able to implement this too. Before taking part in Google Summer of Code 2007, you worked twice in Corel internship. How different is working in a free project from working for a corporation? Working in a team that you don’t see in front of you is completely new to me, although I was fortunate enough to meet with the key developers of Inkscape at the Libre Graphics Meeting conference in Montreal shortly before the start of the summer program. Participation in such a project gives you the freedom to work on what is most interesting for you. And besides, it is rather curious that all software development projects, be it free or not free, suffer from the same problems. For example, regardless of whether I work in a corporate development team or in a team that writes open source, I inevitably make mistakes. The only difference is how exactly these errors are reported, how these errors are investigated and corrected. In open source software development projects, the user community is more involved in this process.

Miklos Erdelei

Dossier : engaged in web programming , drumming on computer and piano keys. In her free time she relaxes, drawing in Inkscape just for fun. Last year, you participated in the Google Summer of Code for the second time and worked on Inkscape again. Last time it was exported to PDF with Cairo, into this one - import PDF / AI with poppler. Looks like you enjoyed working at GSoC :) What was the most valuable experience for you? GSoC is great because you really get involved in the project, and your code can be useful to thousands of people (and besides, you get paid for doing your hobby). The most important thing for me was to understand that interpersonal skills and the ability to discuss with other people difficulties in work are just as important as the ability to write good code. Are you going to participate in the project again? Yes, I plan to participate in the program for the third time. In addition to fixing bugs, I have a few ideas for improving PDF import, such as processing embedded fonts, importing metadata, and improved support for translucency. As for exporting to PDF and (so far) not very mature Cairo renderer, improving some parts of this code would at the same time help to pass more tests for SVG 1.1 compliance, not to mention improvements that can be made just because modern backend PDF Cairo is much better than what was available during my first GSoC project. Last year you worked on importing PDF / AI. How does your import filter handle the colors in the CMYK markup and the colors associated with a particular color profile? Currently, the importer uses the Poppler functions to convert all colors to RGB. This can be changed quite simply, because Poppler already has support for the CMYK color space and ICC profiles .

Bryce harrington

Dossier : Portland, USA. He works at Canonical on X.org, the rest of the time he is happy to carpenter and coordinate the preparation of new versions of Inkscape. Unfortunately, Inkscape can be damn slow when dealing with complex documents. Recently it was stated that when working on version 0.47, the focus will be on refactoring the code base. Does this mean that only duplication of code will be eliminated , etc. ? , or should we expect to optimize the use of memory and speed up the program, to ensure the safety of streams and other fat dropping with Inkscape? We plan to work not on performance, but rather on getting rid of copy-code, correcting code style, correcting object references, reorganizing source code files, transferring common functions to libraries and subpackages, further rewriting code from C to C ++ and completing architectural changes, previously started, but so far unfinished due to a change of priorities. Theoretically, this should significantly improve the situation with respect to thread safety. Possible improvements in performance will be more random, but we hope that with a cleaner code base, improvements in performance will become more obvious and easier to implement. However, the lack of performance is often the result of algorithmic constraints. In order to fix this, a transition to other data structures or alternative logic, which may be temporarily unrealistic due to the amount of refactoring work that would entail, is necessary. Working on 0.47 would be an ideal time to take such actions, so I hope to see ideas on such changes in the task list. In addition, refactoring will lead us closer to the planned transition to the renderer Cairo. And then we can use the Cairo development team to help speed up the work of the program with complex documents. Are there any plans to optionally use a GPU (for example, via cairo-glitz )? Yes, as soon as we fully switch to Cairo (after the release of 0.47), the use of the GPU will become an important goal for us. It takes a lot of testing and collaboration with the Cairo community to get the most out of this venture. Some Inkscape developers are seen in creating related projects that may or may not be used in the main project later. Dynamic contour effects, which appeared in 0.46, largely use 2geom , a library that implements computational geometry algorithms, although its integration was conditionally planned for version 0.47. Can you name other subprojects that are in line for inclusion? Perhaps Adaptagrams ? Many people have high hopes for 2geom, because the project has great potential. I look forward to the day when the library will go through the alpha stage and be released separately so that it can be linked in a more familiar way. A complete transition to 2geom will allow you to transfer a decent part of the main Inkscape logic into a separate code that is easier to maintain and optimize. One of the core values ​​of Inkscape as a project is people (often new project participants) who bring such ideas with them. Using code from other projects is one of the most remarkable features of open source code. We have already seen remarkable work on extensions and LPE, and I hope that 0.47 / 0.48 will have a convenient extension architecture that can be developed and distributed independently of the program itself. This could stimulate the creation of new subprojects and remove some of the core Inkscape code in order to remove excess weight from the program and simplify its support. Inkboard is another subproject that has already been actively worked on, and which nevertheless has not yet been formally included in Inkscape. Unfortunately, it is not maintained as actively as it deserves, and a number of critical errors make it difficult to use. It would be a great project for someone who wants to create a subproject with such functionality. I expect that one fine day an animation subproject will also appear, because we are very often asked to do so. Although there is a discussion on this topic on the mailing list for developers, we are still waiting for a trial implementation of the ideas expressed. I think this is a great and promising project for someone with a lot of time and the need for an interesting and challenging project.

John binz

Dossier : works and plays in Baltimore, USA. If he is not at work as a web programmer , then he does something related to comics (most likely he draws his own “A Moment Of Clarity” comic for children of all ages). His work on Inkscape is to make the program the best tool for drawing, illustrating, and comic. If he is not staring at the monitor, he drinks beer and thinks about creating comic books. In the new and radiant whiteness version Inkscape 0.46 a powerful tool has appeared that traces any closed area (vector or raster) and turns it into a new contour filled with the specified color. In the past, we have already seen Adobe abandon the external vectorizer (Streamline) in favor of Live Trace in Illustrator CS2. Could it be that the tracer fill will later force out the existing potrace-based tracer? Or will this tracer itself become an interactive tool (especially if one considers that its part related to SIOX still needs to be improved)? In truth, I don’t know :-) My experience with a potrace-based tracer is limited to what I needed to create a tracer fill. A touch fill from my tool would be great for a SIOX-like fill of the desired areas into properly colored vector objects. I think that this tracer will still be needed to convert the whole image into curves, say, a logo, without having to switch from tool to tool. Well, I simply do not have enough experience with Live Trace to judge exactly how this feature works. Your first contribution to the project was at the end of 2003, at the dawn of Inkscape. But you wrote the fill tool only last year. Does this mean that only now Inkscape has become the most suitable tool for your work on comics? Well, this patch, correcting some of the flaws in the Sodipodi interface, was written years before I conceived “A Moment Of Clarity”, not to mention drawing and painting it in a vector. I didn’t start using Inkscape seriously for my illustrations until 0.44, when the calligraphy pen finally became a tool for my drawing style, and when the layer support was improved. And even then, the program had stability problems that made the drawing process difficult. But after communicating with the developers, these shortcomings were quickly eliminated. Tracing and Corrector became the links in the chain, giving Inkscape a huge advantage over other drawing tools. Apart from scanning the original pencil drawings into GIMP and exporting images optimized for printing and uploading to the Web using ImageMagick, all my comics are made entirely in Inkscape. Now that version 0.46 has finally been released, I have no remorse, recommending the program to other comic book authors interested in using vector graphics and disliking the approach of other software developers to hand-drawn illustrations. I have already shown trial builds of the program to familiar artists, and all of them, with a couple of exceptions, asked when the final version would be released :)

Ted Gould

Dossier : Los Angeles , USA. He works at Canonical on Ubuntu, and enjoys photography, hiking and graphics. The new version of the program is a serious step towards improved support for SVG thanks to new project participants specializing in filters and text. What could be the next major milestone in 0.47 in terms of functionality? Has a fiery writing on the wall mentioning SVG Fonts come to me? :-) ) I try not to predict such things until the functionality of the new version is frozen: it’s just amazing how many unexpected things people manage to do. But if we talk about the most significant features of SVG, which are not yet implemented in Inkscape, then SVG Fonts is probably the last of those. So if this is done at 0.47, then this will be a big event. However, when working on 0.47, we plan to focus on polishing the code and the stability of the program, so perhaps they will be the main achievement of the new version. The effects of raster image processing, which appeared in 0.46 thanks to a GSoC student, ImageMagick and you :), are destructive, while the SVG filters that appear in the same version are non-destructive. Do you see any way to combine them in one interface, or at least make both of them non-destructive? I do not like to call anything destructive in the program, because it implements a powerful system of action history that allows you to roll back any change. So that user data always remain inviolable. But the effects that store the original data, I still would like to see. Probably, further LPE integration will help with this. As for the combination of interfaces, it is unlikely to ever happen, since the effects and filters do different things: some change the document, and the second change the properties of the renderer. Integration with various smart web services seems to be turning into a trend. In the design niche, you can see the integration of Adobe Illustrator with Kuler, Corel DRAW X4 with WhatTheFont, and now Inkscape 0.46 can work with the Open Clip Art Library. Do you think Inkscape should continue to move in this direction? I like the fact that Inkscape can work with Open Clip Art, and yet this is not exactly what is needed, because most users use several applications in their work, and not one. Integration with similar services should be implemented at the level of working environments, rather than individual applications. I hope that soon we will see how this happens, and then, I hope, Inkscape will use ready-made infrastructure.

John cruz

Dossier : a software engineer who has worked with handheld computers, and with huge servers, and with infrastructure, dealing with the multimedia, entertainment industry, modems for cable television, Linux, security, and wireless communication in addition to the previously mentioned. We assume that in the project you will get everything related to color :-) Color management has appeared in Inkscape 0.46, but still there is no usual editing of color samples. You once mentioned that you can use Agave as an external sample editor for this. What is the most likely way to provide the missing functionality now applied to color samples in version 0.47 and beyond? In fact, we strive to provide sensible support for all types of samples, and not just flat color samples. Imagine how a graphic designer, designer of clothes or even interiors collects various items in a “sample catalog”. A sample may even be a scrap of matter, and we want to take such moments into account. Moreover, this corresponds to the way the artist thinks and works. For Inkscape users, this means that we will try to give them an interface in which the samples will be abstracted from the internal implementation. This will allow you to collect flat colors, gradients, textures , etc. individual “sample catalogs” that can be shared between documents and re-used elsewhere. So, let's say, the author of the comic will be able to create a separate catalog of samples for each character and quickly get access to “Hair of Petit” or “Blouse of Masha” without unnecessary gestures. It would be especially cool to store such directories in separate shared files. The CREATE working group has already developed a new format for shared color palettes. I am going to take this format as the basis for such external files. Not everyone who worked on it felt the need for something besides a flat color, but there were still exceptions. So I will try to do it in the spirit of the existing standard, so that other applications can easily support my format. At a minimum, we can exchange “complex” colors (spot colors, register colors, CMYK , etc. ) and basic gradients. In GIMP, there are more complex gradients ( besides linear and radial, as in SVG, there are also conical, spiral, etc. ), but the gradients in SVG can be viewed as a subset of GIMP gradients, so that they can also be exchanged. And if you manage to use CSS , data exchange can be further enhanced. Thus, we will kill two birds with one stone. First , we will provide a convenient interface for managing color sets, gradients , etc. , close and understandable to artists. Secondly , we implement it in the most standard and shared way. Agave, Inkscape, Scribus and GIMP can all benefit from this, and I am in touch with the developers of all these programs to make sure the community benefits in general. As far as I know, you are currently working on improving support for input devices. Do they mean tablets like Wacom and Aiptec, or do they include devices like Griffin Powermate? Can you tell me more? The first part of the work concerns the support of tablets and similar devices. GTK + provides a standard cross-platform mechanism for accessing their capabilities, and we already use it in the Calligraphic re and Corrector. I am currently working on improved support for this API so that we can provide a more convenient interface for configuring and managing such devices. I also add support for defining various devices (stylus, eraser, tablet mouse , etc. ) so that the tools and their parameters automatically change depending on the device used. By coincidence, another developer at the same time implemented support for named presets of the calligraphic pen ( this will also appear only in version 0.47 ), which will be a great addition to improved support for tablets. In addition, we plan to make it possible to bind different actions to buttons on tablets, stylus, etc., which leads us to the second phase of the project ... ... to implement support for devices like Powermate, ShuttlExpress, Nulooq , etc. , as well as a variety of MIDI-controllers and similar glands. GIMP already has support for various devices, so we at least have a role model. The main limitation now is the lack of people with similar devices and ready to participate in testing. If they respond and participate in the discussions, we can provide adequate support much faster. The third stage is the creation of a high-level, user-friendly configurator and the ability to use the same settings in different applications. This means that the same tool can work the same way, for example, in GIMP and Inkscape. Or we will develop with other projects an even more global approach to the management of such devices.

Bull byak

Dossier : a non-programmer from Canada who unexpectedly discovered that he was responsible for a decent part of Inkscape. - , 0.46 . - ? :) - — . , - , : . . , ; . , : , . , 1911 , , . : , — - . . — , . , Inkscape . ? , , . : , , , . , , , . , , Inkscape. ? Of course. , . Inkscape .


')

Source: https://habr.com/ru/post/27100/



All Articles