MD Slider, 3rd dimension?

Apparently the 3rd dimension of the MD Slider in Grasshopper is non-functional. Does anyone know of a plug-in that would allow me to set 3 values from one control?
thanks,
Joe

Innovate :bangbang: (add a slider)

2 Likes

Thanks, but Iā€™m looking for something with one knob. I could do it with a color picker but with that Iā€™ve got the similar problem as your solution where I have to grab two things to get three. Unless somebody knows a trick with the color picker.

:rofl:

3 Likes

Something along the lines ofā€¦?

Split the argb output of the color picker, set it to be mapped 0-1 and then just think of R for X, G for Y, and B for Z axis. Ignore the Alpha.

That gives you a 3 dimensional slider you can set with one click sort of.

How exactly do you want to/expect to engage with the 3D ā€œknobā€ / control?

The color picker lets you select ā€œXYā€ dimension and then you could ā€œslide back in the Z dimensionā€ by using the upper left hue grip I guess?

The key here is just mapping the color values output to whatever kind of domains you are after for a ā€œ3D MD sliderā€

But what @Joseph_Oster proposed is easier to control, less components and even if you used the color picker you would need to do 2 clicks anywaysā€¦ 1 for XY and 1 for the 3rd dimension

Same is true with the airplane controls that use pedals to rotate the rudder. You need a ā€œknobā€ you can move left-right, forward-back and twist. Good luck. :man_facepalming:

Ideally, I would engage with the knob in some sort of 3d space similar to the color picker or what I expected in a 3d MD slider. One thing that can move in 3 dimensions to give 3 values. Iā€™m working with a program to parametrically generate helixes and scrolls and other curves for iron sculptures. I want to control position and rotation in all 3 axes. Iā€™m doing that now with 3 sliders for each. Iā€™m just trying to condense the number of controls. Grasshopper programs get big enough as it is and Iā€™ve got lots of variables to input. This isnā€™t stopping me from doing my task, Iā€™m just wishing for a better way.

Itā€™s tricky to do a 3D widget in 2D screen space with as few controls/inputs as possible.

One suggestion I have is an axonimetric or isometric cube/bounding box widget.

You could calculate where the ā€˜Zā€™ falls by how close to the front left of the iso cube you are (0) or how close you are to the back face of the cube (1) and the XY falls within the current ā€œframe sliceā€ at the cube depth you are currently at.

You have to do some funny positional gymnastics and sometimes because of ISO itā€™s actually difficult to tell ā€œwhere you areā€ in depth but it could work theoretically.

Though honestly this sounds like it would benefit more from a hardware input device that allows one to pan and zoom simultaneously like a space mouse.

Or keyboard events like a single MD slider ā€œwindowā€ with a 3D volume / room / space behind it in which the mouse controls the XY MD slider location and a keyboard key like the up or down arrow controls the Z depth. So simultaneously you can be moving in/out of space while also in XY screen space at that spatial reference frame.

Or think WASD/EQgaming controls.

Let E be forward into the scene depth aka Z-depth, Q back up in scene depth, AD for left right aka X horizontal axis and WSfor Y vertical axis

Yes, I realize it is not trivial to do. Iā€™m not sure Iā€™m up to building it, but I was thinking somewhat along the lines you mention.
I realized that I donā€™t necessarily need to be able to move all 3 coordinate values at the same time. What I really would like is just one control but be able to switch which axis it operates on with a keyboard key. Better than a slider would be something that might look like the gumball with 3 arrows coming out of it. If you press the ā€˜Xā€™ key then the X arrow would highlight and when you moved the thing it would move in the X direction. It would need some sort of bounding box to limit movement.
Actually, Iā€™m going to switch horses and do things completely differently. So we can close this thread unless somebody has a better idea.
Iā€™ve got lots of variables besides the location and rotation and Iā€™d like to be able to save the values and reload them whenever. Since I can get Grasshopper to input a text file, Iā€™ll make a Windows program to input values and save them to a text file. It wonā€™t give me the 3D-oneknob thingy but I can have more control, or easier control, of how I input things and maintain a record.

what if you evaluated a point from rhino inside a unit box? that would let you use the gumball in rhino and the plane hints would let you control in what plane the point moves.

no bounding box limit though, unless you have a conditional in grasshopper to replace values under or over the limit with 0 or 1.

Thatā€™s an interesting idea. Trying to make sure Iā€™ve got the concept. Iā€™ve done a lot with Rhino and Grasshopper but I donā€™t pretend to know everything.
I would make a box and I would have to put a point inside it which would get assigned to a point component in Grasshopper. Then if I grabbed the point and moved it in Rhino with the gumball, the point coordinates would move in the Grasshopper component. Maybe I donā€™t need a box? Just deconstruct the point to get the values. Iā€™ll play a little. Must be a catch.

Hey, hey. I just tried it and I think that might be the solution. Itā€™s not really a GH component but it basically works for what I need and the gumball is easy to locate.
Thanks.
Joe

thatā€™s the idea. youā€™re right about the the box. likely optional, but it might be helpful as a graphic reference as to where you are in parameter space. plus if you are dialing in one variable, you can use the edges to lock an axis when you use move to move the point

oh cool