Stipple Surface

When designing a part that will be printed with an SLA printer, I would like to add a stipple to the surface of my parts. Is there a feature to add this in Rhino?

Stipple = surface noise/fine texture bumps.

Background theory:
In the printing (litho) industry where I was for 29 years, there are known technical issues we dealt with called banding, or posterization. Sometimes this issue shows up as hard lines around hot spots. The issue here rests with the imaging technology and with the printing process. Ink on paper has a cut-off point at both ends (DMIN & DMAX), but mostly at the top end where where white transitions to very light grey. This limit is the threshold at which a dot is either too small for ink to stick to, or just big enough. When ink sticks to the dot on a metal plate, it does so with a defined limit. On paper (which contributes to this problem) a gradation between 5% black and 0% will show a hard drop around the 3% mark. This is a big problem for us because colour at this end can swing by small amounts, but appear as large swings.

The solution to this comes via two methods: Hybrid dot technology, and Gaussian noise (an old trade method). When you add noise to a gradation, the tonal value of 3% black is broken up over a collection of dots ranging from 4% and 1%. This eliminates the hard line of ink verses no ink on paper — the 3% mark is scattered around. The hybrid dot is an imaging method where the screen algorithm transitions between a 4% screen dot to a stochastic dot with larger spacing (larger spacing = less tonal value, while maintaining a dot size within the reproducible limit).

Mid tone banding in imaging comes from a limit in dot size. If a colour gradation blends from 18% to 19% over a 3 inch section, there simply isn’t enough steps in dot size to represent a smooth transition. So the 3 inch section will have to cover that 1% tonal range using only 3 sizes of dot, because each channel has only 8 bits (256 steps) between 100% black and 0%.

How does this apply to 3D printing and Rhino?

You see, in current 3D SLA printing technology we have a similar issue: stacks of small layers that can be seen in the final printed part. The industry’s solution to this is to print finer and finer layers until these layers are barely noticeable. The results of this are exponential time/cost impacts: more layers, longer print time, more expensive tooling to image finer layers. Were Rhino to incorporate surface treatment to areas of a part (of course as a copy of the original), the part could be printed on any SLA printer and provide no evidence of layering. The appearance would mimic a cast metal surface as seen with engine parts (intake manifold, alternator, water-pump). Also, the stipple effect would better emulate the surface finish of many high-end injected mould parts found with TV remotes and the like.

That all said, I would imagine applying this fine texture to a 3D model would add huge weight to file sizes. Still, if the model works as printed in the traditional way, why not apply this surface texture for the final output. In the end, I’m not 100% sure this should be a Rhino feature or a 3D printing feature. Either way, it would be nice to know how to apply a fine surface bump in Rhino.

Dan, consider this another feature request.

i believe in the windows version you can apply a displacement texture which could create such a geometry meaning you create a texture with the gradient and it will translate it into a “real” bump map. in the mac version you could try with something like Heightfield on a unrolled or squished surface and combine it with FlowAlongSrf if the surface is continuous. or you use a 3rd party software, usually any kind of 3d software freeware or commercial has a displacement implemented.

or experiment with grasshopper, i believe it should be possible to interpret shadings into real geometry translating it relative to the strength of the shading into spheres, or use something like a Z depending strength of sphere sizes, maybe not too difficult to set up.

I think the tool you would need is ApplyDisplacement, which is not in Mac Rhino.

You’ll currently need Windows Rhino to do it.


1 Like