GSoC 2024: Final Submission
This article is a description of the project I spent time developing during this Google Summer of Code 2024 session at BRL-CAD.
Project Title :
Develop further the new GUI for BRL-CAD!
Project Proposal :
Mentors :
Himanshu Sekhar Nayak & Amanjot Singh
Project Overview :
For my Google Summer of Code (GSoC) project, I worked on the new GUI of BRL-CAD, called Arbalest. My main contribution was developing the “Highlight Selected Object” feature. This feature visually distinguishes a selected object on the screen by highlighting it in yellow, making it easier for users to interact with the objects in the interface.
Additionally, I fixed a critical issue with the “Select” feature. Previously, the selection functionality would fail whenever the document changed, leading to inconsistent behavior. I resolved this problem, ensuring that object selection now works as expected, regardless of document changes. Apart from these two major contributions, I also addressed several minor bugs to improve the overall stability and usability of the interface.
This project enhanced the user experience in Arbalest and was a great opportunity to contribute to BRL-CAD’s development.
Pull Requests :
I have created many pull requests before and during the project tenure and most of them were merged.
Majour Features :
I have majourly worked on two main features of the Arbalest.
- Fixed select primitive feature of Arbalest : Earlier the select premitive feature of the Arbalest wasn’t working properly. Its behaviour wasn’t what we were expecting. It was glitching whenever a new document was created. The issue was, the activeDocumentId wasn’t getting updated whenever a new document was created. I fixed this issue. Debugging the whole thing was the toughest part in this feature.
- Highlight Selected Primitive : I created this new feature where whenever a new object was selected, it was highlighted in a new different colour for now which is yellow. This helps in precisely selecting the part which one is trying to select. This was one of the most challenging thing I did during the project time. I learnt best practices about rendering and how rendering code works.
3. Home/Landing Page : I also updated the landing page of Arbalest by giving the text a feature which are clickable and can be used to perform the actions like creating a new file and opening a project.
4. Fixing Bugs : I fixed many small bugs here and there that were there earlier.
Future Scope of Improvements (Issues) :
- The select primitive and highlight features don’t work when a single object is there in the screen. This issue needs to resolved.
- Raytrace don’t work properly. During the last days of my project, I started working on this part but wasn’t able to make much progress.
- We need to click on focus button before using SelectPrimitive feature. Without doing this, SelectPrimitive feature would not work.
- All the buttons in Edit button don’t work. They all give the same error which is “You cannot transform top objects”.
My next plans :
- I will continue coding..
- Continue fixing all the issues that I wasn’t able to address during this period.
- Learning more about Qt and C++ and make Arbalest a success.
- I will stay in touch with all the mentors for future contributors.
- I wish to be Mentor in GSOC’25.
Conclusion :
Working with BRL-CAD was a great experience for me. I learnt a lot of new things during this period of three months. Majour learnings were how to write clean and production level code, collaborating with other contributors and majourly how a open-source organization works. Working with these great mentors brought me with a lot of learnings and help me understand how things works in production. Thanks to Google, BRL-CAD and all the amazing mentors that I got during this time of my GSOC’24.