Roadmap
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Inkscape Development Roadmap
NOTE: This is a working document showing specific near-term tasks needed for achieving the numbered milestones.
Milestones 0-12 have been completed since the start of the Inkscape Project. See OldRoadmap
Milestone 13 - Inkscape 0.47 - Refactoring / Cleanup
New/Changed Dependencies
- GTK 2.12 (required)
Architectural Refactoring Effort
- Lib2geom Integration
- Eliminate code in favor of
2geom
where feasible
- Eliminate code in favor of
- Convert remaining GTK dialog code to GTKmm
- Eliminate all use of
sp_repr_new
in favor ofXML::Document::*
classes (see [1]) - Subsystem Rearchitecture
- Implement gradient UI “release” handler to deal with gradient garbage collection (see bug 984854)
- Note: I can't find this bug on Inkscape. Could someone locate and link it?
--Zearin 18:48, 5 November 2009 (UTC)
- Note: I can't find this bug on Inkscape. Could someone locate and link it?
- Create an API for tracking references and avoiding id clashes on import and interdocument copy/paste. The optimal place to put it would probably be somewhere at the XML level
- Streamline style
- Eliminate use of the style.h types in as much of codebase as possible, particularly display
- Externally, it should present a simple set of accessor methods for getting/setting properties by name, and propagating to/from repr
- Inside, it should have:
- a concise list of property names with the expected domain of values in CSS and the associated Inkscape data type
- a concise list of property aliases which represent one or more properties combined, each with the rule used to combine
- definitions of the aforementioned rules and value domains
- some generic code (not tied to any one property) implementing the needed behavior
Codebase Cleanup Effort
- Change to use of GQuarks instead of
#defines
where feasible - Use
autoscan
andautoreconf
to find out which configure tests are still needed- Trim down the amount of stuff in our configure.ac
- (PARTIALLY DONE) DirectoryReorgProposal
- Convert all tabs into spaces (convert tabs to 4 spaces)
- [Remove trailing whitespace]
- Replace use of C macros (e.g.
SP_IS_PATH
) with C++ instance methods, static class methods, etc. - Use Copy/Paste Detector to find and refactor duplicated code
User Documentation Effort
- Rearrange tutorials into sub-categories
- (PARTIALLY DONE) Switch to use of
xml2po
for tutorial files (Colin Marquardt) - Document filters
Inkscape SVG Effort
- Revisit coordination system (move away from Cartesian)
User Interface Effort
- Improvement of SVG patterns UI—make it similar to gradient-drag, instead of piggybacking knotholder
- Palettes
- Custom palettes like from Gnome
- Ability to load 3rd-party palettes (e.g. Pantone, Trumatch, Focoltone, Toyo, etc.)
- Reenable fuzzy font matching [bulia]
- Improve freehand curve smoothness [pjrm, paraprax]
Testing Effort
- Include some rendering tests in `make check'.
- Get `make check' to pass on Win32 and OSX (with the current
btool
, does this mean a `btool check' should pass?) - Investigate performance measurement testing for Inkscape
Animation Effort
- Create a written conceptualization of how it should work
- Currently, part of the concept discussion is at here
User Documentation Effort
- More tutorials
- Node editing
- Advanced text effects
- Grid snapping
- Connectors
- Creating photo-realistic art
Performance effort
- Support Hardware acceleration
- Take advantage of OpenGL 2.1 or dx9 to enhance editing and display performance.
- (Note: OpenVG would be better suited for Inkscape's needs but I'm not sure about its status. --Tweenk 00:53, 26 July 2009 (UTC))
- Take advantage of OpenGL 2.1 or dx9 to enhance editing and display performance.
- Multi-Processor
- Boost performance on multi-core processor.
GUI effort
- Layer panel
- Add object selection in layer (similar to Adobe Illustrator).
- Tab document
- Open and create new document(s) in the same window.
- Menu icons
- Compact icons
- Grayed icons
- Tool icons turn into color when hovering or selected (similar to Adobe Illustrator).
- Multi-page
- Multi-page tool (similar to Artboard tool on Adobe Illustrator CS4).
Milestone 14 - Inkscape 0.48 - Animation
File Format Support Effort
- PDF Import/Export
- Choice of PDF spec. (PDF/X-1a, PDF/X-3)
- Add file info/comments
- Add color bars
- Visio support
- Add extension for use of VDX2SVG (http://vdxtosvg.sourceforge.net/)
- (OBSOLETE)
Add extension for use of PDF2SVG(http://cgit.freedesktop.org/~cworth/svg2pdf/)
DOM Binding Effort
- Evaluate Adobe Activescript to use instead of Spidermonkey for our JS engine
- Create sample prototype app to explore ActiveScript
- Decide whether to go with Spidermonkey or Adobe ActiveScript
Tools
- correct handling of multiple font faces by Text tool
- Filters tool
- Get basic rendering and authoring of simple animations working adequately
Desktop Integration Effort
- [PARTIALLY DONE] Inter-application cut-and-paste
- Inter-application drag-and-drop
Architectural Refactoring Effort
- Complete
lib2geom
integration
DOM Binding Effort
- Create tool that reads the W3C idl files and generates binding code
- Bind XPath parsing/execution
- Finish the
CSS-DOM
classes - Add a run mode in a separate window that runs and displays the scripted SVG
Desktop Integration Effort
- WebDAV/FTP support via GVFS, KIO, Neon, or the like
- Finish making printing work more efficiently and reliably
- Clipart manager GUI
Inkboard Effort
- Ensure multi-user conferences work across most JEP-compliant Jabber servers
- Conduct an informal security analysis of Inkboard for security flaws
File Format Support Effort
- PDF Import/Export
- Generate multipage PDF documents
- Define bleed and slug areas for offset printing
- Add crop, bleed and registration marks
Inkboard Effort
- Stabilize the code by closing crash bugs in the bug tracker
SVG Feature Compliance Effort
- Animation
- Sketch out UI mockup ideas for animation rendering/animation
- Make an ultra-preliminary proof of concept of at least one animation feature
Extension Effort
- Unification of the way to display help on extensions
- Localizable help of bundled extensions
- Effect extensions browser
Milestone 15 - Inkscape 0.49 - Prototype all SVG Mobile features
SVG Feature Compliance Effort
- Ability to select which SVG spec version to save as
- Multi-page
- Animation
- Implement perspective transformations via PerspectiveObject
- Path editing
- Shaped strokes
- Masking/clip paths
- on-canvas editing (patch for 0.47 is ready)
- Should work like gradient tool to apply transparency
- hyperlinking
- Ensure Inkscape does not throw away the internal DTD subsets of documents it reads
Milestone 16 - Inkscape 0.50 - SVG Mobile Support
SVG Feature Compliance Effort: (Also see SVG Tiny Compliance)
- Multi-page
- Scripting
- Markers
- Inherit stroke properties (like color)
- On-canvas editing
- Fix snapping issue
- Real CMYK / LAB / HSB support
Milestone 17 - Inkscape 0.51
Architectural Refactoring Effort
- cairo Adoption Effort:
- Integrate a cairo-based SVG Canvas library
- follow the Freedesktop Icon Naming Spec for easier themeing
File Format Support Effort
- Native Adobe Illustrator file Export /
Import(DONE)- (DONE)
Requires good PDF Import/Export
- (DONE)
- Native CorelDraw file Import/Export (currently uses UniConvertor)
- DXF import/export
- Improved raster support via
Gdk::Pixbuf
Milestone 18 - Inkscape 0.52 - Tech drawing abilities
User Interface Effort
- Implement
iso(DONE) and hex grid - Editable toolbars (
GTK::Toolbar
class) - Geometrical constraints
- “Perpendicular-to”, “Parallel-to”, etc.
- Path trimming/extending/offset
- Filleting tool
Extensions Effort
- Implement extension registry for users to upload/download extensions via Inkscape
- Dia-like smart shapes support
(CAD and BlueprintGeometricAndTechDrawing)
Milestone 19 - Inkscape 0.53 - Inkcore
- Separate sections of code into various libraries for use by other programs
- inkcanvas
- inkview
- inkscape