Page MenuHome

Node Editor: Minimap
Needs Triage, NormalPublicDESIGN

Authored By
Pablo Vazquez (pablovazquez)
Mar 19 2021, 2:39 AM
Tokens
"Love" token, awarded by ayberko."Love" token, awarded by cl3m3c7."Love" token, awarded by TR4."Love" token, awarded by Mylo."Love" token, awarded by Gurra."Love" token, awarded by Branskugel."Love" token, awarded by Blendey."Party Time" token, awarded by GoBlender."Love" token, awarded by viadvena."Love" token, awarded by c60."Like" token, awarded by Fracture128."Love" token, awarded by SimontheSorcerer."Love" token, awarded by Raimund58."Love" token, awarded by Alaska."Love" token, awarded by cmzw."Love" token, awarded by lopoIsaac."Love" token, awarded by ncotrb."Love" token, awarded by aiekick."Like" token, awarded by GeorgiaPacific."Pterodactyl" token, awarded by Gavriel5578."Love" token, awarded by Stig."Love" token, awarded by Shimoon."Love" token, awarded by HEYPictures."Burninate" token, awarded by digim0nk."Love" token, awarded by lcs_cavalheiro."Love" token, awarded by AquaticNightmare."Love" token, awarded by juizoi."Love" token, awarded by Strike_Digital."Burninate" token, awarded by CreatorSiSo."Love" token, awarded by corpse."Burninate" token, awarded by calra."Love" token, awarded by Draise."Love" token, awarded by jc4d."Burninate" token, awarded by Slowwkidd."Love" token, awarded by damian."Love" token, awarded by someuser."Love" token, awarded by TimBrown."Yellow Medal" token, awarded by duarteframos."Like" token, awarded by billreynish."Burninate" token, awarded by lone_noel."Love" token, awarded by Yuro."Love" token, awarded by belich."Love" token, awarded by kenziemac130."Love" token, awarded by Erindale."Love" token, awarded by zanqdo.

Description

A mini-map is a bird's-eye of the entire node tree. A quick way to see in which area of the node graph we are.

The map is represented by a rectangle shape in the bottom right corner, its aspect ratio matches the editor size. It's background color matches the nodes editor's. It doesn't contain a grid.

Each node in the node tree is represented by a tiny rectangle in the map.

When zoomed in, the area is outlined:

Dragging this area will pan the view.

State

Active and selected nodes are highlighted:

Colors

Nodes could receive the color of its category.

Custom colors on nodes will take precedence over category.

Frames

When using frames, show the frame as a whole (coloured). Don't show the nodes inside the frame, as it can become too complex to read. Once there is a working prototype we can test and see if having the nodes inside works, but I'd start without the inside nodes.


The Minimap is shown by default but it can be hidden from the header via the Overlay icon and popover. The icon toggles all overlays, the popover includes options to toggle Minimap, breadcrumbs, and gizmos.


For the first prototype the minimap could be:

  • Non-interactive
  • Monochrome
  • Frames without nodes inside

Revisions and Commits

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Hans Goudey (HooglyBoogly) changed the subtype of this task from "To Do" to "Design".

Nice design. Question is, when implementing this, how to avoid generating inconsistency with all of the other editors(ex. animation editors), which also could need a mini-map, and keep Blender consistent?

Rather handy feature! Here's my 2cents:

"Nodes could receive the color of its category" - When looking at node tree from bird's view users care less about what particular nodes do(or what type they're of), more valuable information for them is to distinguish what bigger blocks of nodes do. Users typically represent such blocks by:

  • grouping them, in such case category's color wouldn't be much of help(all groups would have the same color)
  • putting them into frames, for better organization also colored

Would it be possible to color nodes by:

  1. a color of frame they are in or
  2. a custom color

Added examples of frames and custom color nodes, and changed how to toggle the minimap on/off.

Errors shown as exclamation signs, maybe? And nodes which have only inputs or only outputs shown as triangle arrows.

This should also be placed in the upper right to be consistent with the 3D Viewport navigation helpers.

@Aaron Carlisle (Blendify) - This should also be placed in the upper right to be consistent with the 3D Viewport navigation helpers.

Could work!

This should also be placed in the upper right to be consistent with the 3D Viewport navigation helpers.

Please don't.
Bottom right is the standard for this, and it's easier to reach. Also less clutter around the navigation gizmos.

Juan (jc4d) added a subscriber: Juan (jc4d).

This should also be placed in the upper right to be consistent with the 3D Viewport navigation helpers.

Please don't.
Bottom right is the standard for this, and it's easier to reach. Also less clutter around the navigation gizmos.

Totally agree.

A toggle for top or botton corner would be nice, I personally would prefer top right for muscle memory from visual widgets and also consistency with the rest. Keep up the awesome proposal! Hope to see this soon, from what I understand the drawing code from the editor is a tricky beast to do something like this, so best luck to you!

Input and output nodes are not like other nodes, the users should be able to recognize them is the minimap, right?

It looks like the in and output nodes are only recognizable in the category design, I think this might be problematic, because the category design is still up to debate, like what Miro said, but the in and output nodes need to be the anchor points for the users to know where they are in the node tree. Therefore I think the input and output nodes need to be recognizable even without the category design.

Another idea: While user holding a hotkey entire node view is replaced by this schematic minimap, and to move "rectangle of interest" user just moving mouse around so no need to click and drag it.

thought this is going to be implemented in 3.0.
Looks like it was canceled :(
Verry sad

I both love this idea and struggle with it.

The struggle is that this is a rectangular area that represents a special thing in a area of many rectangles. I want the purpose of it to read quicker. At the moment it doesn't scream "I am a min-map".

At the extremes, I imagine going into Nodes at first when there are no nodes. At this point it is an empty field, but there is also an empty rectangle at bottom-right, and there is nothing to explain the relationship. If I add a single node then I now have a singular rectangle in the center, and at bottom right is a rectangle with a rectangle inside.

Is it a consideration to NOT show the mini-map when it is not needed? That way it is not shown immediately and only appears when you zoom, have lots of content, etc. It would not add clutter at the start when it is a clean slate, only appears when it can assist. That might help explain its existence.

Had an idea for a while that if the overlaid version is not wanted, the mini map could be only shown on a hotkey. The user could hold the key down to turn the entire viewport into the minimap (basically zoom out to fit the entire node tree and show the view area as a rectangle), and while the key is held, moving the mouse would pan the view around (and scrolling zooms in and out).

This way you have the overview at the press of a button, you can spare a whole lot of mouse clicks and zooming that you'd normally need for navigation, with the bonus of no overlay constantly obstructing the viewport. Would be a convenient way to frame a group of nodes.

For me, the main job of the minimap would be navigating as fast as possible through large working areas, just like the navigator in Photoshop or Illustrator. One example of a nicely working minimap in node based apps is BMD Fusion: it can be toggled on and off, or switched to auto: if nodes are outside of the visible area, it appears. Usually, when building node trees, I mainly remember what function blocks are in which areas of the tree. Color coding on the other hand is not terribly important to me.
But honestly, even the most basic implementation in Blender would be very appreciated, as long as navigation is faster than now.