GSoC 2024: Spreadsheet Improvements (Draft)

Project Title

Spreadsheet Improvements

Name

Almaz Shinbay

Contact

E-mail: [email protected]
Blender.chat: @shinbay

Synopsis

My project aims to enhance Blender’s Spreadsheet Editor by introducing new features such as column filters, a “range” filter operation, sorting by attribute values, and visible column search.

Benefits

These enhancements aim to reduce debugging time, improve data management for Blender users, particularly when working with Geometry Nodes.

Deliverables

The project includes the following deliverables:

  • Introducing a “Range” Filter Operation (D1)
  • Implementing Column (Attribute) Filters (D2)
  • Enabling Sorting by Attribute Values (D3)
  • Implementing Visible Column Search in Row Filters (D4)

Project Details

D1. “Range” Filter Operation

It is an additional operation type for spreadsheet row filters to filter out values that lie in the given range. (#89273 - “Range” filter option for spreadsheet row filters)

Here is a possible mockup for the “Range” Operation:

D2. Column Filters

These filters are used to show only columns (attributes) that the spreadsheet viewer is interested in. (#86131 - Column filter for the attribute spreadsheet)

Here is one UI mockup:

When using the column filter, the included columns are shown, and others are hidden. If no column filter is applied or selected columns are not visible, then all columns should be displayed.

D3. Sorting by Attribute Values

The following feature allows users to reorder rows in increasing or decreasing order of the specific attribute values. (Attributes Spreadsheet Sorting by Values, #86134 - Row sorting based on ascending or descending order of a column for attribute spreadsheet)

The possible UI solution is similar to ones used in other spreadsheets:

By clicking the triangle (or any other sorting icon), users can sort rows in increasing or decreasing order of the chosen attribute values.

D4. Visible Column Search for Row Filters

This feature will show possible column names while typing in the “Column” text box in Row Filters. (#89272 - Visible column search for the spreadsheet)

The UI should be similar to regular search boxes. For the implementation, I think I need more time to understand how RNA and DNA code works and how visible columns are stored.

Project Schedule

The scope of the project is likely going to be medium-sized (~175 hours).
Probably, I may start my internship at the end of May. Therefore, I think I will dedicate more time to the project during the weekends.

  1. Community Bonding Period:
  • Familiarize myself with the Spreadsheet Editor code.
  • Discuss UI enhancements with mentors and the user community.
  1. Coding Period (Week 1-2):
  • Work on “Range” Operations.
  1. Coding Period (Week 3-4):
  • Work on Column Filters.
  1. Coding Period and Midterm Evaluation (Week 5-7):
  • Work on Sorting Feature.
  • Midterm Evaluation
  1. Coding Period (Week 8-10):
  • Work on Visible Column Search.
  1. Wrap-up and Final Evaluation (Week 11-12):
  • Cleanups, bug fixes.
  • Documentation.
  • Final Report

Bio

I’m Almaz Shinbay, a 3rd-year Computer Science student from Nazarbayev University, Astana, Kazakhstan.

I started programming in C++ from my 7th grade in high school. I was particularly interested in algorithms and data structures, solving various competitive programming problems and participating in national and international olympiads.

Also, this is my second time applying for the Blender Organization by GSoC. Previously, I contributed to the “GSoC 2023: Outliner Tree Refactoring” project, focusing on porting outliner tree element classes to a new object-oriented design. More details can be found here.

9 Likes

This looks like it would be a great project! I’d be especially excited about the sorting of values, I think that would make debugging setups so much easier.