Rhino WIP feature: Zebra Improvements

Zebra is a visual analysis tool that allows you to analyze surface flow and continuity between surfaces.

What has changed in Zebra?

Zebra has been rewritten in the current Rhino WIP. The most significant changes:

  1. You are now able to analyze surfaces with static Zebra stripes. This allows you to analyze an area of interest more easily. The stripes stay put as you rotate the model.
  2. Each mode has its own settings profile. So you can analyze your model with different settings for each mode, for example, set the frequency to 30 in Stripes, while it is set to 15 for Dots. Switching between modes will preserve custom settings.

In the interface for Zebra, you’ll now find these options:

Top row buttons
image

Adding and Removing objects, Mesh Settings and Help button have moved to the top, similar to the top row controls you find in other panels.
In addition, Zebra has now a reset button to reset back to defaults.

Five different Modes

1. Stripes: Similar to Rhino 8 and previous, but with finer control
2. Radial: radial stripes, this is the best choice for analyzing curvature transitions to flat surfaces
3. Grid: Showing both horizontal and vertical stripes on the surface
4. Dots: Showing round dots on the surface, that get stretched more or less depending on curvature in both directions. Single curved surfaces will reflect dots as stripes, since they get infinitely stretched in one direction.
5. Rainbow: similar to Stripes, but multiple colors

Static analysis
Static display allows you keep the zebra lines or dots rotation and position independent from the camera. This enables you to analyze and edit a problem area in your model more easily.

Better control
In Rhino 8 and earlier, we had distinct settings for frequency of the stripes: Medium, Thin, etc. The direction was limited to either vertical and horizontal.
The frequency and rotation, as well as the width of the stripes can now be controlled precisely.

Opacity and Transparency
You can now also run Zebras over a material, by making the background or foreground color (semi) transparent

In addition to that, the background color can be made fully transparent:

Grasshopper / Rhinocommon
The new Zebra algorithm is exposed in RhinoCommon so 3rd party developers have access to all the bells and whistles.
Sample gh definition

Download Rhino WIP and try it out!

32 Likes

When you switch to a different mode (rainbow etc), do the settings keep their state, or the user is forced to set them again for every mouse?

In my opinion, the best approach is to remember these settings individually for every mode. For example, the “Rainbow” mode (similar to “Light lines” in VSR for Rhino 5) could have different settings than the “Zebra” stripes and the other modes.

You can make this optical through an icon or a tickbox in the panel. Some users may want to have common settings for all modes, others (like myself) would prefer to have individual settings for each mode.

The reason for that is that the model should be analyzed with at least two different orientations of the light lines at a specific angle of rotation.


Another thing to consider is to add a button for presets (or styles), so that the user could quickly toggle between them. You may implement this by default as 5-10 different presets/styles with various parameters.

But the more preferred approach is to allow saving of custom presets, including the angle of rotation.


As I requested in other topics before, it’s a must to be able to set custom colours and number of colours for the “Rainbow” mode.


Lastly, years ago there was a discussion about the ability to extract the analysis texture as a real texture that the user could apply to the geometry as a material.

2 Likes

RH-88996 Zebra: store settings per canned mode

I’ll look into this. If I understand correctly, you would want to create a new mode that gets saved in the dropdown menu?

pls explain why this important

Zebra is not a texture

Yes, the presets (or styles) must store all of the current settings, so that they could be reached with a single mouse click. I think that being able to save up to 10 styles is enough for most purposes.

As an added bonus, users will benefit from the ability to save and export these presets, so that they can import them into another Rhino file, another PC (nice for companies with multiple Rhino licenses) or share with other users.

There must be buttons to create a new style and delete a new style. Exporting and importing one or multiple saved styles could be done from another icon (a gear, which is the universal icon for extra settings).

As a colour blind person, I see some of the existing colours nearly identical, meaning I have a very limited range of which I colours I can recognize. I can distinguish 5 colours, even though they are 7 total. The reason is that I see the blue and the lilac colours, as well as the yellow and lime green as almost identical. Of course, if I zoom-in to display the object on the entire screen, I can recognize 7 colours, but I see 5 colours when the object is too small on the screen.

Adding slim black lines between the colours help, but that forces the colour-blind persons to use black lines all the time, thus they lose the ability to have a clean rainbow consisting only colours.

Another reason for the customization is that some users may prefer totally different colours, or a different number of colours (3, 4 etc). creating a new palette for the Rainbow Zebra could be done from the settings icon.

From my understanding, the zebra stripes rely on some coordinates to be wrapped/projected around the selected object(s), so it must be possible to bake that as a texture with proper texture map coordinates. Other CAD and 3d mesh modeling programs are able to bake textures from the current analysis display in the viewport.


I just fixed the typo with the missing “button” word in my previous post. I wrote it from my phone, so looks like the word was replaced by my phone’s spellchecker…


Here is a sample look of the Zebra panel including the proposals above. Note that the icon of every saved style corresponds to graphical style in the viewport (zebra stripes, points, rainbow etc).

Ideally, hovering over any of the 10 buttons will bring a pop-up tooltip that lists its numerical settings.

The main idea for the style is to be able to quickly switch between 2 or more settings, such like:
Style 1: Rainbow with 30 degrees angle.
Style 2: Rainbow with 67 degrees angle.
Style 3: Thin Zebra stripes.
Style 4: Thick zebra stripes.

During modeling and especially while adjusting the control points, it’s essential to switch between two or more positions of the stripes to examine the changes, then go back to the previous settings.

2 Likes

@Rhino_Bulgaria I’ve been working on saving and creating profiles. Instead of limiting the amount of custom buttons, I’m thinking to simply allow you to create these profiles and load them with a command.
In this screencap I created 3 profiles, added them to a normal Rhino button:

4 Likes

The advantage of having those icons inside the Zebra pop-up window is that they are reachable much easier as the window may be moded everywhere. They are also just in the same menu where the rest settings for the Zebra are located.

Keep in mind that having those icons with saved presets somewhere on the main toolbars (the top tollbar?) will consume space that may be already used by other icons. My top, left and bottom toolbars are crowded already.

The way I see it done best for all users is, if the icons could be doubled in both, the Zebra pop-up window and inside some of the toolbars (where their number could be expanded to tens abd hundreds). The Zebra analysis icon located inside the Analysis toolbar could include a sub-menu with extra presets. No need to run a dedicated command solely for the presets.

The saved presets (styles) must save also the state of the Zebra: static or dynamic. One button may activate a preset with a static Zebra, another may activate a preset with a dynamic Zebra. The idea is to avoid the need to toggle the dynamic and static state upon changing the preset.

RH-88996 is fixed in Rhino WIP

Wish - For the static option could we have three extra buttons please for X,Y and Z. Just to speed work flow up. Thanks in advance!

2 Likes

RH-89997 Zebra: X Y Z for static

4 Likes

Great!
I wonder what’s the status of the custom Zebra profiles that the user could safe and select quickly? :smiley:

I have this on the list as RH-89182 Zebra: allow custom profiles
No further progress to share right now.

1 Like

It’s very important to be able to switch between the saved presets by a single mouse click (instead the inferior dropdown menu), for example, from Static lights lines set to 35 degrees to Dynamic Zebra stripes. The saved presets/styles must store the full settings (state) of the zebra: mode, angle, dynamic/static, direction, frequency, size, blur, background, show wires etc.

Even the simplified Zebra analysis of Rhino 7 is too time consuming and clumsy to use due to the need to change multiple variables to be able to compare two different settings. That makes the comparison nearly impossible, because Rhino 7 lacks the ability to offer an instant toggle between two modes.

2 Likes

I have two more proposals:

  1. Consider adding an additional button to align the static Zebra to a selected CPlane. That way, the user will be able to re-orient the static Zebra to a bunch of different CPlanes really fast and easy.

  2. Add a “Dynamic” option, which means that the Zebra stripes or the Light lines (Rainbow) will move perpendicular to the stripes at a constant speed defined by the user. Imagine a very slowly moving car through a series of ring neon lights. That must be the effect of the “Dynamic” option. This is especially useful for those who create boat hulls, airplane fuselages, car bodies, bottles, general product design. The REMOVED “Distance” mode would be super powerful combined with the “Dymamic” option.

1 Like

This will come back as a separate analysis tool, to avoid confusion.

1 Like

Great! :slight_smile: Perhaps you can add the “Dynamic” option to that new analysis tool, too.

Shouldn’t that be perpendicular?

1 Like

Yes, I meant exactly perpendicular. No idea why I wrote parallel. :slight_smile: Thanks for the tip.