Spreadsheet Editor #86279
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
22 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#86279
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The spreadsheet editor is an editor to debug and navigate the data inside the blender file.
A prototype can be found on the
temp-spreasheet-editor
branch.The initial plan is to tackle this for geometry nodes focusing on the geometry data (points, edges, ...). The design already takes into consideration other future uses cases though.
{F9866674, size=full}
Changed status from 'Needs Triage' to: 'Confirmed'
Added subscriber: @dfelinto
Added subscriber: @DuarteRamos
Added subscriber: @JaumeBellet
Added subscriber: @Mets
So this is what you guys have been filling those whiteboards with!
I think a more likely rigging use case would be simply to list bones. Bones have so many properties, listing the same property of many bones or filtering based on property values would be useful in many cases:
This could also provide a great way to add the "Copy Attributes" addon's features to core blender, which imo belongs in core blender.
I think the filter settings cannot be complex enough. I really see the usefulness of this scaling linearly with how complex filters can be applied. For example, finding bones who have constraints whose subtarget is a specific other bone, is a pretty damn specific case that is probably hard to design a filter for, but it would nonetheless be ridiculously useful for exploring other people's rigs.
The possibilities seem quite endless, so if you need ideas I'm here, but I'm curious now where would you limit the initial scope for this.
Added subscriber: @HooglyBoogly
One thing I would like to see in a complete design is a comparison of this and the outliner. There are clearly different use cases, but there are also apparently many overlapping use cases, especially as the scope we imagine for the spreadsheet editor increases.
Just for some examples, the outliner already has display modes, filters, a tree layout, search, sorting, and the ability to change data properties.
So I think it's essential to consider the design differences between this and the outliner, and list them clearly.
Another possibility is that the spreadsheet editor basically ends up becoming a better designed, more flexible outliner, which I actually think could be awesome! It's just important to acknowledge that in the design.
Added subscriber: @antoniov
I would like to make grease pencil able to use spreadsheet. A lot of possible uses.
I have several questions.
Added subscriber: @slumber
@antoniov for me the most obvious benefit for I/O would be once we get collection exporting/importing and then being able to see all the collections I/O settings in a single place.
To support Python to read/write the data seems a bit feature creep to me. Can you tell me a use case where this would be used?
User case for python and custom data could be:
Basically, the spreadsheet can be used as gateway for pipeline integration in multiple situations. In business database applications this is very common.
Maybe this is not the initial goal of the design, but this can open a huge number of possibilities and I think it's worth to keep in mind, if not to do now, to prepare the pieces to do it in the future.
Added subscriber: @jta
Added subscriber: @grzelins
As secondary goal consider that also file browser has a spreadsheet like view and many filtera.
Python api for spreadsheet view is needed IMHO. see for example elegant table view in addon VFX Grace https://gumroad.com/l/QgGUq
Consider use of table view in log viewer (gsoc project) , info editor or as debug feature in blender python console (variable viewer)
Added subscriber: @erminos
Added subscriber: @dr.sybren
I agree with @dfelinto here. If the spreadsheet is just a different view on Blender data, and these data already have an API to modify them. The fact that it's shown in a grid instead of the regular way Blender shows that data is irrelevant when it comes to data manipulation from code. To make this more concrete: to modify mesh vertex positions, a script should modify those vertex positions directly, and not go via some spreadsheet view.
There is no need for any spreadsheet API just to read data from a CSV file, you can do that fine without such a view. Of course I see the appeal of having a generic CSV importer that you can use to interactively map columns in the CSV file to columns in the spreadsheet view. That's a different project from exposing existing data in a speadsheet UI, though.
This issue was referenced by
9cb5f0a228
Added subscriber: @Dimitar
One of the features that's been missing for me is a comprehensive material editor. This new spreadsheet seems like it could be a good place to edit materials globally without having to click an object that contains the material.
My comment about API or for CVS was not whether or not it can be done currently, of course it can already be done in python.
Including a simple tabulated data import / export system, in CVS or JSON, could be very useful in countless cases and would not require any programming on the part of the user. If the user does not have to create their own exporter, that would add a standardization of this type of process that requires tabulated data, both at the I/O and visualization level.
Anyway, maybe this project is not the one for this idea, although IMHO it is a pity to miss this opportunity to do something really useful.
Added subscriber: @KenzieMac130
Exporting of the current spreadsheet view/selection to CSV (even to just the clipboard) would be useful for analysis, sharing information for troubleshooting, etc. CSV import however I feel like should be implemented elsewhere such as its own node.
Added subscriber: @randum
One of the use cases for using spreadsheets would be to show output content of nodes in custom node tree editor. But in case of Sverchok add-on I don't see how this could be done without low level API to spreadsheet editor because output of most nodes is just Python data. Sverchok generates Blender data blocks only to show result of whole node tree.
Here is little mock-up how spreadsheet editor could look like for Sverchok purposes.
Added subscriber: @Ulrich-Buch
Would it be granular enough to allow e.g. showing bone or object transforms at different evaluation steps? Like e.g. pre-Constraint transforms? (I know for this you could mute the constraints, but it's just an example and you get the picture.)
What I refer to here is how the final transform may be influenced by a number of things (parent transforms, delta transforms, drivers, constraints, animation curves etc.). And those are evaluated in some specific order by blender, afaik.
Here's a representation from a (somewhat dated) blogpost by aligorith which illustrates what I mean:
On another note: Is support for image-datablocks planned? The mockup suggests inspecting volume-objects down to individual voxels is planned, if so would this extend to 2D-images or would that reach too far into the image-editor's domain?
Added subscriber: @brecht
Reposting my comment from #85654 about the visual design.
Added subscriber: @JohnCox-3
Can we get some clarity about terminology?
In the mock-up the domains are called
Point
Edge
Face
Corner
In the implementation that's just been committed,
only point data is displayed but the normals are labelled vertex_normal
So my question is, does vertex mean Point or Corner?
If it means Point, why not call the normals point_normal for consistency.
If it means Corner, why not just use Vertex in the interface?
I foresee confusion if vertex isn't clearly defined and consistently used.
Added subscriber: @1D_Inc
Table editor? Nice. A step closer to BIM. A lot of questions though.
For example:
Will it be possible to view things like distribution textures per materials in table form, to investigate where exactly some textures used? (Will there be access to such datablocks?)
Added subscriber: @Sparazza
Changed status from 'Confirmed' to: 'Resolved'
Closing this now since it was moved to: https://wiki.blender.org/wiki/Source/Editors/Spreadsheet#Spreadsheet_Editor
@JohnCox-3 vertex means point. Corner is something else. Other datasets (corner included) are coming soon.
@1D_Inc probably not.
Okay, will keep using addons with output to blender's text file for task like that.
Thank you for the answer.
@dfelinto But "Vertex Color" is really Corner data no? Will that be renamed?
@JohnCox-3 we are not planning to change the name of the any built-in attribute. If vertex color is stored per corner it will be in the corner domain, otherwise in point.
@Mets most of those are interesting use cases. I would recommend you reaching out to the animation & rigging module to see if they can implement support for bones in the spreadsheet. The use case I showed was related to weight painting mostly.
Keep in mind that the "finding all children" probably belongs to the outliner though. I don't think it belongs here. All the other use cases are solid.
Well, yes, exploring blend file content better fits spreadsheet format than custom hierarchical structures, such as bones.
File content data structure is way more predictable.
Removed subscriber: @dr.sybren
Added subscriber: @ckohl_art
Added subscriber: @jeremybep