Difference between revisions of "Google Summer of Code 2007"
Line 11: | Line 11: | ||
** [[SOC Selection Criteria]] - how we rate applications | ** [[SOC Selection Criteria]] - how we rate applications | ||
= Project Ideas == | |||
== 3D capabilities == | |||
Inkscape is a 2D drawing tool. However, very often it is used to draw 3D objects. It would be very cool to have more support from the program for doing that, instead of just drawing everything manually. This support can take various forms. What's listed below is just some ideas; feel free to modify them or offering something entirely different in your proposal. | |||
* A 3D box tool would be able to draw a 3D box | |||
* 3D guides | |||
== Native EPS and/or PDF Import == | |||
While SVG is becoming a common format for exchanging data between graphics programs, EPS and PDF are still much more common. Inkscape's current EPS support is flakey, based on 3rd party software, and poorly maintained. The goal is to give Inkscape native EPS and/or PDF import capability. | While SVG is becoming a common format for exchanging data between graphics programs, EPS and PDF are still much more common. Inkscape's current EPS support is flakey, based on 3rd party software, and poorly maintained. The goal is to give Inkscape native EPS and/or PDF import capability. | ||
Line 39: | Line 40: | ||
== Inkboard Portability == | |||
Last year we had a successful project to integrate the SVG online whiteboard capability, called Inkboard, into Inkscape. Unfortunately, it does not work on Windows, so many users are missing out on this capability. | Last year we had a successful project to integrate the SVG online whiteboard capability, called Inkboard, into Inkscape. Unfortunately, it does not work on Windows, so many users are missing out on this capability. | ||
Line 47: | Line 48: | ||
<b>Mentor:</b> Ted | <b>Mentor:</b> Ted | ||
== New Grids == | |||
Inkscape currently has square grids that can be snapped to. Extend this to allow other kinds of grids: Perspective, hex, iso, etc. | Inkscape currently has square grids that can be snapped to. Extend this to allow other kinds of grids: Perspective, hex, iso, etc. | ||
Line 62: | Line 65: | ||
<b>Mentor:</b> TBD | <b>Mentor:</b> TBD | ||
== SVG Filters UI == | |||
Filters are a very important SVG capability | Filters are a very important SVG capability | ||
Line 70: | Line 75: | ||
<b>Mentor:</b> Bulia | <b>Mentor:</b> Bulia | ||
== Adding bitmap capabilities to Inkscape == | |||
While the purpose of Inkscape is to be a vector editor, design in the real world requires dealing with bitmaps too. Inkscape can import the bitmaps, and have them as full canvas objects, but there is no significant bitmap operations in Inkscape. While there is no reason for Inkscape to replicate the functionality of The GIMP, it would be desirable to have a few simple operations available from Inkscape. | While the purpose of Inkscape is to be a vector editor, design in the real world requires dealing with bitmaps too. Inkscape can import the bitmaps, and have them as full canvas objects, but there is no significant bitmap operations in Inkscape. While there is no reason for Inkscape to replicate the functionality of The GIMP, it would be desirable to have a few simple operations available from Inkscape. | ||
Line 87: | Line 94: | ||
<b>Mentor:</b> Ted | <b>Mentor:</b> Ted | ||
== Inkscape / GIMP Bitmap Editing Integration == | |||
Currently, you can embed raster/bitmap images into Inkscape drawings, but editing them is a bit of a hassle because Inkscape isn't really "aware" of external bitmap editing tools. | Currently, you can embed raster/bitmap images into Inkscape drawings, but editing them is a bit of a hassle because Inkscape isn't really "aware" of external bitmap editing tools. | ||
Line 99: | Line 108: | ||
<b>Mentor:</b> TBD | <b>Mentor:</b> TBD | ||
== Text Tool Improvements == | |||
Inkscape's text tool is handy, but still lacks many of the niceties that users would like. This project would seek to address this by implementing various improvements that users have requested. | Inkscape's text tool is handy, but still lacks many of the niceties that users would like. This project would seek to address this by implementing various improvements that users have requested. | ||
Line 116: | Line 127: | ||
<b>Mentor:</b> TBD | <b>Mentor:</b> TBD | ||
== Color Adjustment Dialog == | |||
Currently, it is possible to select, say, 12 objects in the drawing and set them to the same color/gradient/pattern. This project would go a step further, allowing multiple objects of differing color to have aspects of their color (such as brightness/contrast, HSL, etc.) altered, and to operate on vector objects with different fill styles (flat, gradient, or pattern fills), and to bitmaps. | Currently, it is possible to select, say, 12 objects in the drawing and set them to the same color/gradient/pattern. This project would go a step further, allowing multiple objects of differing color to have aspects of their color (such as brightness/contrast, HSL, etc.) altered, and to operate on vector objects with different fill styles (flat, gradient, or pattern fills), and to bitmaps. | ||
Line 124: | Line 136: | ||
<b>Mentor:</b> Bulia | <b>Mentor:</b> Bulia | ||
<b>Mentor:</b> | == SVG fonts support == | ||
We need SVG font support in order to be able to claim SVG Tiny support. While the occurrence of SVG fonts in the wild seems to be pretty low, we will benefit from this by being able to embed fonts and thus ensure rendering of text without converting it to paths. | |||
<b>Mentor:</b> ??? | |||
== External CSS Support == | |||
Inkscape currently has good support for inline CSS, and limited read-only support for an internal stylesheet in a <style> element, and no support for external stylesheets. Support for editing non-inline CSS would allow better expressiveness and adaptation, and smaller SVG files, and better support for SVG generated by other programs that use non-inline CSS. | |||
<b>Mentor:</b> Peter Moulder | |||
== Past Years == | == Past Years == |
Revision as of 22:21, 7 March 2007
This year Inkscape is going to participate, yet again, in Google's Summer of Code 2007. Help us come up with some solid places to innovate and push forward.
Student Applications
- Google program information
- GSoC Application form
- Inkscape-specific information
- SOC Application Template
- Inkscape Roadmap - to see our overall objectives
- SOC Writing Project Proposals - some guidelines for proposals
- SOC Selection Criteria - how we rate applications
Project Ideas =
3D capabilities
Inkscape is a 2D drawing tool. However, very often it is used to draw 3D objects. It would be very cool to have more support from the program for doing that, instead of just drawing everything manually. This support can take various forms. What's listed below is just some ideas; feel free to modify them or offering something entirely different in your proposal.
- A 3D box tool would be able to draw a 3D box
- 3D guides
Native EPS and/or PDF Import
While SVG is becoming a common format for exchanging data between graphics programs, EPS and PDF are still much more common. Inkscape's current EPS support is flakey, based on 3rd party software, and poorly maintained. The goal is to give Inkscape native EPS and/or PDF import capability.
Where the code can be borrowed from:
- For EPS: Scribus' EPS Import Library
- For PDF: poppler library
- For both: Ghostscript (though it may be too heavy for us)
The student needs to evaluate these (or other) possibilities, lay out a plan, and implement a native importer in Inkscape, either using an external lib to link to, or just importing the necessary code directly into Inkscape tree (as we did for Potrace). The end result will be Inkscape being able to correctly import a reasonable majority of EPS and/or PDF files in the wild (we can agree on a more formal conformance test if this idea interests anyone).
Mentor: ???
Inkboard Portability
Last year we had a successful project to integrate the SVG online whiteboard capability, called Inkboard, into Inkscape. Unfortunately, it does not work on Windows, so many users are missing out on this capability.
This work may involve formalizing and extending the Inkboard communication protocol and working on the INKBOARD_PEDRO branch)
Mentor: Ted
New Grids
Inkscape currently has square grids that can be snapped to. Extend this to allow other kinds of grids: Perspective, hex, iso, etc.
This will involve modifying the grid code to support the ability to have multiple kinds of grids, implementing at least 3 new grids, and adding the UI elements to allow users to make use of them.
Requests in tracker:
- Perspective Grid: 2 and 3 point with sample Perl script.
- Perspective Grid: 1, 2, and 3 point.
- Hex Grid.
- Isometric Grid.
- Isometric Grid.
Mentor: TBD
SVG Filters UI
Filters are a very important SVG capability
Inkscape has basic support for filters in general and more or less complete support for Gaussian Blur. What is needed: (1) adding support for more filters and making sure they work well in combination; (2) designing a UI that will be able to create, view, and modify arbitrarily complex filter stacks.
Mentor: Bulia
Adding bitmap capabilities to Inkscape
While the purpose of Inkscape is to be a vector editor, design in the real world requires dealing with bitmaps too. Inkscape can import the bitmaps, and have them as full canvas objects, but there is no significant bitmap operations in Inkscape. While there is no reason for Inkscape to replicate the functionality of The GIMP, it would be desirable to have a few simple operations available from Inkscape.
This project will use the Inkscape extensions system to add a series of bitmap effects. The majority of the effects will be achieved through the integration of the ImageMagick bitmap handling libraries. GIMP may be another source. These effects can then be run on bitmap graphics within Inkscape.
The work should be encapsulated in such a way that in theory, other vector graphics applications (such as Xara), could also use the work. However, for the scope of this project we only require demonstration of the capabilities in Inkscape.
Project Timeline:
- Implement first effect. This involves building Inkscape, linking in ImageMagick and getting one effect written (6 weeks)
- Implement remaining effects within ImageMagick (3 weeks)
- Build a test suite for operations and complete all Doxygen documentation of code (3 weeks)
Mentor: Ted
Inkscape / GIMP Bitmap Editing Integration
Currently, you can embed raster/bitmap images into Inkscape drawings, but editing them is a bit of a hassle because Inkscape isn't really "aware" of external bitmap editing tools.
This project would seek to correct this by modifying inkscape's image embedding code to interoperate more directly with external bitmap programs. For instance, there would be an "open external editor" command that could be used when one or more bitmap images are selected. Another idea would be to include some common bitmap modification commands from the external program, that can be run entirely within Inkscape. A third idea is drag and drop of selections from the bitmap editor to Inkscape, and SVG selections from Inkscape to the bitmap tool.
As a proof of concept, the result should demonstrate this interoperability with GIMP. Note that the code should be developed such that in theory it should work with any bitmap editor, but we would only require demonstration of working with GIMP.
Also see: http://sourceforge.net/tracker/index.php?func=detail&aid=862655&group_id=93438&atid=604309
Mentor: TBD
Text Tool Improvements
Inkscape's text tool is handy, but still lacks many of the niceties that users would like. This project would seek to address this by implementing various improvements that users have requested.
Some ideas for improvements:
- Make flowed text respect the default style of the text tool (a simple bugfix)
- When flowing a text which already contains line breaks, provide a way for the line breaks to be conserved
- When the style selected in the the Text and Font dialog is applied it erases any other style applied to some part of the text (like italics on some words, bold on others...), it would also be better to keep them where appropriate.
- Support text-decoration (underline, overline, line-through)
- Better respect different faces of fonts (Light, Book, Normal, Black etc.)
- Support justified text - might be some subset of those proposed at http://www.w3.org/TR/css3-text/; see also http://bowman.csse.monash.edu.au/~pmoulder/text-in-shape.tar.gz as a possible starting point.
- Search through the Inkscape RFE list for other text and font improvement ideas
See also: http://valessio.ul-jb.org/projetos/inkscape/inkscribus.htm
Mentor: TBD
Color Adjustment Dialog
Currently, it is possible to select, say, 12 objects in the drawing and set them to the same color/gradient/pattern. This project would go a step further, allowing multiple objects of differing color to have aspects of their color (such as brightness/contrast, HSL, etc.) altered, and to operate on vector objects with different fill styles (flat, gradient, or pattern fills), and to bitmaps.
Note: in 0.45, we have a set of extension effects that do this. But they are clumsy and slow. We need this to be in the core of the program with a good interactive UI.
Mentor: Bulia
SVG fonts support
We need SVG font support in order to be able to claim SVG Tiny support. While the occurrence of SVG fonts in the wild seems to be pretty low, we will benefit from this by being able to embed fonts and thus ensure rendering of text without converting it to paths.
Mentor: ???
External CSS Support
Inkscape currently has good support for inline CSS, and limited read-only support for an internal stylesheet in a <style> element, and no support for external stylesheets. Support for editing non-inline CSS would allow better expressiveness and adaptation, and smaller SVG files, and better support for SVG generated by other programs that use non-inline CSS.
Mentor: Peter Moulder
Past Years
- Googles Summer of Code 2006
- Googles Summer of Code 2005