Grasshopper

algorithmic modeling for Rhino

After a request by Arend I added an unflatten component for reversing a flattening operation. If you still have the original tree and the number of items hasn't changed it can be put back together:

However I just cannot come up with a good idea for an icon for Unflatten. The best I could come up with was an acorn, which is a tenuous link at best.

Any ideas welcome, but please remember that the icon must de drawable and recognizable in a 20x20 (24x24 in an emergency) pixel image.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

Views: 8745

Replies to This Discussion

Ha!

You could always put two blank Graft components below any Flatten component. As long as you plant more trees than you cut, we're all in the clear.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

haha! :D

Just to throw in my 0.02.  When I think of flattening a tree... I think of a piece of paper (since it's about as flat as a piece of wood can go).  Unflattened then would just be a crumpled up ball of paper.  This would require changing the flatten component too... but it's a thought.  Not sure if it's a good idea... just throwing it out there for the sake of discussion.

I agree with a few of the previous posts suggesting that the flatten/unflatten metaphor is a bit strange. First, "Unflatten" is not a common word. I have little problem with making up words, but when combined with "Tree", it is really very confusing. The phrase "unflattening a tree" is mixing too many metaphors. 

I would prefer something that more accurately describes the action of the component such as "Rebuild Tree". The term "rebuild" is used in several other places in Rhino and Grasshopper to mean modify the essential structure of something (surface, mesh, curve, etc.). In common meaning, "rebuild" means to build something back to its original state. For example, you might rebuild a house after a fire. Conversely, that house might have been "flattened" by a hurricane. 

When "Rebuild Tree" is used, it still has a strange sound in comparison to a house (trees are regrown or replanted after destruction), but it sounds better to me than "unflatten tree". I think the Flatten/Rebuild duality is a better one than Flatten/Unflatten. English is strange sometimes in the use of "un" as a prefix. It works well when there is no other term for the opposite of an action, but if there already exists a common word for the opposite, then the use of "un" sounds forced and awkward. For example, we don't use destroy/undestroy; we use destroy/make. 

As for an icon, I think the sapling coming out of the stump works well. Another idea that might work would be to use the hammer symbol that is used elsewhere in Rhino and Grasshopper with the word Rebuild along with some sort of tree symbol. 

Originally "flatten" came from Photoshop. Flattening all the layers of an image was the closest operation I could think of that was sort of analogous and which most people will have heard of. It has little to do with the metaphor of trees and indeed "flattening a tree" is an awkward thing to say.

You're right in that unflatten doesn't very closely describe what the component does. It's more of a contextual name, since the only time you'd probably use unflatten is just after you flattened something and need to put Humpty back together again. It is therefore a sort of 'undo for flatten' which got contracted to unflatten.

'Rebuild' to me signals like you'd have too much of a choice about the outcome. When rebuilding curves and surfaces you typically get to pick the accuracy of the operation. Unflatten exposes no such controls. I realize that RebuildMesh doesn't provide any control either*. I'm not saying Unflatten is better than Rebuild, it's just that neither actually tells you what the component really does. At the end of the day we're stuck with a vocabulary that is already wildly inconsistent and misleading in many areas. Words have been inherited from programming, computing, mathematics, 3D CAD in general, Rhino in specific and I made a few stupid choices along the way as well**. Keep the ideas coming though, perhaps there is a single word out there that unambiguously describes an unflatten operation. When we find it I will happily use it.

* But then RebuildMesh is very different from RebuildCurve and RebuildSurface anyway and it should probably have been called FixMesh or something

** Case in point; "parameters". They should have been called "containers" or something.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

Repeating myself here...but I think "restore" tree captures the operation pretty effectively.  I also think "scrub" would be a good alternative to flatten.  That or "obliterate".

I like the "restore" idea. It may be familiar to some windows users... also, my online dictionary says "reform" is synonymous for "restore".

"...that was sort of analogous and which most people will have heard of."

Restore is okay as a descriptor. But restore to what? Any previous state? Restore data, or paths, or both? If you saw 'Restore Tree', would you instantly know that it can be used to perform the inverse operation of flattening?

Ultimate, one major benefit of using unflatten -despite it being an awkward word- is that it doesn't involve a new term. Undo and Redo and not called Restore and Retrace. There's nothing wrong with restore and retrace, they describe the actions every bit as well as undo and redo, but because they are so different from each other knowing one doesn't help you at all figuring out what the other is about.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

As an analagy, this whole debate makes me think of "Smash," mostly because of the icon...

But "Unsmash" (which is also a term that, on it's own, wouldn't make much sense...) would be like in cartoons when Wile E. Coyote gets run over by a steamroller and then inflates (pumps-up?) his paper thin self.

So I'll throw the descriptors inflate, pump, or plump into the mix (plump may actually be a plant/tree related term)...

Another random aside is that in Rhino there is obviously "UnrollSrf" which everyone understands, but there is no corollary "RollSrf" command because that wouldn't make any sense.

How about recompose?  Flatten; Recompose.

What about revive (i just saw Pieter Segeren was sugesting this one as well)?

Although i personally find unflatten the most straight forward. Once you know what flatten does, u automatically know what unflatten does.

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service