Source/Editors/Spreadsheet

= Spreadsheet Editor =

The spreadsheet editor allows users to debug and navigate the data in the Blender file. That includes object geometry as well as scene data such as objects.

Core features


 * Inspection of data.
 * Fast display of missions of rows.
 * Write and read-only.
 * One data-set at a time
 * Multiple view modes



View Mode
What is the Context

It always shows all the available data for the active context.
 * To compare different datasets users need to open multiple editors

It shows different data (columns) based on the mode.
 * All the available attributes
 * All the lamp RNA properties

It shows original (editable), driven, overridden and linked data.

Example of View Modes:
 * Object
 * Geometry
 * Modifier Geometry
 * Node Geometry
 * Scene Objects
 * Collection Objects

Data Sets
What to show

Outliner-like region to select which data to show for a given view mode.

The amount of properties for each one of these view modes is a lot. The idea is to show only a handful of hand picked ones, and let users expose (or hide) more properties.

Filters
What to hide

Rows

''The row filters are aimed for continuously debugging and inspecting the data. As such they are not designed to be easily dismissed. But instead to be a constant presence in the side bar where users can tweak values and see more/less data.''


 * Selected (Vertices, Objects)
 * Cells Value Outside Range

Columns

''It is important to keep the separation of UI and user data, and to only store "strings" in the editor, when referring to attributes. This way the same spreadsheet editor can be used for different objects and still have the same filters working.''


 * Column Name
 * Category

Mockups






User Stories

 * I as a teacher want to see/edit vertices and weightgroup to know what happens when I weightpaint.
 * I as a lighting artist want to see/edit the power of all the lights to prevent overexposure.
 * I as a rigger want to find which vertices belong to which group to find why a vertex moved.
 * I as a set dresser want to see the random value of a point to debug the rotation of instances.
 * I as an animator want to set "drivers" visually by selecting values from different objects in the spreadsheet to inspect the relation between the objects.
 * I as a set dresser want to see if my geometry has points to know when instances become real to optimize my nodetree.