Google Summer of Code 2023 projects have just been announced, so I thought I’d do a quick overview of what’s coming. This year, some things are totally expected, but there are also some very nice surprises. Let’s get on with this.
Last year’s GSoC champion CmykStudent will be working on an initial implementation of non-destructive editing. This will be a three-part project:
- Research into workflows
- Basic implementation that would allow attaching a GEGL operation to bitmap and text layers
- PSD plugin update to add the importing of layers styles and adjustment layers
In a nutshell, you should be able to add a brightness/contrast filter to a photo and then revisit and adjust its settings. Or add an adjustable drop shadow effect to a text layer.
Idriss Fekir will be improving the text tool, in particular, OpenType support and the UX/UI of the tool. Some of the ideas are changing the typeface search box to a drop-down list (at long last!), making it possible to re-position the on-canvas toolbar and allow inserting alternate ligatures (and other OT features).
The third student, Shubham Daule, will be hacking on making layers in GIMP expand automatically when content goes out of the layer’s boundary. Again, a long anticipated feature. Several years ago, the team already did some work towards that and made it possible to see content outside layer boundaries (useful for e.g. simple non-destructive cropping, see my video below). It’s time to take it further, much further.
One final note here is that none of these projects will be part of GIMP 3.0, those changes are too large at this late stage of development. But we might see some of those in either point releases like 3.0.2, or in 3.2.
The Krita project has one student this year. Srirupa Datta will be improving resources bundling (brushes, gradients, etc.). The development of bundle creation and resources management was a long and painful process during the 5.0 development cycle. It’s time to build more on top of those achievements.
Sanidhya Singh will try to improve the visual appearance of canvas controls like nodes and handles. In the project’s description, he mentions that these controls are “currently very unappealing and outdated”… which is true.
The design hasn’t changed much since the inception of the project. It’s basically what was there in the original project called Sodipodi, and that goes at least 25 years back. The only thing that changed in recent years here is that the size of the node handles is now configurable. So what the student will do here is redesign those controls and use a CSS which then can be further customized by users, if that’s how they want to play it. Here is an example of customized controls from the proposal (more preliminary work from last year is here):
Vaibhav Malik will take the first stab at porting Inkscape to GTK4. The entire port is going to be a huge undertaking. In fact, the team is currently looking for a full-time developer to work on just that. So it looks like the student will do the basics, and then the full-time developer will do a good portion of the rest of the work. Last year, Vaibhav implemented font collections in Inkscape, so he’s already very much familiar with the code base.
The third student, Vansh Uppal, is going to improve CSS support in the program and focus on Nested CSS, Ignore CSS, Importing and exporting CSS, and making use of recently used Attributes.
Blender has been taking less GSoC projects in recent years. Back when they got around 10 projects at GSoC, not all of them were truly successful. Blender got 5 slots this time, so that makes sense. Quality over quantity.
Colin Marmond will bring back node previews in the shader editor. The previews were nuked from orbit when Eevee replaced Blender Internal. But they are making a comeback this year hopefully.
Lucas Tadeu Teixeira will hack on a particular part of the video sequence editor — waveform previews for audio clips. He’s going to make their drawing faster by employing fairly obvious tricks such as rendering what’s visible in the viewport first, and also using multiple threads for rendering.
Melissa Goon is going to add some user-requested features to the UV Editor, such as more mesh tools.
Shinbay will refactor the Outliner code to make it ready for future development. So this is not going to be user-visible. Rather, you will see user-visible changes later on thanks to this project.
And finally, Eveline Anderson will hack on Flamenco which is Blender’s side project, an online distributed rendering & task execution platform. Eveline is going to design a web interface for the manager configuration, introduce RNA overrides, and make Flamenco more robust.
The FreeCAD project is participating separately from the BRL-CAD umbrella organization this year, they got four students.
Amulya Paritosh is going to write a library management tool for fetching parts, models etc. published online. Here is the proposal.
Gauri Maheshwari is planning to migrate the FreeCAD documentation system to a newer one that is based on Markdown and supports multiple languages and both online and offline access to docs. That is a goodbye to Mediawiki.
Another project is something I did not expect at all. Hlorus is going to do away with all the different ways to measure things in FreeCAD and develop one core solution that can be further enhanced both in core FreeCAD and using add-ons. If you use the Manipulator workbench just to measure things conveniently, you know why this is important.
The surprising part here is that hlorus is the developer behind the CAD Sketcher add-on for Blender. I’m really excited about this project because it’s really useful and hlorus has such a great track record that only a supervolcano can prevent him from completing it.
Finally, Tanausú Hernández Yanes will enhance CNC capabilities of FreeCAD by adding an on-machine inspection tool. OMI is an absolute requirement in commercial shops. The idea is that a probe is attached to the tool head to scan the surface and compare the actual results of milling to what was expected to be done — to find discrepancies.
BRL-CAD umbrella org has 5 students and is full of surprises.
Caio Brito is going to add VDB support to BRL-CAD. That’s right, the volumetric data. VDB will also be supported when doing raytracing.
Gregory Li will be adding NURBS editing support to BRL-CAD. The program already uses openNURBS to do very basic things like rotating a NURBS curve, but there’s no way to edit those. Gregori will focus on the core implementation, suitable for plugging this to some GUI like Archer later on.
Joseph Black is planning to modernize OpenSCAD’s OpenGL support following his last year’s project where he implemented custom shaders support in the render window.
Riley Wong will be hacking on IfcOpenShell and BlenderBIM. His project is about enhancing the existing BrickSchema support and bringing features like entity editing, feed relationship editing, undo/redo support.
Interestingly, the Appleseed rendering engine is now apparently part of the umbrella organization. Sai Abhiram Alluri will port the Python codebase from Python 2 to Python 3, and the PyQt user interface to PyQt6.
MPi3D is going to migrate the entire Pitivi code from GTK3 to GTK4. This might sound like a too ambitious goal for this video editor. But Pitivi doesn’t really have all that much user interface to talk about. It’s neither GIMP nor Inkscape in terms of various dialogs, custom widgets, and so on. So I think it’s at the very least borderline doable.
And Rhythm Narula will work on a generator to easily create closing credits clips from existing HTML files. That would be a very nice quality-of-life improvement.
MuseScore makes a return to GSoC this year with one student. Hirnaymay Bhaskar is going to improve the floating text widget and add capabilities like spellchecking, automatic hyphenation, and verse extraction.
It might sound counter-intuitive that Muse Group is participating at GSoC while being able to just hire somebody to work on this, but first of all, if you watched Tantacrul’s video on the history behind MuseScore 4.0, you definitely remember the bit about the rarity of dogs with a degree in criminology.
And then, MuseScore is still a community project available under the terms of GPL. So far, Muse Group has demonstrated that they are committed to preserving and enhancing MuseScore as a free/libre project. So it makes perfect sense for them to keep the community of contributors engaged and growing.
There’s more organizations participating, of course. Just to list the ones that are within the scope of Libre Arts one way or another: FFmpeg, FreeType, GRAME (FAUST), KDE (digiKam), libcamera, Purr Data (Pd fork), Synfig.
So far, it looks like this is going to be another interesting year at GSoC, even if half the projects we discussed here will fail. Which I hope will not happen.
Libre Arts is a reader-supported publication. If you appreciate the work I do, donations are once again possible. You can subscribe on Patreon or make a one-time donation with BuyMeACoffee (see here for more info).