Naming of the "field" concept #91050

Closed
opened 2021-08-30 11:14:45 +02:00 by Jacques Lucke · 19 comments
Member

I used the term field in the proposal because when I originally thought about it, the generated functions would only depend on position most of of the time. Now with anonymous attributes, "fields" often depend on other things as well and the term "field" does not make too much sense in some cases. Below I list a few alternatives, feel free to add more.

  • Falloff: This term mostly makes sense when controlling a float input in the range 0-1. A field can do that, but I see falloffs as a special case of fields and as such I find the name worse than fields.
  • Field: People know that term already, but that might not be enough reason to stick to it. Generally, the concepts of scalar and vector fields are fairly ubiquitous in some areas but mostly refer to functions that only depend on position and sometimes on time. As such they are also only more of a special case.
  • Function: That's a concept that at least technical artists will probably know from programming. It describes "fields" more correctly and is a name that could easily be used in other areas of Blender as well where "field" may make less sense. It should be noted that "fields" are not any kind of function in the proposal. They are functions with "semantic inputs" (which the caller of the function can understand) and a single output. The terms "vector function", "integer function" etc. could be used to describe the different types of functions. Not sure if the "semantic input" idea can be integrated into the name somehow.
  • Callback: Very similar to "function".
  • Operation: Also similarly to "function" but I don't like it as much, because to me "operation" sounds like it may have side effects.
  • Procedure: Same as "operation".
I used the term field in the proposal because when I originally thought about it, the generated functions would only depend on position most of of the time. Now with anonymous attributes, "fields" often depend on other things as well and the term "field" does not make too much sense in some cases. Below I list a few alternatives, feel free to add more. * Falloff: This term mostly makes sense when controlling a float input in the range 0-1. A field can do that, but I see falloffs as a special case of fields and as such I find the name worse than fields. * Field: People know that term already, but that might not be enough reason to stick to it. Generally, the concepts of scalar and vector fields are fairly ubiquitous in some areas but mostly refer to functions that only depend on position and sometimes on time. As such they are also only more of a special case. * Function: That's a concept that at least technical artists will probably know from programming. It describes "fields" more correctly and is a name that could easily be used in other areas of Blender as well where "field" may make less sense. It should be noted that "fields" are not any kind of function in the proposal. They are functions with "semantic inputs" (which the caller of the function can understand) and a single output. The terms "vector function", "integer function" etc. could be used to describe the different types of functions. Not sure if the "semantic input" idea can be integrated into the name somehow. * Callback: Very similar to "function". * Operation: Also similarly to "function" but I don't like it as much, because to me "operation" sounds like it may have side effects. * Procedure: Same as "operation".
Author
Member

Added subscriber: @JacquesLucke

Added subscriber: @JacquesLucke
Jacques Lucke changed title from Naming of fields and related concepts to Naming of the "field" concept 2021-08-30 11:33:28 +02:00
Member

Added subscriber: @EAW

Added subscriber: @EAW
Member

semantic input

What does this mean? How would you explain it to an artist who knows nothing about computer science, in one sentence, because that is all that can fit in a tooltip.

Just something to consider when considering the choice of names. 😉

>semantic input What does this mean? How would you explain it to an artist who knows nothing about computer science, in one sentence, because that is all that can fit in a tooltip. Just something to consider when considering the choice of names. 😉
Author
Member

To an artist I'd probably have to explain what a "non-semantic input" is (note, I'm making these terms up on the fly here).
"Semantic input": The caller can understand what data should be passed into the function when it is evaluated (i.e. it "just works"). Maybe it could also be described like this: "The input has a reference to the data that is passed into it". This reference can be an attribute name but also other things.
"Non-semantic input": The function has some inputs, but the caller has no idea what the individual inputs are. The user would have to tell the node explicitly where to get the data for every input from.

Hope that makes sense, I'm still trying to figure out the naming myself as well :)

To an artist I'd probably have to explain what a "non-semantic input" is (note, I'm making these terms up on the fly here). "Semantic input": The caller can understand what data should be passed into the function when it is evaluated (i.e. it "just works"). Maybe it could also be described like this: "The input has a reference to the data that is passed into it". This reference can be an attribute name but also other things. "Non-semantic input": The function has some inputs, but the caller has no idea what the individual inputs are. The user would have to tell the node explicitly where to get the data for every input from. Hope that makes sense, I'm still trying to figure out the naming myself as well :)

Added subscriber: @Florian-10

Added subscriber: @Florian-10

I like "fields"

I like "fields"
Member

Added subscriber: @HooglyBoogly

Added subscriber: @HooglyBoogly
Member

Hi @Florian-10, thanks for the input, but it is much more helpful if you include some reasoning. Since decisions aren't really made by voting, it's best to have the merits of your opinion explained!

For the record, I think I like "Fields" the most too. I never really thought of it in the physics sense of "position -> value", I thought of the word like a more specific/nuanced meaning of "Input" which is one of its definitions.
It's also quick to say, it's general enough that it probably doesn't scare people (which is really something to consider!), but it also helpfully sends people's understanding in the right direction (I think).

"Function" was also tempting to me, but I think a function is something that builds the field or operates on values, and doesn't really work to describe an input.
It would also remind people of programming. While that might help some users, I'm pretty sure it will turn people off too.

Maybe there's another better option, but I haven't thought of it!

Hi @Florian-10, thanks for the input, but it is much more helpful if you include some reasoning. Since decisions aren't really made by voting, it's best to have the merits of your opinion explained! For the record, I think I like "Fields" the most too. I never really thought of it in the physics sense of "position -> value", I thought of the word like a more specific/nuanced meaning of "Input" which is one of its definitions. It's also quick to say, it's general enough that it probably doesn't scare people (which is really something to consider!), but it also helpfully sends people's understanding in the right direction (I think). "Function" was also tempting to me, but I think a function is something that builds the field or operates on values, and doesn't really work to describe an input. It would also remind people of programming. While that might help some users, I'm pretty sure it will turn people off too. Maybe there's another better option, but I haven't thought of it!

Added subscriber: @MadMinstrel

Added subscriber: @MadMinstrel

Field. Because it's short, accurate, limited in scope and easy to say. Function is too general and in this context invokes expectations of complex programs and text-based scripting. (Same goes for callback, operation and procedure.)
Falloff just sounds out of place and entirely weird.

Field. Because it's short, accurate, limited in scope and easy to say. Function is too general and in this context invokes expectations of complex programs and text-based scripting. (Same goes for callback, operation and procedure.) Falloff just sounds out of place and entirely weird.
Member

Added subscriber: @LazyDodo

Added subscriber: @LazyDodo
Member

With scalar fields and vector fields being common in mathematics it probably be counter intuitive to call them anything else,

Generally, the concepts of scalar and vector fields are fairly ubiquitous in some areas but mostly refer to functions that only depend on position and sometimes on time. As such they are also only more of a special case.

Not sure how true "mostly" this is, i can come up with more examples that require more input variables than ones that just need position and time, if one were to calculate a gravitational field of a solar system, yes you need a position to calculate this field, but also the location and mass for the objects participating in said solar system. Even a basic signed distance field for a cube requires at-least a size in addition to position.

It's perhaps good to separate some concepts , the output is without a doubt "a field" , however thing that makes/defines/constructs that output would probably be best off being called something different, generating function perhaps or just generator?

With scalar fields and vector fields being common in mathematics it probably be counter intuitive to call them anything else, > Generally, the concepts of scalar and vector fields are fairly ubiquitous in some areas but mostly refer to functions that only depend on position and sometimes on time. As such they are also only more of a special case. Not sure how true "mostly" this is, i can come up with more examples that require more input variables than ones that just need position and time, if one were to calculate a gravitational field of a solar system, yes you need a position to calculate this field, but also the location and mass for the objects participating in said solar system. Even a basic signed distance field for a cube requires at-least a size in addition to position. It's perhaps good to separate some concepts , the output is without a doubt "a field" , however thing that makes/defines/constructs that output would probably be best off being called something different, [generating function](https://en.wikipedia.org/wiki/Generating_function) perhaps or just generator?

In #91050#1213583, @MadMinstrel wrote:
Field. Because it's short, accurate, limited in scope and easy to say. Function is too general and in this context invokes expectations of complex programs and text-based scripting. (Same goes for callback, operation and procedure.)
Falloff just sounds out of place and entirely weird.

Thought the same way

> In #91050#1213583, @MadMinstrel wrote: > Field. Because it's short, accurate, limited in scope and easy to say. Function is too general and in this context invokes expectations of complex programs and text-based scripting. (Same goes for callback, operation and procedure.) > Falloff just sounds out of place and entirely weird. Thought the same way
Member

Added subscriber: @Calra

Added subscriber: @Calra
Member

I would like to suggest a new portmanteau "F-fields" (read as Function Fields) where F stands for functions. Fields, for the initial reasons mentioned in the task description, and prepending with F for functions because the behavior has been changed.

I would like to suggest a new portmanteau "F-fields" (read as Function Fields) where F stands for functions. Fields, for the initial reasons mentioned in the task description, and prepending with F for functions because the behavior has been changed.

Added subscriber: @dfelinto

Added subscriber: @dfelinto

Where are users exposed to this? Tooltips and documentation only?

Where are users exposed to this? Tooltips and documentation only?
Author
Member

People have to be able to talk about this concept. For that it needs a name. Don't know if the name will be visible in Blender or only in the documentation.

People have to be able to talk about this concept. For that it needs a name. Don't know if the name will be visible in Blender or only in the documentation.
Author
Member

Changed status from 'Needs Triage' to: 'Resolved'

Changed status from 'Needs Triage' to: 'Resolved'
Jacques Lucke self-assigned this 2021-09-17 15:51:01 +02:00
Sign in to join this conversation.
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
8 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#91050
No description provided.