GSoC Roundup Episode One: Geometry Codes

The 2021 Google Summer of Code projects have just wrapped up, concluding ten weeks of exciting Blender development over eight projects helmed by motivated students and supervised by members of the Blender development team. This is the first post in a four-part series exploring what the students have achieved during this year’s development stint. Episode […]

The 2021 Google Summer of Code projects have just wrapped up, concluding ten weeks of exciting Blender development over eight projects helmed by motivated students and supervised by members of the Blender development team. This is the first post in a four-part series exploring what the students have achieved during this year’s development stint.

Episode One: Geometry Codes

The first part of this series will look at GSoC projects dealing with one of the liveliest and youngest sections of Blender: Geometry Nodes. Two brave projects tackled the effervescent module, with Fabian Schempp diving head-first into the development fray and porting a slew of modifiers into their ultimate nodal form, and Himanshi Kalra providing valuable support to this breakneck development pace by developing a framework for regression testing of Geometry Nodes.


Porting popular modifiers to Geometry Nodes – Fabian Schempp

Familiar grounds

Fabian Schempp is no stranger to the Blender codebase: He had already been contributing patches to the Geometry Nodes Project since the end of 2020, a familiarity which must have played a role in the stellar success of his GSoC tenure, which saw him complete and submit patches for nine new modifier-turned-nodes! Fabian was mentored by Jacques Lucke and Hans Goudey.

Show me the nodes

Here is a quick rundown of the 9 added nodes.

Remesh Blocks

Based on the Remesh modifier.

Merge by Distance

Based on the Weld modifier.

Unsubdivide

Based on the Decimate modifier.

Dissolve

Based on the Decimate modifier.

Voxel Remesh

Based on the Remesh modifier.

Collapse

Based on the Decimate modifier.

Mesh Inset

Based on the Mesh Inset operator.

Mesh Extrude

Based on the Mesh Extrude operator.

Solidify

Based on the Solidify modifier.

#cards-block_613257916f154 {
background: ;
color: ;
}

.cards .cards-list-item-inner {
background-color: #079271;
}

.cards .cards-list-item-thumbnail {
background-color: #232323;
flex: 1;
}

Seven of these nine new nodes are a port of the “Solidify”, “Weld”, “Remesh”, and “Decimate” modifiers. Some modifiers (such as the “Remesh” modifier) have been split into multiple nodes to fit into Geometry Nodes’ modular design philosophy. Fabian also ported the “Inset” and “Extrude” operators, with the latter’s power being on full display on the “Attributes and Fields” blog post. Fabian’s final report contains images and examples of what every single one of these is capable of.

What comes next

Fabian plans to continue working on these nodes until they are ready to be merged to master, a step that would probably include porting them to work with the up-and-coming “fields” revision of Geometry Nodes.


Regression Testing of Geometry Nodes – Himanshi Kalra

One more time, with feeling

Next up is Himanshi Kalra, who is not only familiar with the Blender codebase, but is also a GSoC Veteran: She had already successfully worked on regression testing during the 2020 edition of GSoC.This year Himanshi returned, flanked by mentors Habib Gahbiche and Jacques Lucke, to develop a regression testing framework for the rapidly growing Geometry Nodes.

Testing, 1, 2, merged

At the time of writing this, Himanshi successfully submitted and merged four patches, with the main new feature being the extension of the framework to test .blend files directly without going through the Blender API to add tests. This process is explained in more detail by Himanshi on the wiki. While its usefulness and importance within the growing size of the Blender project is beyond question, the development-oriented nature of this GSoC project makes it less flashy and visually compelling than its brethren. So here is a screenshot of all the nodes with implemented tests at the time of writing, to satisfy your Blender-loving irises:

An image of all the geometry nodes than now have regression testing, implemented by Himanshi during her GSoC
Himanshi developed quite the testable roster over her ten week stint

Join us next week for the second episode of the GSoC Roundup, where we will take a look at improvements made to the VSE and UV Editor!

Find out more on these two projects on the links below:

Source: Blender