GSOC 2024 Journey
Organisation
Inkscape
Project Name
Improving UX of Node and Bezier Tool
About
My project focused on improving the workflow of editing the geometry of paths. The goal of my project was to combine the strengths of the Pen tool and Node tool with new modifiers and behaviours to improve efficiency by reducing the number of times a user has to switch between both of these tools. A parallel goal was to keep the user-perceived complexity of the tool the same or lower even with adding these new features (i.e. keep the tool easy to learn but extremely useful and fast when mastered).
You can find a link to my complete proposal here.
The journey has been a rich learning experience, where I have gained insights into and had the privilege to contribute to the functioning of industry-standard open-source software. In this blog, I have captured the essence of my journey, outlining the core of my endeavours during GSoC 2024. Delve into the blog to gain insight into the scope of work I have undertaken, the challenges I have encountered, and the unwavering support I have received from the community at every juncture of the expedition.
Code
Blogs
Timeline
Community Bonding Period
I utilised the community bonding period to get familiar with the code base, discuss with team_ux
about how further to carry out the UX changes and prepared a road-map of how I would be implementing the code.
Coding Period
I started by working on reworking Node Tool
. I made the changes suggested in my proposal, I would then have meetings with Adam and discuss further changes that could be made and reiterate over the changes made. This cycle of coding followed by testing followed by coding again was used to complete majority of my work in Node Tool
.
Following that I started working on Pen Tool
. Working on Pen Tool
was comparatively much more challenging as it involved merging the features of Node Tool
into Pen Tool
. The initial changes took very long to implement but once I was confident and familiar with the codebase the following changes were quick.
Summary
As the 12th week drew to a close, I achieved significant milestones in improving the UX of these tools. I successfully implemented all the suggested changes for the Pen Tool
and implemented nearly all the changes suggested for the Node Tool
.
At present, my focus is directed towards completing the implementation of the feature of manipulating multiple handles
in Node Tool
and improving the delete functionality
for the Node Tool
.
Challenges Faced
I needed help building Inkscape on
GTK4
; all my previous work had been onGTK3
. After much struggle with the build commands, I switched to Operating Systems. So, I had to install Linux on my device. This challenge allowed me to learn a new Operating System and the process of boot-loading and installing a new OS, which was a fun experience.As the project neared its conclusion, I encountered significant time constraints. These were primarily due to my relocation to the University and, later, the demands of University exams during the internship season. These challenges underscored the importance of effective time management in project execution.
I also needed help communicating with the UX team in between, as my direct point of contact had become inactive due to a family emergency.
As of now, I have not yet found the most performant and intuitive way to implement the
manipulation of multiple handles
feature of theNode Tool
.
Future Work to do
Complete the
manipulate multiple handles
feature ofNode Tool
. (here)Work on the
delete behaviour
of path inNode Tool
.To contribute to Inkscape by solving bugs and testing new features related to the Geometry tools.
Subscribe to my newsletter
Read articles from Khushal Agrawal directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by