User Coordinate Spaces #43964

Open
opened 2015-03-11 17:57:04 +01:00 by Inês Almeida · 28 comments
Member

I would like to implement 'User Coordinate Spaces' in Blender and would like feedback on the idea and workflow.

The basic idea is to be able to define new coordinate spaces (like in Transform Orientations) and use that as if it is the world. It would affect:

  • the grid (so it is visible what is the working coordinate system)
  • the numpad view navigation, home key and all other view commands
  • quadview
  • transform system (the axis locking are the axes of the selected UCS)
  • walk and fly modes
  • all other operators who use the Global transform would be using instead the UCS

I would propose to make a new list of coordinate spaces that is attached to the scene.
This list would have the 'World' coordinate space as predefined default and would hold all the new user defined coordinate spaces.

The user could define new spaces that are aligned with objects or in some useful alignment of the scene and switch to them for viewing and editing. This would be very useful to edit an object in place or to model something as in this example image .
The feature is opt-in, the default space is the 'world' and if no new space is created and selected everything will work the same as now.

Left to discuss is:

  • a good interface to define a new coordinate space (easy positioning: align to object, view, face.. and wiggly widgets from antonis to view and edit the result?)
  • the interface to select and manage existing spaces (UIList, rename, modify)
  • quick switching of spaces
  • possibility of having also automatic UCSs in local view or depending on data selection. Example: have a 'local' predefined UCS that will mean the local space of the selected object without the need to setup the space previously. This can be tested and better discussed after doing all the rest.
I would like to implement 'User Coordinate Spaces' in Blender and would like feedback on the idea and workflow. The basic idea is to be able to define new coordinate spaces (like in Transform Orientations) and use that as if it is the world. It would affect: - the grid (so it is visible what is the working coordinate system) - the numpad view navigation, home key and all other view commands - quadview - transform system (the axis locking are the axes of the selected UCS) - walk and fly modes - all other operators who use the Global transform would be using instead the UCS I would propose to make a new list of coordinate spaces that is attached to the scene. This list would have the 'World' coordinate space as predefined default and would hold all the new user defined coordinate spaces. The user could define new spaces that are aligned with objects or in some useful alignment of the scene and switch to them for viewing and editing. This would be very useful to edit an object in place or to model something as in this [example image ](http://www.mastergraphics.com/wordpress/wp-content/uploads/100711-0037-rotateucsvs4.png). The feature is opt-in, the default space is the 'world' and if no new space is created and selected everything will work the same as now. Left to discuss is: - a good interface to define a new coordinate space (easy positioning: align to object, view, face.. and wiggly widgets from antonis to view and edit the result?) - the interface to select and manage existing spaces (UIList, rename, modify) - quick switching of spaces - possibility of having also automatic UCSs in local view or depending on data selection. Example: have a 'local' predefined UCS that will mean the local space of the selected object without the need to setup the space previously. This can be tested and better discussed *after* doing all the rest.
Author
Member

Changed status to: 'Open'

Changed status to: 'Open'
Inês Almeida self-assigned this 2015-03-11 17:57:04 +01:00
Author
Member

Added subscriber: @brita

Added subscriber: @brita

Added subscriber: @michaelknubben

Added subscriber: @michaelknubben

Added subscriber: @AdamPreisler

Added subscriber: @AdamPreisler

Removed subscriber: @AdamPreisler

Removed subscriber: @AdamPreisler

Added subscriber: @PawelLyczkowski-1

Added subscriber: @PawelLyczkowski-1

Added subscriber: @Januz

Added subscriber: @Januz
Member

Added subscriber: @gandalf3

Added subscriber: @gandalf3

Added subscriber: @JustasIngelevicius

Added subscriber: @JustasIngelevicius

Added subscriber: @Nerfherderp

Added subscriber: @Nerfherderp
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk

Added subscriber: @JaumeBellet

Added subscriber: @JaumeBellet

I understand that this should be another transform matrix applied at whole objects on the scene, in order to match the default coordinate system ¿?

I understand that this should be another transform matrix applied at whole objects on the scene, in order to match the default coordinate system ¿?

Added subscriber: @JonathanWilliamson

Added subscriber: @JonathanWilliamson

Hey @brita, sorry for taking so long to get back to you on this...

User Coordinate Spaces has been on my personal wish list for a long time, so it's great to see you wanting to tackle this.

An initial question: How would this coordinate with the Custom Transform Orientations? It seems to me these should be combined.

Hey @brita, sorry for taking so long to get back to you on this... User Coordinate Spaces has been on my personal wish list for a long time, so it's great to see you wanting to tackle this. An initial question: **How would this coordinate with the *Custom Transform Orientations*?** It seems to me these should be combined.

This comment was removed by @JonathanWilliamson

*This comment was removed by @JonathanWilliamson*
Member

Added subscriber: @blend-it

Added subscriber: @blend-it

Added subscriber: @JanisGrinvalds

Added subscriber: @JanisGrinvalds

Despite of opinion of some developers, I think this would be a feature "forgotten to make long versions ago" and maybe from very start as I see it as one of basic operations with object coordinate spaces.

I would suggest or make sure it's implemented some couple of things:

  1. Make visible also axis of objects, but those can be switched on/off in order to customize viewport. At the moment this role is only on manipulators and they don't allow to see where axis are traveling through.

  2. Rotation of axis in object mode with snapping option, by default - parallely to view plane.

  3. Dragging origin point on object mode parallely with view plane, optionally with snapping.

Despite of opinion of some developers, I think this would be a feature "forgotten to make long versions ago" and maybe from very start as I see it as one of basic operations with object coordinate spaces. I would suggest or make sure it's implemented some couple of things: 1. Make visible also axis of objects, but those can be switched on/off in order to customize viewport. At the moment this role is only on manipulators and they don't allow to see where axis are traveling through. 2. Rotation of axis in object mode with snapping option, by default - parallely to view plane. 3. Dragging origin point on object mode parallely with view plane, optionally with snapping.

Added subscriber: @FDesimpel

Added subscriber: @FDesimpel

Is this still being worked on?

It would really be a great addition to blender.

There already is the custom transform oriëntation, but for a true UCS system it also needs a 'custom transform origin'.

and in the ui there needs to be a way to select the ucs in all the tranform panels, with the values updating relative to the ucs.

Is this still being worked on? It would really be a great addition to blender. There already is the custom transform oriëntation, but for a true UCS system it also needs a 'custom transform origin'. and in the ui there needs to be a way to select the ucs in all the tranform panels, with the values updating relative to the ucs.
Author
Member

Hi Frederick, this is currently not being worked on, but not forgotten either.
I started this project, but meanwhile I got a full time job, which means that my free time for projects is not much.
Anyone is free to grab this task and it has been submitted as a possible google summer of code for this year, so it could be picked up.

Hi Frederick, this is currently not being worked on, but not forgotten either. I started this project, but meanwhile I got a full time job, which means that my free time for projects is not much. Anyone is free to grab this task and it has been submitted as a possible google summer of code for this year, so it could be picked up.

Added subscriber: @m_shastry

Added subscriber: @m_shastry

This comment was removed by @m_shastry

*This comment was removed by @m_shastry*

You can check mechanical blender approach

https://vimeo.com/181214160

You can check mechanical blender approach https://vimeo.com/181214160

Added subscriber: @dr.sybren

Added subscriber: @dr.sybren

I would suggest to at least attach the sole example image to the ticket itself, as right now the link is dead :'(

I would suggest to at least attach the sole example image to the ticket itself, as right now the link is dead :'(

Added subscriber: @AlexeyPerminov

Added subscriber: @AlexeyPerminov
Philipp Oeser removed the
Interest
User Interface
label 2023-02-10 09:26:31 +01: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
17 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#43964
No description provided.