Roadmap
Jump to navigation
Jump to search
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