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 on GTK3. 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 the Node Tool.

Future Work to do

  • Complete the manipulate multiple handles feature of Node Tool. (here)

  • Work on the delete behaviour of path in Node Tool.

  • To contribute to Inkscape by solving bugs and testing new features related to the Geometry tools.