Shapes tool and Better Vector Layers
The absence of dedicated shape creation tools like rectangles, ellipses, regular stars, regular polygons, etc., is notable in GIMP compared to many other graphic design software. While alternative methods do exist within GIMP to achieve similar results, such as using selection tools and paths, these methods can be confusing, especially for beginners. Even for experienced users, these alternatives can be cumbersome and may not provide the same intuitive workflow as dedicated shape creation tools.
To address this gap, implementing dedicated shape creation tools within GIMP would greatly improve the user experience and streamline the design process. By incorporating these tools, users would have access to familiar and efficient methods for creating a wide range of shapes, making GIMP more accessible and user-friendly for designers of all skill levels.
Features of the Shape Tool:
- Draw different shapes such as ellipses, circles, rectangles, polygons, regular stars, etc.
- Creating specialized "Shape Layer" for each drawn shape based on "Vector
Layer".
- User will have option to convert this Shape layer to Vector layer by discarding shape specific information, and to regular layers by discarding the vector information.
- With shape tool selected, user can change size of the shape. This will use same UI as currently used by "Rectangle select tool".
- Modify shape properties directly from the "Tool options" tab for the Shape Tool, including general properties like height, width, fill color, stroke color, stroke thickness, join type, etc and shape-specific properties like and number of sides for polygons and stars.
- Implement a properties box similar to the one present in the current text box for quick access to shape properties like fill color, stroke color, stroke thickness, etc.
- Provide method for adding/importing custom shapes, similar to
importing brushes.
- This will allow user to create shapes depending on their use case, like eg. "Speech Bubbles".
- Implement symmetry option when working on shape layers.
- Quick methods to "merge down and clip" and "merge down and expand" the current layer.
Goals
- Finish up the vector layer and provide intuitive UI for users.
- According to @cmyk.student , vector layers currently have following problems:
- Unintuitive UI
- They are a bit laggy.
- The issue of an unintuitive user interface can be effectively addressed by introducing a dedicated shape tool. By doing so, users will have access to a more intuitive method for creating shapes, reducing the need for manual creation of vector layers to only a few advanced use cases.
- According to @cmyk.student , vector layers currently have following problems:
- Minimize the use of stroke selection option.
- Allow user to rapidly iterate over different settings for things like stroke thickness, color, opacity, etc.
- Get all the features present in GFig plugin to work with vector layer.
Implementation Details (Further discussion needed)
- The shape tool can be implemented as multiple tools one per shape or as a single tool in which user can select the shape to draw with (similar to brush).
- Why separate tools?
- This option is consistent with most of the other graphic tools and users might find it more intuitive.
- Probably easier to implement initially.
- Why single tool?
- This will allow importing external shapes, and using paths as shape with little to no extra work.
- The above common behaviour can be achieved by pinning the tool with some options to the toolbar (a feature consideration for all tools, beyond scope of this project).
- I think that having a single tool will be a better approach, but further discussion is needed.
Action Plan
-
01/05 to 26/05: Community Bonding Period
- Finishing "Auto-growing layers" and fixing bugs.
- Fixing bugs related to Symmetry.
- Discussing and finalizing the UI related details and rough idea of implementation.
- Understanding the existing code related to Vector layers.
- First 4 Weeks: Getting basics of the Shapes tool working.
- Next 4 Weeks: Adding options to customize different aspects of the shapes tool.
- Last 4 Weeks: Adding ability to add custom shapes, by importing and by using paths as shapes.